To make a new release of bempp, 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
main
branch andgit pull
, then checkout a new branch calledrelease-v[x].[y].[z]
(where[x]
,[y]
, and[z]
are defined in the next step):git checkout main git pull git checkout -b release-v[x].[y].[z]
-
Update the version numbers in
Cargo.toml
andc-api-tools-macros/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]
. -
Commit your changes and push to GitHub.
-
Open a pull request and merge your changes in to
main
. -
Create a release on GitHub from the
main
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. -
In the folder
c-api-tools-macros
:
6a) Run cargo publish --dry-run
, then run cargo package --list
and
check that no unwanted extras have been included in the release.
6b) 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.
- In the root folder:
7a) Update the c-api-tools-macros
dependency in Cargo.toml
to { version = "[x].[y].[z]" }
.
7b) Run cargo publish --dry-run
, then run cargo package --list
and
check that no unwanted extras have been included in the release.
7c) 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.
-
Open a pull request to
main
to update the version numbers inCargo.toml
andc-api-tools-macros/Cargo.toml
to[x].[y].[z]-dev
, and to change thec-api-tools-macros
dependency inCargo.toml
to{ path = "c-api-tools-macros" }
-
Add the release to the next issue of Scientific Computing in Rust Monthly