Release Checklist#
With every release of xNVMe, the following tasks must be ticked off.
Initially, the window of features are closed, that is, all PRs intended for the
release are integrated on main and all tests are passing. Then:
Bump the version-number commit with message
ver: bump to vX.Y.ZSee the
git logfor previous commits bumping the version-number, to check that you bump everywhere needed.
Update man-pages and Bash completion-scripts
Build and install the version-bumped xNVMe
Then run:
make gen-man-pages gen-bash-completionsCommit the man-pages with message:
docs(man): update for vX.Y.ZCommit the Bash-completions-scripts with message:
feat(toolbox/completions): update for vX.Y.Z
Update
CONTRIBUTORS.rstGet the list of contributors with:
git log <previous-tag>..HEAD --pretty=format:"%an <%aE>" | sort | uniqUpdate the lists accordingly
Commit changes with the message:
CONTRIBUTORS: update for vX.Y.Z
Update
CHANGELOG.rstGo over the changes and summarized the different scopes
Commit changes with the message:
CHANGELOG: update for vX.Y.Z
Open a pull-request for the release-prep commits
The release-prep commits (version bump, man-pages, completions, CONTRIBUTORS, CHANGELOG) go through PR review like any other change
Get review and wait for tests to finalize / pass
Double-check the generated docs at https://xnvme.io/ (served from
main)Merge onto
main
Tag
mainasvX.Y.Zand push the tagCreate a release on GitHUB
Goto the GitHUB page and create a release for the tag
vX.Y.ZUse a title similar to the previous releases
Add the content similar to the previous releases, that is refer to the
CHANGELOG.rstand click the “Generate release notes” buttonAdd the artifacts generated on the tag (src-archive, test-verify-results, Python sdist)
Make sure that the source-archives follow this convention:
xnvme-0.7.4.tar.gz- Source archive without subprojectsxnvme-fat-0.7.4.tar.gz- Full source archive including SPDK sources
Publish the Python package
We wish to publish the Python package that have been utilized for testing and provided as artifact for the release. Thus, download and rename it, then upload it.
Rename:
xnvme-py-sdist.tar.gz xnvme-X.Y.Z.tar.gzUpload:
twine upload xnvme-X.Y.Z.tar.gz
Publish the Rust crate
Create an API token on https://crates.io
Set up credentials locally
cargo loginUpload:
cd rust/xnvme-sys && cargo publish