Skip to main content
Version: latest

FVM - Fluvio Version Manager

Introducing Fluvio Version Manager (fvm), the official package manager for Fluvio. fvm allows you to manage different fluvio binaries and development tools with ease. You can quickly switch between various versions or release channels, making your development process more flexible and efficient.

Install FVM

The following command will install fvm and fluvio and other binaries in the development kit.

$ curl -fsS https://hub.infinyon.cloud/install/install.sh | bash

The installation script prints a command that adds the the Fluvio binaries to your shell PATH environment variable. This is required to follow the following steps.

Add to the PATH

Make sure you add fvm to the path. On macOS, run this command and then close and reopen your terminal.

$ echo 'export PATH="${HOME}/.fvm/bin:${HOME}/.fluvio/bin:${PATH}"' >> ~/.zshrc

What version are you running?

Running fvm current should display the most recent version of fluvio toolchain installed.

$ fvm current
x.y.z (stable)

Release channels

Also in the output of fvm current we see stable, which is the name of the default release channel, and the active channel in use. There are 2 channels: stable, latest.

Installing channels with fvm install will also make that channel active.

The Active channel

Only one channel is active at a time. You can use fvm switch to select one of your installed channels.

FVM updates the fluvio/smdk/cdk etc. binaries used with the active channel's binaries.

Stable release channel

The stable channel is installed by default. It is the most recent supported release.

The following commands are equivalent for installing or updating the stable release channel.

$ fvm install
$ fvm install stable

Latest release channel

If you contact us for support in GitHub or Discord, we may request you to validate fixes from the latest channel.

This channel consists of most recent updates that have not yet been released, which may include experimental features or unexpected behavior.

The latest channel is not intended for typical usage.

$ fvm install latest
info: Downloading (1/5): fluvio@x.y.z-dev-1+bf4e86674ce546d6b853adbf36a97e8e3344bd17
info: Downloading (2/5): fluvio-run@x.y.z-dev-1+bf4e86674ce546d6b853adbf36a97e8e3344bd17
info: Downloading (3/5): fluvio-cloud@x.y.z
info: Downloading (4/5): smdk@x.y.z-dev-1+bf4e86674ce546d6b853adbf36a97e8e3344bd17
info: Downloading (5/5): cdk@x.y.z-dev-1+bf4e86674ce546d6b853adbf36a97e8e3344bd17
done: Installed fluvio version latest
done: Now using fluvio version x.y.z-dev-1+bf4e86674ce546d6b853adbf36a97e8e3344bd17

Install a specific version

Specific releases can also be installed when you provide the version.

$ fvm install x.y.z
info: Downloading (1/5): fluvio@x.y.z
info: Downloading (2/5): fluvio-run@x.y.z
info: Downloading (3/5): fluvio-cloud@x.y.z
info: Downloading (4/5): smdk@x.y.z
info: Downloading (5/5): cdk@x.y.z
done: Installed fluvio version x.y.z
done: Now using fluvio version x.y.z

Listing installed channels

The fvm show command will list out the installed channels and their corresponding version. The row with the checkmark () is the current active channel.

$ fvm show
    CHANNEL  VERSION
 ✓  x.y.z  x.y.z
    stable   x.y.z
    latest   x.y.z-dev-1+bf4e86674ce546d6b853adbf36a97e8e3344bd17

Switching between channels

If you are on another channel, you can change between them by running fvm switch with the name of the channel.

For typical usage of InfinyOn Cloud, we suggest using stable.

$ fvm switch stable

done: Now using Fluvio version stable

And we verify with fvm show that we are now back on the stable release channel.

$ fvm show
    CHANNEL  VERSION
 ✓  stable   x.y.z
    latest   x.y.z-dev-1+bf4e86674ce546d6b853adbf36a97e8e3344bd17
    x.y.z  x.y.z

Conclusion

This wraps up the fundamental usage of FVM. While this guide covers the basics, FVM has more under the hood to explore and adapt to your workflows, ensuring a frictionless experience as you delve into Fluvio's ecosystem.

However, our expectation is that a majority of users will find the stable channel adequately meets their needs, making the transition to other channels unnecessary. For developers actively contributing through issues or code, and our design partners, FVM serves as a bridge for closer and smoother collaboration.

Hopefully this is just the beginning of your journey with FVM. We're excited to see how it enhances your interactions with our platform.