October 01, 2024

Spin Verman - The Version Manager Plugin

Andrew Steurer Andrew Steurer

spin version manager version manager verman plugin

Spin Verman - The Version Manager Plugin

We are excited to announce the Spin version manager (verman) plugin! We noticed that some of our engineers spend a lot of time switching between different versions of Spin, so we decided it was time to create a plugin to make this process less tedious.

What is Spin?

Spin is an open-source framework for building WebAssembly applications, which has a ton of amazing features, including portability (a single binary can run on many architectures), and sub-millisecond cold-start times. See the Spin Project Docs for more details.

What is a Plugin?

Spin plugins add new functionality or subcommands to Spin without modifying the Spin codebase. Plugins can be added to the Spin plugins repository and then listed and installed using the spin plugins command. Since plugins have their own versioning system, they can be developed and released independently of Spin, with updates being applied by running spin plugins update && spin plugins upgrade <plugin-name>

How to use the plugin

Install the plugin

spin plugins update
spin plugins install verman

Once the plugin is installed, you’ll need to prepend the verman current_version directory to your path, allowing the verman plugin to temporarily override your current version of Spin:

# To permanently prepend the "current_version" directory to your path, add this command to your .zshrc/.bashrc file.
export PATH="$HOME/.spin_verman/versions/current_version:$PATH"

Once the path is prepended, you can try the below commands:

Download a specific version of Spin

Specify the desired version:

# You can download multiple versions at once
spin verman get canary v2.5.0 2.7.0

Get the latest stable version:

spin verman get latest

Set a different version of Spin

Set a specific version:

# Adding the v prefix to the version is optional
spin verman set v2.5.0

Set the latest version:

spin verman set latest

Update a version of Spin in the ~/.spin_verman directory

# "canary" is currently the only subcommand supported by "update"
spin verman update canary

List the versions of Spin that are downloaded via the verman plugin

spin verman list

Remove a version of Spin downloaded via the verman plugin

Remove a single version:

# Adding the v prefix to the version is optional
spin verman remove v2.5.0

Remove all versions:

spin verman remove all

Remove the alternate Spin version, reverting back to the root version of Spin, but preserving all other versions of Spin downloaded locally:

spin verman remove current

Let us know what you think about the plugin on our Discord.

If you encounter bugs, would like to see new features, or would like to examine the source code, feel free to visit the repository on GitHub.


🔥 Recommended Posts


Quickstart Your Serveless Apps with Spin

Get Started