Skip to content

Release process

Dakota Williams edited this page Oct 19, 2020 · 3 revisions

Releases of dattobd are made as needed.

Versioning

dattobd uses a <major>.<minor>.<patch> scheme for versions (e.g., 0.10.9).

The version is modifed when preparing the release, such that the commit that changes the version is the commit that gets tagged and released.

Tags

Tags should be formatted as v<major>.<minor>.<patch> (e.g., v0.10.9).

Tags should be signed with a GPG signing key. Ensure you are using GPG 2.1 or newer. As a reference, read the Linux developer PGP guide.

To push tags you'll also need a valid Github API token with push access: https://github.com/settings/tokens

Release notes

A changelog is prepared at the time of the release.

  • Review the commits since the previous tag for release information
  • Review the associated issues and pull requests for addition information

Example

As a reference, these were the steps for creating the 0.10.9 release.

# Write a changelog based on commits
git checkout master
git pull upstream master
git log v0.10.8...HEAD

# Modify version, add changelog
vim dist/dattobd.spec
# Modify version 
vim src/dattobd.h

git add src/dattobd.h dist/dattobd.spec
git commit -m "Version 0.10.9"

git tag -u $GPGKEYID -m "Version 0.10.9" v0.10.9
# Verify the correct key was used
git tag -v v0.10.9

git push upstream master
git push upstream v0.10.9

firefox https://github.com/datto/dattobd/releases/new

On the new release draft page:

  • Specify the tag as the release tag name: v0.10.9
  • Specify the version as the release title: 0.10.9
  • Add the changelog and any relevant notes to the description
  • Click "Publish release"

The release is now available on GitHub.

The packages for distros must be built and deployed on https://cpkg.datto.com. This is handled by the DevOps team using internal infrastructure. Create an internal ticket for DevOps to publish the new release.

Finally, when the new release is published, send a message to the internal release mailing list to inform stakeholders.

Clone this wiki locally