Differences between revisions 1 and 33 (spanning 32 versions)
Revision 1 as of 2016-08-12 10:49:38
Size: 885
Comment: new page - release process
Revision 33 as of 2020-05-01 00:35:13
Size: 4058
Comment: Update Salsa links to FreedomBox project (from plinth)
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
This is a brief description of the process of releasing a new version of FreedomBox. This is a brief description of the process of releasing a new version of !FreedomBox.
Line 3: Line 3:
== Plinth Upstream Release == == Pre release (work in progress) ==
Line 5: Line 5:
After deciding (with other developers) that a new release is needed:
 1. Update translation strings by running {{{python3 setup.py update_translations}}}. Commit and push to master.
 1. Check that [[https://salsa.debian.org/freedombox-team/freedombox/pipelines|unit tests]] are not broken.
 1. Run plinth [[https://salsa.debian.org/freedombox-team/freedombox/blob/master/HACKING.md#running-functional-tests|functional tests]] against current master.
 1. Check if boot process happens on one image.

== Release ==

Releases are currently done every 2 weeks.
 1. Check if there are any [[https://hosted.weblate.org/projects/freedombox/plinth/#repository|uncommitted changes]] on weblate. Commit if there are any.
 1. Clone the plinth repository, and check out latest master branch.
 1. Update translation strings by running {{{python3 setup.py update_translations}}}. Commit.
 1. Run {{{gbp dch -a --multimaint-merge}}} to update debian/changelog.
    * Check [[https://bugs.debian.org/cgi-bin/pkgreport.cgi?repeatmerged=no&src=plinth|plinth bugs]] to see if any Debian bugs should be closed by the changes in the release.
    * Remove any {{{(Closes: nnnn)}}} that refer to Salsa issues rather than Debian bugs.
 1. Update the [[FreedomBox/ReleaseNotes|Release Notes]] on the wiki. This is a summary of changes that are relevant to end users or otherwise important to note.
 1. Fetch the latest manual by running {{{make -C doc fetch}}}. Commit.
 1. Update the version number in {{{plinth/__init__.py}}}.
 1. Run {{{dch -r}}} and finalize the changelog.
 1. Commit these changes with the message "Release v<version> to unstable".
 1. Build the package using {{{gbp buildpackage}}}.
    * Check for any new lintian errors.
 1. Run autopkgtest:
    * {{{autopkgtest --apt-upgrade -B <new freedombox .deb> <source folder> -- qemu ~/autopkgtest/sid}}}
 1. Test the new package by installing the package in a development environment, or by building a freedom-maker image with --custom-package.
 1. Build the source-only package using {{{gbp buildpackage --changes-option=-S}}}.
 1. Sign the dsc and changes files with debsign.
 1. Upload the changes file with dput.
 1. When the release is accepted into Unstable, you will get an email "Accepted plinth x.y.z (source) into unstable".
 1. After the release is accepted into Unstable, create a (signed) tag for the release. Push commits and the new tag to the Salsa repository.
Line 8: Line 34:
    * Usually there is a "string freeze" period that allows translators to update their translations for the release.
 1. After the "string freeze", pull latest translation changes from master.
 1. Update the [[FreedomBox/ReleaseNotes|Release Notes]] on the wiki.
 1. Fetch the latest manual by running {{{make -C doc fetch}}}. Commit.
 1. Update the version number in {{{plinth/__init__.py}}}. Update the changelog. Commit and tag the release. Push to master (including the tag).

== Post release (work in progress) ==

 1. Publish changes from Release Notes on various channels:
    * [[https://discuss.freedombox.org/c/announcements|discussion forum]]
    * mailing lists
    * irc and matrix groups
    * Mastodon or Twitter, etc.
 1. Upload new image to Vagrant Cloud.

== Backports ==

A release can be backported to stable-backports after it has migrated to testing.

 1. Check out the debian/buster-backports branch.
 1. Merge the latest release tag.
    * There will be a merge conflict due to debian/changelog. Resolve it by arranging the releases in the correct chronological order.
 1. Run {{{dch --bpo}}} to add the debian/changelog entry for the new backport release.
 1. Commit this change with message "Release <version> to buster-backports".
 1. Build the binary package with {{{DIST=buster gbp buildpackage -v<previous>}}} where <previous> is the previous version in backports.
 1. There is a [[https://app.vagrantup.com/freedombox/boxes/freedombox-buster-dev|vagrant box]] based on buster that can be used for testing.
    * Set it up using [[https://salsa.debian.org/freedombox-team/freedombox/snippets/273|this Vagrantfile]].
 1. Run autopkgtest:
    * {{{autopkgtest --apt-upgrade -B <new freedombox .deb> <source folder> -- qemu ~/autopkgtest/buster}}}
 1. Sign the dsc and changes files with debsign.
 1. Upload the changes file with dput.
 1. After the release is accepted into backports, create a (signed) tag for the release. Push debian/buster-backports and the new tag to the Salsa repository.

This is a brief description of the process of releasing a new version of FreedomBox.

Pre release (work in progress)

  1. Check that unit tests are not broken.

  2. Run plinth functional tests against current master.

  3. Check if boot process happens on one image.

Release

Releases are currently done every 2 weeks.

  1. Check if there are any uncommitted changes on weblate. Commit if there are any.

  2. Clone the plinth repository, and check out latest master branch.
  3. Update translation strings by running python3 setup.py update_translations. Commit.

  4. Run gbp dch -a --multimaint-merge to update debian/changelog.

    • Check plinth bugs to see if any Debian bugs should be closed by the changes in the release.

    • Remove any (Closes: nnnn) that refer to Salsa issues rather than Debian bugs.

  5. Update the Release Notes on the wiki. This is a summary of changes that are relevant to end users or otherwise important to note.

  6. Fetch the latest manual by running make -C doc fetch. Commit.

  7. Update the version number in plinth/__init__.py.

  8. Run dch -r and finalize the changelog.

  9. Commit these changes with the message "Release v<version> to unstable".

  10. Build the package using gbp buildpackage.

    • Check for any new lintian errors.
  11. Run autopkgtest:
    • autopkgtest --apt-upgrade -B <new freedombox .deb> <source folder> -- qemu ~/autopkgtest/sid

  12. Test the new package by installing the package in a development environment, or by building a freedom-maker image with --custom-package.
  13. Build the source-only package using gbp buildpackage --changes-option=-S.

  14. Sign the dsc and changes files with debsign.
  15. Upload the changes file with dput.
  16. When the release is accepted into Unstable, you will get an email "Accepted plinth x.y.z (source) into unstable".
  17. After the release is accepted into Unstable, create a (signed) tag for the release. Push commits and the new tag to the Salsa repository.
    • Weblate will automatically update with the latest changes.

Post release (work in progress)

  1. Publish changes from Release Notes on various channels:
  2. Upload new image to Vagrant Cloud.

Backports

A release can be backported to stable-backports after it has migrated to testing.

  1. Check out the debian/buster-backports branch.
  2. Merge the latest release tag.
    • There will be a merge conflict due to debian/changelog. Resolve it by arranging the releases in the correct chronological order.
  3. Run dch --bpo to add the debian/changelog entry for the new backport release.

  4. Commit this change with message "Release <version> to buster-backports".

  5. Build the binary package with DIST=buster gbp buildpackage -v<previous> where <previous> is the previous version in backports.

  6. There is a vagrant box based on buster that can be used for testing.

  7. Run autopkgtest:
    • autopkgtest --apt-upgrade -B <new freedombox .deb> <source folder> -- qemu ~/autopkgtest/buster

  8. Sign the dsc and changes files with debsign.
  9. Upload the changes file with dput.
  10. After the release is accepted into backports, create a (signed) tag for the release. Push debian/buster-backports and the new tag to the Salsa repository.


CategoryFreedomBox