This section will document the major changes in each Salvus version as well as updating guides assisting in upgrading your Salvus installations.

Before you download and install a new version of Salvus, please make sure that your python environment is still up-to-date.

Keeping the python environment up-to-date

Sometimes, the python dependencies of newer Salvus versions change. This could either mean that we are requiring newer versions of some dependencies and/or different packages.

Assuming that you have set up a python environment salvus using mamba, we strongly recommend obtaining the new dependencies from mamba as well, instead of installing them with pip.

In case you want to keep a backup of all current packages in your Salvus environment, you can export the version number of all installed packages using

mamba env export -n salvus >salvus_env_backup.yml

The following command downloads the current list of dependencies as an environment yaml. Make sure to replace XX with either 37 or 39 depending on which Python version you are using.

curl -o environment.yml

You can then update the current environment with the following command.

mamba env update -n salvus -f environment.yml

This will make sure that the environment will work with the new version of Salvus and that no additional packages will be installed during the upgrade step.

Upgrading Salvus

There are a few different ways to upgrade your Salvus installation.

Built-in Commands

If you already have a running Salvus installation you can update in two ways:

Update the local Python installation:

salvus-cli upgrade --help

Update the Salvus installation of a remote site:

salvus-cli upgrade-site --help

In both cases an interactive wizard will guide you along the way.

Running the Downloader Again and Manually Upgrading

Running the downloader again will ensure all local files are updated to the latest available version. It will download anything that misses/has been updated and keep your folder structure in consistent state. You then might have to invoke pip install ... again and reinitialize any sites.