1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
|
# Release checklist
## Prepare system
- [ ] Ensure publishing dependencies are installed: twine
- [ ] Export helper environment variable: `export VERSION=<version>`
## Prepare repository
- [ ] Update last update date in the man page
- [ ] Update the CHANGELOG
- [ ] Review and update MRLVs in the table of supported devices (merging lines when appropriate)
- [ ] Set the version for "new/changed in git" notes
- [ ] Update version in pip install liquidctl==version examples
- [ ] Regenerate the udev rules:
`(cd extra/linux && python generate-uaccess-udev-rules.py > 71-liquidctl.rules)`
- [ ] Commit:
`git commit -m "release: prepare for v$VERSION"`
## Test locally
- [ ] Run unit and doc tests:
`python -m pytest`
Then, optionally, install locally and:
- [ ] Run my personal setup scripts:
`liquidcfg && liquiddyncfg`
- [ ] Test yoda.py:
`extra/yoda.py --match kraken control pump with '(20,50),(50,100)' on coretemp.package_id_0 and fan with '(20,25),(34,100)' on _internal.liquid --verbose`
- [ ] Test liquiddump.py:
`extra/liquiddump.py | jq -c .`
- [ ] Test krakenduty-poc.py:
`extra/krakenduty-poc.py train && extra/krakenduty-poc.py status`
## Test in CI
- [ ] Push HEAD:
`git push origin HEAD`
- [ ] Check all CI job statuses
## Build source distribution and wheel
- [ ] Stash any subsequent changes (e.g. to this file)
- [ ] Tag HEAD with changelog and PGP signature:
`git tag -as "v$VERSION"`
- [ ] Build the source distribution and wheel:
`python -m build`
- [ ] Check that all necessary files are in the `dist/liquidctl-$VERSION.tar.gz` sdist
- [ ] Check the contents of the `dist/liquidctl-$VERSION-py3-none-any.whl` wheel
- [ ] Sign both sdist and wheel:
`gpg --detach-sign -a "dist/liquidctl-$VERSION.tar.gz"`
`gpg --detach-sign -a "dist/liquidctl-$VERSION-py3-none-any.whl"`
## Release
- [ ] Push vVERSION tag:
`git push origin "v$VERSION"`
- [ ] Upload sdist and wheel to PyPI:
`twine upload dist/liquidctl-$VERSION{.tar.gz,-py3-none-any.whl}`
- [ ] Generate SHA256 checksums for the release files:
`b3sum dist/liquidctl-$VERSION{.tar.gz,-py3-none-any.whl} | tee "dist/liquidctl-$VERSION.B3SUMS"`
- [ ] Upgrade the vVERSION tag on GitHub to a release (with sdist, wheel, and corresponding GPG signatures)
- [ ] Update the HEAD changelog with the BLAKE3 checksums
## Post release
- [ ] Merge the release branch into the main branch (if appropriate)
- [ ] Update the HEAD release-checklist with this checklist
- [ ] If necessary, update ArchLinux `liquidctl-git`
|