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
- Run
cargo semver-check 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]
First release of a crate
- Make sure you have a
README.md
file - Check
Cargo.toml
contains 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 tofalse
on 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)]