Skip to content

Latest commit

 

History

History
44 lines (33 loc) · 2.08 KB

RELEASE.md

File metadata and controls

44 lines (33 loc) · 2.08 KB

Making a release

To make a new release of kifmm, follow the following steps:

  1. If you are yet to make a release on your current computer, run cargo login and copy an API key from https://crates.io/me

  2. Checkout the branch release and merge the branch main into the branch release:

    git checkout release
    git merge main
  3. If fftw-src or fftw-sys has changed:

    • Update the version numbers in fftw-src/Cargo.toml and fftw-sys/Cargo.toml, and update the version number of kifmm-fftw-src in fftw-sys/Cargo.toml
    • Run cargo publish in the fftw-src and fftw-sys folders. (Note: for fftw-src, you may need to do cargo publish --no-verify)
  4. Update the version number in Cargo.toml. The version numbers have the format [x].[y].[z]. If you are releasing a major version, you should increment [x] and set [y] and [z] to 0. If you are releasing a minor version, you should increment [y] and set [z] to zero. If you are releasing a bugfix, you should increment [z].

  5. In Cargo.toml, check that the rlst, green-kernels, kifmm-fftw-src and kifmm-fftw-sys dependencies are at the latest version.

  6. Commit your changes and push to GitHub. The CI tests will likely fail due to the local version and release both trying to use links = "fftw3"

  7. Create a release on GitHub from the release branch. The release tag and title should be v[x].[y].[z] (where [x], [y] and [z] are as in step 2). In the "Describe this release" box, you should bullet point the main changes since the last release.

  8. Run cargo publish --dry-run, then run cargo package --list and check that no unwanted extras have been included in the release.

  9. If everything is working as expected, run cargo publish. This will push the new version to crates.io. Note: this cannot be undone, but you can use cargo yank to mark a version as unsuitable for use.

  10. Open a pull request to main to update the version number in Cargo.toml to [x].[y].[z]-dev