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

Pre release (work in progress)

  1. Check for test failures in CI pipeline, which includes functional tests.

  2. 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 freedombox repository, and check out latest main branch.
  3. Update translation strings by running make update-translations. Commit the changes in plinth/locale/.

    • Exception: If uploading to experimental, then probably want to skip this, so that translators can continue working on the version in unstable and testing.
  4. Run gbp dch to update debian/changelog.

    • Check freedombox 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 the changes in doc/.

  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. Build the source-only package using gbp buildpackage --changes-option=-S.

  13. Sign the dsc and changes files with debsign.
  14. Upload the changes file with dput.
  15. When the release is accepted into Unstable, you will get an email "Accepted freedombox yy.nn (source) into unstable".
  16. After the release is accepted into Unstable, create a signed tag for the release using gbp tag. 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/bookworm-backports branch, and pull latest changes.
  2. Merge the release tag of the version in testing.
    • There will be a merge conflict due to debian/changelog. Resolve it by arranging the releases in the correct chronological order, and then commit.
  3. Run dch --bpo to add the debian/changelog entry for the new backport release.

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

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

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

  7. There is a vagrant box based on bookworm that can be used for testing.

  8. Build the source-only package using DIST=bookworm-backports gbp buildpackage --changes-option=-S -v<previous>.

  9. Sign the dsc and changes files with debsign.
  10. Upload the changes file with dput.
  11. After the release is accepted into backports, create a signed tag for the release using gbp tag --ignore-branch. Push debian/bookworm-backports and the new tag to the Salsa repository.


CategoryFreedomBox