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.