Release Process
Process for preparing and publishing Netatalk releases. The intended audience is project maintainers.
Making a stable release
- Bump VERSION
$ echo "3.1.18" > VERSION
$ git commit -a -m "Bump version to 3.1.18"
- Update NEWS as necessary:
$ vi NEWS
$ git commit -a -m "Update NEWS"
- Re-run configure so the VERSION bump gets passed to the build system
$ ./configure
-
Run
make distcheck
, fix any errors -
Regenerate manpages from XML sources using docbook-xsl stylesheets
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"
- Tag, release and roll tarballs
$ git tag netatalk-3-1-18
$ git push origin netatalk-3-1-18
$ make dist
$ make dist-bzip2
-
Reset VERSION to the “dev” version of the next planned release, e.g.
3.1.19dev
-
In the GitHub web interface, draft a new release. Choose the tag that you just pushed to the remote. Name the release and generate the release notes. Touch up the release notes if needed, upload both xz and bz2 tarballs generated by the build system, and publish the release.
-
Commit updates to the html manual to the netatalk-homepage repository, generate html release notes, and author other release updates to the homepage.
Versioning Scheme
This project uses a custom variant of Semantic Versioning.
Given a version number MAJOR.MINOR.PATCH, increment the:
- MAJOR version when you make incompatible API changes
- MINOR version when you add functionality, deprecate unused functionality, or introduce changes that require modification to configuration in existing deployment
- 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.
Docker
Build and publish netatalk Docker images.
Environment Preparation
-
Install Docker Engine in your development environment.
-
Create and enable a cross-compilation builder.
docker buildx create --name mybuilder --bootstrap --use
-
Generate an auth token with your Docker Hub account (read/write/delete privileges).
-
Log in with your Docker Hub user, and pass the auth token when prompted.
docker login -u yourusername
-
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.
-
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
- That’s it! Confirm that the new image is published in the right repository: https://hub.docker.com/u/netatalk
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-05-09