Skip to content

Releases: tristanisham/zvm

ZLS Download Support!

31 Oct 02:20
Compare
Choose a tag to compare

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

New Contributors

Full Changelog: v0.2.4...v0.3.0

Updated Go API. Integrated with existing API

02 Oct 22:47
Compare
Choose a tag to compare

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

14 Sep 01:03
Compare
Choose a tag to compare

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"

13 May 01:01
Compare
Choose a tag to compare

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

12 May 20:51
Compare
Choose a tag to compare

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

12 May 05:05
Compare
Choose a tag to compare

Full Changelog: v0.1.7...v0.2.0
zvm-master-bug-fix

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

11 May 02:32
Compare
Choose a tag to compare

Auto Changelog

New Contributors

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

25 Apr 21:22
Compare
Choose a tag to compare

Full Changelog: v0.1.5...v0.1.6

Updated the help script to be more complete.

Fixed Typos (Thanks abirvalarg)

21 Dec 17:51
Compare
Choose a tag to compare

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)

14 Dec 00:56
Compare
Choose a tag to compare

Added shasum check on version install.

Full Changelog: v0.1.3...v0.1.4