Releases: tristanisham/zvm
ZLS Download Support!
ZLS Download Support
Hi everyone! This release is a big one! You can now install ZLS with your Zig download! Thanks @SigSeg-V for leading this feature. To install ZLS with ZVM, simply pass the -D=zls
flag with zvm i
. For example:
zvm i -D=zls master
This command may have some issues on Windows with pre-0.11.0 releases. Bug fixes will be coming out over the next few weeks addressing this issue. If you're uninterested in this feature, you can continue to use ZVM as you always have!
Updating on Downloading Specific Zig Tags
This feature is still in development. I've said before that 0.3.0 would be this feature's release, but I realized I was misusing SEMVER. I apologize! This feature will come soon, possibly as 0.4.0 or 0.5.0 at the latest!
What's Changed
- fix: hardcoded home path in post-install instructions by @ryangjchandler in #24
- fix typo in ZVM_INSTALL path by @jasonboukheir in #25
- Option to Install ZLS by @SigSeg-V in #26
New Contributors
- @ryangjchandler made their first contribution in #24
- @jasonboukheir made their first contribution in #25
- @SigSeg-V made their first contribution in #26
Full Changelog: v0.2.4...v0.3.0
Updated Go API. Integrated with existing API
Hi everyone!
This update is little. I've updated some Go APIs that I wrote a while back with Go 1.18 to more modern Go 1.21 implementations. I've also decided to remove the old ENV variable that was set to prevent ZVM from checking for updates automatically on startup. You now can set startupCheckUpgrade
to false in ~/.zvm/settings.json
to disable this automatic check. If you already have ZVM installed, this should default to false.
Remember, you can always check for an upgrade manually but running zvm upgrade
!
{
"useColor": true,
"startupCheckUpgrade": true
}
Full Changelog: v0.2.3...v0.2.4
Self updater, better documentation of Path for windows users, and more optimizations
What's Changed
- Fix error handling in ZVM.Use. by @bode-fun in #16
- Extract and remove archive when using curl to install by @dirkdev98 in #19
- Downloading binary in the install script with curl should follow redirects by @dirkdev98 in #20
New Contributors
- @bode-fun made their first contribution in #16
- @dirkdev98 made their first contribution in #19
What's up developers! Long time no see. This release of ZVM is packed full of fun functions and flavors. The most impressive being the new self-updater. Just run zvm upgrade
and you zvm
should handle upgrading itself. A gentle reminder that ZVM is still pre 1.0, so growing pains are bound to be expected. If you encounter any issues with the self-updater, please file an issue.
Currently, zvm
will ping the releases page of this repo once on startup and every time you you run zvm upgrade
. If you find this abhorrent, just set ZVM_NO_CHECK_UPDATE
to anything and ZVM will only check updates when you explicitly ask. I'm looking for feedback here. If many people would rather not have automatic checks at all, or have it be an opt in feature, just let me know on X/Twitter.
Thank you to @glyh for pointing out that the documentation for setting up $PATH
was lacking. I've updated the README to better improve our language.
Specific hash pulling
This feature has been highly requested and is a work in progress. Expect it around v0.3.0.
Full Changelog: v0.2.2...v0.2.3
New Command: "sync"
Full Changelog: v0.2.1...v0.2.2
New Command: "sync"
Have you tried to build a Zig program only to realize that the build.zig, standard library, or other API has gone through too many breaking changes and you have no idea what version you'll need to build it? Now, with zvm sync
you can lock your repo to a specific Zig version, allowing your users to continue to work with the Zig files in your repo without you having to update your compatibility by hand. This feature is great for open source developers, package maintainers, and anyone who's not on the bleeding edge.
How to use
To setup your repo to support zvm sync
, prepend a configuration variable to your zig.build
file, like: //! zvm-lock: 0.10.1
Example: (Look at the first line)
//! zvm-lock: 0.10.1
const std = @import("std");
// Although this function looks imperative, note that its job is to
// declaratively construct a build graph that will be executed by an external
// runner.
pub fn build(b: *std.Build) void {
// Standard target options allows the person running `zig build` to choose
// what target to build for. Here we do not override the defaults, which
// means any target is allowed, and the default is native. Other options
// for restricting supported target set are available.
const target = b.standardTargetOptions(.{});
//...
Then, when user's run zvm sync
zvm will switch or download (after the user accepts a prompt) the correct Zig version.
HOTFIX: broken "ls" command
Full Changelog: v0.2.0...v0.2.1
Sorry guys, I accidentally broke the LS command. Please update to this version immediately.
v0.2.0
Full Changelog: v0.1.7...v0.2.0
So, Go's got a funny problem. If you're trying to see whether a file exists or not, the API has subtly changed in each of the past three language versions. It used to be what's pictured on the left. Now, it's what's on the right. So, zvm
wasn't actually installing new versions when a version with the same name was detected. Now, you should actually get the most recent master version when you type zvm i master
. No more zvm rm master; zvm i master
. Thanks to #12 and for pointing this out.
Another bug I fixed is #13. Updating your version number every time you add something new to your program is a pain. You forget everywhere you put it! No more! Now, cli.VERSION
exists and is referenced as the sole source of truth. Even in zvm help
, which is now a text template that get's dynamically rendered. Don't worry, if it breaks you'll still get your same old same old. Except, with a little apology and the version number printed awkwardly above the remaining text. It also now print's a link to the GitHub.
Thank you to everyone who made issues this past week and for all the kind words. ♥ I didn't know so many people used zvm
and enjoyed it so much! If you want to get more involved, I'll be streaming the development of the Zig version tomorrow evening, May 12th, 2023.
Usability Release
Auto Changelog
- Simplifying and making the os tag stringification maintainable by @rigobert9 in #4
- Go version by @tristanisham in #5
- install: Fix darwin system info by @ibokuri in #6
- install: Map arm64 GOARCH to aarch64 by @ibokuri in #7
- Show error message for invalid arguments by @resolritter in #11
New Contributors
- @rigobert9 made their first contribution in #4
- @tristanisham made their first contribution in #5
- @ibokuri made their first contribution in #6
- @resolritter made their first contribution in #11
Full Changelog: https://github.com/tristanisham/zvm/commits/v0.1.7
What changed
This update, in a an effort to reduce some of the cruft I've accidentally put in this repo I did some dark magic and completely messed up Git's history. It's not really a big deal. As I don't really use Git's scale-oriented features, but just know that walking backwards from v0.1.6 is going to messy.
Usability
@resolritter addressed a UX issue. Before, when typing in an invalid command ZVM would fail silently. Now it'll provide you with a nice instruction. Thanks @resolritter!
zvm asdf
# ERROR: Invalid argument asdf. Please check out --help.
# exit status 1
I also added better errors for when a non-existent Zig version is specified.
zvm i poop
Results in:
2023/05/10 22:59:00 invalid Zig version: poop
Allowed versions:
0.7.1
0.4.0
0.8.1
0.8.0
0.7.0
0.10.1
0.9.1
0.9.0
0.6.0
0.5.0
0.3.0
0.2.0
master
0.10.0
0.1.1
Other news
Now that Zig master has a self-hosted HTTP module, the last major roadblock in a totally zig ZVM has fallen. Work has begun rewriting ZVM in Zig. Come say hi!
Updating UX
Full Changelog: v0.1.5...v0.1.6
Updated the help script to be more complete.
Fixed Typos (Thanks abirvalarg)
Thanks to abirvalarg for bringing this issue to light. I fixed a distribution error where the version was incorrect in the binary as well as a few other annoying typos.
Full Changelog: v0.1.4...v0.1.5
Added Security Check (Shasum)
Added shasum check on version install.
Full Changelog: v0.1.3...v0.1.4