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 next and all tests are passing. Then:
Create a branch named
vX.Y.Z-rc1This must branch off from the
nextbranchPush this branch to you fork of xNVMe and setup a pull-request to
next
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 main..HEAD~1 --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
Integrate
vX.Y.Z-rc1intonextGet review of the PR
Wait for tests to finalize / pass
Merge onto
next
Integrate
nextontomainSetup a PR of
nextontomainReview the PR
Wait for tests to finalize / pass
Double-check the generated docs at https://xnvme.io/en/next
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