(updating-nextflow-page)= # Updating Nextflow This page describes Nextflow release cadence, how to self-update Nextflow, and how to select your version of Nextflow. ## Releases A stable version of Nextflow is released in the 4th and 10th month of each year. An edge version of Nextflow is released on a monthly basis. The edge version can be used to access the latest updates and experimental features. Nextflow uses [Calendar Versioning](https://calver.org). Versions are numbered as `..`. For example, `23.10.1` corresponds to the first patch of the October 2023 stable release. See {ref}`migrations-page` for a list of migration guides for each stable release. See the [changelog](https://github.com/nextflow-io/nextflow/blob/master/changelog.txt) for an exhaustive list of changes across all releases. ## Self-update To update to the latest stable release of Nextflow, run the `self-update` command: ```{code-block} bash :class: copyable nextflow self-update ``` To use the latest edge release, set `NXF_EDGE=1` when updating Nextflow: ```{code-block} bash :class: copyable NXF_EDGE=1 nextflow self-update ``` :::{note} When updating from an edge release to a stable release, you must explicitly set `NXF_EDGE=0`. ::: :::{warning} Nextflow will update its executable during the self-update process. The update can fail if the Nextflow executable is in a directory with restricted permissions. ::: ## Version selection The `NXF_VER` environment variable can be used to define which version of Nextflow to use. To switch to a specific version of Nextflow for a single run, set the `NXF_VER` environment variable in your execution command. For example: ```{code-block} bash :class: copyable NXF_VER=23.10.0 nextflow info ``` To set a specific version of Nextflow for a terminal session, export the `NXF_VER` environment variable. For example: ```{code-block} bash :class: copyable export NXF_VER=23.10.0 ``` To set a specific version of Nextflow for your user profile, add the above `NXF_VER` export command to your shell configuration file, such as `~/.bashrc` or `~/.zshrc`, and restart your session. :::{tip} You can use `NXF_VER` to switch to an edge release. For example: ```{code-block} bash :class: copyable NXF_VER=24.06.0-edge nextflow info ``` ::: :::{warning} Nextflow will update its executable during the self-update process. The update can fail if the Nextflow executable is in a directory with restricted permissions. :::