- Make sure you have
goreleaser, rpmbuild, and pandoc installed. (rpmbuild is in the Ubuntu packagerpm). - Set release date in
CHANGELOG.mdand commit it. - Ensure you can run
dockercommands 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/arm64as 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.iowithdocker login. - Run
GITHUB_TOKEN=<your token> ./dev-bin/release.sh. Forgoreleaseryou will need a token with thereposcope. You may create a token here.
Then release to our PPA:
- Switch to the
ubuntu-ppabranch. 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-perlpackages installed. - Delete
distdirectory. - Check whether you need to update the
$DISTSvariable 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
dputlikeNo host ppa:maxmind/ppa found in config, you can create a~/.dput.cfwith 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).