31 release checklist
Daniel Salzman edited this page 2025-10-16 07:45:28 +02:00

Release Checklist

  1. [MAJOR RELEASE] Update library versions and dependencies:
    1. configure.ac
    2. distro/pkg/deb: control, lib*.install, and lib*.symbols
    3. distro/pkg/rpm: Conflicts: knot-resolver < <VERSION> in knot.spec
  2. Update NEWS (git commit -m "NEWS: add version X.Y.Z")
  3. Update software version in configure.ac (git commit -m "Bump version X.Y.Z")
  4. Create a tag git tag -u <DEVELOPER_KEYID> -a -s -m "Knot DNS X.Y.Z" vX.Y.Z
  5. Check functionaly of the tarball autoreconf -if; ./configure; make distcheck
  6. Push the changes git push origin X.Y and tag git push origin vX.Y.Z
  7. Upload the tarball:
    1. Download and extract the generated artifacts from the build:archive job
    2. Sign and upload:
      1. Generate signature using the Knot DNS signing key (gpg --detach-sign --armor --default-key <DEVELOPER_KEYID> --digest-algo SHA512 knot-x.y.z.tar.xz).
      2. Generate checksum file (sha256sum knot-x.y.z.tar.xz > knot-x.y.z.tar.xz.sha256).
      3. Upload the tarball, signature, and checksum to secure.nic.cz.
  8. Add NEWS snippet to the release tag description https://gitlab.labs.nic.cz/knot/knot-dns/tags
  9. Update the Knot DNS website
    1. Link to the sources (download)
    2. Information about the version (news)
    3. HTML, PDF, and EPUB documentation and links to it (documentation)
  10. Update https://pypi.org/project/libknot and https://pypi.org/project/knot-exporter
    1. Create python package cd python; make dist
    2. Upload the package make upload
  11. Update distribution packages https://www.knot-dns.cz/download
  12. Update Docker Hub image (and GitLab image)
  13. Update https://en.wikipedia.org/wiki/Knot_DNS
  14. Write release email to knot-dns-users@lists.nic.cz
  15. [MAJOR RELEASE] Post a short note to Twitter