Releases are automated using cargo-dist
.
It can be installed with either cargo install cargo-dist
or cargo binstall cargo-dist
(if you have cargo binstall
installed).
To init, or refresh the cargo-dist
generated files (dist-workspace.toml
and .github/workflows/release.yml
) use:
dist init
This will ask you a series of questions about the targets you want to build, and installers you want to create and will then generate or update the mentioned files.
Then commit and push those files, merging a PR if necessary, so those files are in the main
branch.
You probably want the version number of the crate to match the version number of the release!
In that case you will want to modify the version number in wild/Cargo.toml
.
With that setup, generating a release is as simple as pushing a tag on the main
branch, for the release.
Example:
git tag 0.2.0 # Where "0.2.0" is the number in wild/Cargo.toml
git push --tags
That should trigger the release.yml
workflow in GitHub. You can follow its progress in the
Actions tab in GitHub.
When complete, it should create the release in Releases.
Maintainers can then edit the release notes associated with the release.
You can optionally decide to also distribute wild in source form via crates.io using
cargo publish
NOTE: This will require a name change or publishing under a different name as there is a crate already published
with the name wild