Release Process

Process for preparing and publishing Netatalk releases. The intended audience is project maintainers.

Making a stable release

$ echo "3.1.18" > VERSION
$ git commit -a -m "Bump version to 3.1.18"
$ vi NEWS
$ git commit -a -m "Update NEWS"
$ ./configure

Source a non-namespaced copy of docbook-xsl, f.e. from your OS’s package repo (on Debian use the package without the -ns suffix) or from SourceForge, then configure with --with-docbook pointing to the absolute path of the docbook-xsl directory.

At the time of writing, the final non-namespaced docbook-xsl release is docbook-xsl-1.79.1 on SourceForge. The packages published on GitHub are namespaced by default. See this upstream bug for more info.

$ ./configure --with-docbook=/usr/share/xml/docbook/stylesheet/docbook-xsl
$ make html
$ git add man
$ git commit -a -m "Generate manpages from XML"
$ git tag netatalk-3-1-18
$ git push origin netatalk-3-1-18
$ make dist
$ make dist-bzip2

Versioning Scheme

This project uses a custom variant of Semantic Versioning.

Given a version number MAJOR.MINOR.PATCH, increment the:

  1. MAJOR version when you make incompatible API changes
  2. MINOR version when you add functionality, deprecate unused functionality, or introduce changes that require modification to configuration in existing deployment
  3. PATCH version when you make backward compatible bug fixes, or add minor functionality

Historically, this project has used alpha and beta suffices for early major and minor releases, but this is not a practice at the time of writing.


Build and publish netatalk Docker images.

Environment Preparation

  1. Install Docker Engine in your development environment.

  2. Create and enable a cross-compilation builder.

docker buildx create --name mybuilder --bootstrap --use
  1. Generate an auth token with your Docker Hub account (read/write/delete privileges).

  2. Log in with your Docker Hub user, and pass the auth token when prompted.

docker login -u yourusername
  1. Cross compile Docker images with docker buildx, and push to the Docker Hub container registry. We currently cross compile for 32bit/64bit x86, and 32bit/64bit ARM.

  2. Tag both “latest” as well as the current release version, e.g. “3.2.0”.

docker buildx build --push --platform=linux/386,linux/amd64,linux/arm/v6,linux/arm64 . -t netatalk/netatalk3:latest -t netatalk/netatalk3:3.2.0
  1. That’s it! Confirm that the new image is published in the right repository:

This is a mirror of the Netatalk GitHub Wiki. Please visit the original page if you want to correct an error or contribute new contents.

Last updated 2024-04-13