MRPT release check-list
These notes are mostly for myself (J.L. Blanco), but hopefully they’ll be useful to someone else maintaining MRPT in the future… ;-)
1) Generate source code packages
Go to MRPT git cloned repository.
Make sure of being in branch develop.
Edit
doc/source/doxygen-docs/changelog.md
and set the release date.Do the final
git commit
before the release.When all CI tests pass:
git checkout master
git merge develop
git tag --sign X.Y.Z # release new version
bash packaging/prepare_release.sh
# If everything seems OK, push it:
# **WARNING**: This command makes the release public!
git push master --tags
The source tarballs are now in
$(HOME)/mrpt_release
.Windows binaries will be automatically generated from AppVeyor CI, wait for them.
Create a new GitHub release from the tag.
Attach the tarball, pgp signature, and Windows installer.
Release done! :-)
2) Create a new Debian package
As of MRPT 2.4.0 (Oct/2021), we switched to gbp with:
Upstream repository (source code): https://github.com/mrpt/mrpt
gbp repository: https://salsa.debian.org/robotics-team/mrpt
Instructions:
Make sure of having generated and uploaded to the GitHub release the xxx.tar.gz and its PGP signature (part “1” above).
Go to the directory where the mrpt gbp repo is cloned and integrate the new release with:
cd /PATH/TO/MRPT_GBP_REPO
git checkout master
# Download new release from GitHub releases:
gbp import-orig --uscan --pristine-tar
# **Or** from a local copy (for dry-runs before actual releases):
#gbp import-orig --pristine-tar /PATH/TO/MRPT.X.Y.Z.tar.gz
# update the files in debian/ (copyright, *.install) as needed, commit them and run:
gbp dch -R -c --git-author --distribution=unstable
# Test build (if changes are significant):
# (Create cowbuilder image upon first usage first, then run the command below
# inside of:
# DIST=sid BINDMOUNTS=/home/xxx/xxx/ sudo pbuilder login --save-after-login
# )
gbp buildpackage
# or from the host:
# gbp buildpackage --git-pbuilder --git-postbuild='lintian $GBP_CHANGES_FILE'
# Push:
gbp push
If at some point a new PGP signature is used to sign upstream (MRPT GitHub repo, not Debian) source packages, remember updating the PGP public key within the gbp repository with:
# Export signing pub key:
git checkout master
mkdir debian/upstream/ || true
gpg --export --export-options export-minimal --armor > debian/upstream/signing-key.asc