To make a new release of kifmm, follow the following steps:
-
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 -
Checkout the branch
release
and merge the branchmain
into the branchrelease
:git checkout release git merge main
-
If
fftw-src
orfftw-sys
has changed:- Update the version numbers in
fftw-src/Cargo.toml
andfftw-sys/Cargo.toml
, and update the version number ofkifmm-fftw-src
infftw-sys/Cargo.toml
- Run
cargo publish
in thefftw-src
andfftw-sys
folders. (Note: forfftw-src
, you may need to docargo publish --no-verify
)
- Update the version numbers in
-
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]
. -
In
Cargo.toml
, check that therlst
,green-kernels
,kifmm-fftw-src
andkifmm-fftw-sys
dependencies are at the latest version. -
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"
-
Create a release on GitHub from the
release
branch. The release tag and title should bev[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. -
Run
cargo publish --dry-run
, then runcargo package --list
and check that no unwanted extras have been included in the release. -
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 usecargo yank
to mark a version as unsuitable for use. -
Open a pull request to
main
to update the version number inCargo.toml
to[x].[y].[z]-dev