Recent Pages
Crate Publishing Checklist
Here is my checklist for releasing a crate. I will add to it as I go and notice I forgot to list some useful items.
Each release of the crate
- Go through the documentation and check that everything seems fine
- TODO: Should move all repos to release-plz / git-cliff and adjust then
- Run
cargo semver-checks check-release -p [package]even though it does not catch everything - Run
cargo publish -p [package] --dry-run, check it builds fine - Run
cargo package -p [package] --list, check it contains only things that should be in - Run
cargo publish -p [package] - Make a release on GitHub
First release of a crate
- Make sure you have a
README.mdfile - Check
Cargo.tomlcontains all the useful metadata, in particular:package.description: Short text about the packagepackage.repository: Link to the repositorypackage.documentation:"https://docs.rs/[package]", eg."https://docs.rs/kine-core"(needs to be set!)package.license:"MIT OR Apache-2.0", and add the applicable license files to the repositorypackage.keywords: Anything, up to 5, preferably from this listpackage.categories: Anything, up to 5, from this listpackage.publish: Set tofalseon crates in the workspace that must not be publishedpackage.homepage: Link to the homepage if applicablepackage.rust-version: MSRV (and make sure to have CI actually test this version)
- Add interesting lints:
#![warn(missing_docs)]
- Setup release-plz and git-cliff
- Setup dependabot
- Make sure all features will be properly documented as per this guide