Giter Site home page Giter Site logo

altersabeh / zvm Goto Github PK

View Code? Open in Web Editor NEW

This project forked from tristanisham/zvm

0.0 0.0 0.0 30.34 MB

zvm (Zig Version Manager) lets you easily install/upgrade between different versions of Zig.

Home Page: https://www.zvm.app

License: MIT License

Shell 7.15% Go 88.56% TypeScript 4.29%

zvm's Introduction

Zig Version Manager (zvm) is a tool for managing your Zig installs. With std under heavy development and a large feature roadmap, Zig is bound to continue changing. Breaking existing builds, updating valid sytax, and introducing new features like a package manager. While this is great for developers, it also can lead to headaches when you need multiple versions of a language installed to compile your projects, or a language gets updated frequently.

Join our Community

Installing ZVM

ZVM lives entirely in $HOME/.zvm on all platforms it supports. Inside of the directory, ZVM will download new ZIG versions and symlink whichever version you specify with zvm use to $HOME/.zvm/bin. You should add this folder to your path. After ZVM 0.2.3, ZVMs installer will now add ZVM to $HOME/.zvm/self. You should also add this directory as the environment variable ZVM_INSTALL. The installer should handle this for you automatically if you're on *nix systems, but you'll have to manually do this on Windows. You can then add ZVM_INSTALL to your path.

If you don't want to use ZVM_INSTALL (like you already have ZVM in a place you like), then ZVM will update the exact executable you've called upgrade from.

Linux, BSD, MacOS, *nix

curl https://raw.githubusercontent.com/tristanisham/zvm/master/install.sh | bash

Then add ZVM's directories to your $PATH

echo "# ZVM" >> $HOME/.profile
echo export ZVM_INSTALL="$HOME/.zvm/self" >> $HOME/.profile
echo export PATH="$PATH:$HOME/.zvm/bin" >> $HOME/.profile
echo export PATH="$PATH:$ZVM_INSTALL/" >> $HOME/.profile

Windows

If you're on Windows, please grab the latest release.

Putting ZVM on your Path

ZVM requires a few directories to be on your $PATH. If you don't know how to update your environment variables perminantly on Windows, you can follow this guide. Once you're in the appropriate menu, add or append to the following environment variables:

Add

  • ZVM_INSTALL: %USERPROFILE%\.zvm\self

Append

  • PATH: %USERPROFILE%\.zvm\bin
  • PATH: %ZVM_INSTALL%

Community Package

AUR

zvm on the Arch AUR is a community maintained package, and may be out of date.

Why should I use ZVM?

While Zig is still pre-1.0 if you're going to stay up-to-date with the master branch, you're going to be downloading Zig quite often. You could do it manually, having to scoll around to find your appropriate version, decompress it, and install it on your $PATH. Or, you could install ZVM and run zvm i master every time you want to update. zvm is a static binary under a permissive license. It supports more platforms than any other Zig version manager. Its only dependency is tar on Unix-based systems. Whether you're on Windows, MacOS, Linux, a flavor of BSD, or Plan 9 zvm will let you install, switch between, and run multiple versions of Zig.

Contributing and Notice

zvm is stable software. Pre-v1.0.0 any breaking changes will be clearly labeled, and any commands potentially on the chopping block will print notice. The program is under constant development, and the author is very willing to work with contributors. If you have any issues, ideas, or contributions you'd like to suggest create a GitHub issue.

How to use ZVM

Install

zvm install <version> 
# Or
zvm i <version>

Use install or i to download a specific version of Zig. To install the latest version, use "master".

# Example
zvm i master

Install ZLS with ZVM

You can now install ZLS with your Zig download! To install ZLS with ZVM, simply pass the -D=zls flag with zvm i. For example:

zvm i -D=zls master

Switch between installed Zig versions

zvm use <version>

Use use to switch between versions of Zig.

# Example
zvm use master

List installed Zig versions

# Example
zvm ls

Use ls to list all installed version of Zig.

List all versions of Zig available

zvm ls --all

The --all flag will list the available verisons of Zig for download. Not the versions locally installed.

Uninstall a Zig version

# Example
zvm rm 0.10.0

Use uninstall or rm to remove an uninstalled version from your system.

Upgrade your ZVM installation

As of zvm v0.2.3 you can now upgrade your ZVM installation from, well, zvm. Just run:

zvm upgrade

The latest version of ZVM should install on your machine, regardless of where your binary lives (though if you have your binary in a privaledged folder, you may have to run this command with sudo).

Clean up build artifacts

# Example
zvm clean

Use clean to remove build artifacts (Good if you're on Windows).

Print program version

zvm version

Prints the version of ZVM you have installed.

Print program help

zvm help

Option flags

Color Toggle

-color # Turn ANSI color printing on or off for ZVM's output, i.e. -color=true

Version Map Source

-vmu="https://validurl.local/vmu.json" # Change the source ZVM pulls Zig release information from. Good for self-hosted Zig CDNs.
                                       # ZVM only supports schemas that match the offical version map schema. 
                                       # Run `-vmu=default` to reset your version map.

-vmu default # Resets back to default Zig releases.
-vmu mach # Sets ZVM to pull from Mach nominated Zig.

Remember to Star the Repo

Star History Chart

zvm's People

Contributors

tristanisham avatar olshamb avatar sigseg-v avatar iamtimmy avatar rigobert9 avatar jasonboukheir avatar dirkdev98 avatar jsumners avatar itsrainingmani avatar siniarskimar avatar maxschuele avatar nithinkjoy-tech avatar ryangjchandler avatar resolritter avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.