- Make sure you have
goreleaser
, rpmbuild, and pandoc installed. (rpmbuild is in the Ubuntu packagerpm
). - Set release date in
CHANGELOG.md
and commit it. - Ensure you can run
docker
commands as your user (e.g.,docker images
). - Ensure Docker is set up to do cross-compilation. You can verify this with
docker buildx ls
. It should listlinux/arm64
as an available platform. If not, follow these instructions. - Log in to your Docker Hub account (be sure to be in our organization):
docker login
. - Follow these instructions,
to log in to
ghcr.io
withdocker login
. - Run
GITHUB_TOKEN=<your token> ./dev-bin/release.sh
. Forgoreleaser
you will need a token with therepo
scope. You may create a token here.
Then release to our PPA:
- Switch to the
ubuntu-ppa
branch. Merge the released tag into it. e.g.git merge v4.1.0
. - Set up to release to launchpad. You can see some information about prerequisites for this here.
- Ensure you have the
dh-golang
,golang-any
,devscripts
,libfile-slurp-tiny-perl
, andlibdatetime-perl
packages installed. - Delete
dist
directory. - Check whether you need to update the
$DISTS
variable indev-bin/ppa-release.sh
. We should include all currently supported Ubuntu releases. - Run
dev-bin/ppa-release.sh
Gotcha with PPA:
- If you get an error from
dput
likeNo host ppa:maxmind/ppa found in config
, you can create a~/.dput.cf
with content like so:
[maxmind]
fqdn = ppa.launchpad.net
method = ftp
incoming = ~maxmind/ubuntu/ppa/
login = anonymous
allow_unsigned_uploads = 0
Then you can run the same dput
command but with dput maxmind [...]
instead of dput ppa:maxmind/ppa [...]
(I'm not sure how to make the
matching work with the original command).