To be carried out by the Ubuntu release team


  • Ship it!

After final Beta Release is published:

  1. Work with universe/multiverse community to identify delegates to approve Feature Freeze Exceptions, in addition to ubuntu-release until the date of Final Freeze for universe.
  2. Set the Final Freeze date (typically at release day minus 1.5 days) for universe/multiverse for the packages that are NOT found on any installation media.

  3. Universe/multiverse delegates and final freeze date is broadcast to ubuntu-devel-discuss and ubuntu-devel-announce.
  4. Check the minimum memory, disk requirements for installation and:
    1. update

    2. update bin/make-web-indices

Release minus 14 days:

  1. NonLanguagePackTranslationDeadline, ensure uploads with updated translations downloaded from Rosetta are done for:

    1. ubiquity (debian-installer)
    2. ubiquity-slideshow-ubuntu
      • Remember that Xubuntu translations are no longer hosted on LP so be sure not to clobber existing translations when using the LP export tarball.
    3. gnome-user-docs and ubuntu-docs
    4. DDTP data (package description translations)
  2. Notify Language Translation Lead (GunnarHj) and the current langpack-o-matic maintainer (sil2100) to coordinate a fresh set of language packs which will be exported, uploaded, and built in time for the release.

  3. If the new release is an LTS, make sure that hwe-support-status (located in update-manager) is up to date with the current HWE stack info, dates and versions.
  4. Verify there are no remaining 'bootstrap' entries in the update-i386-whitelist script in ubuntu-archive-tools.

  5. Run vorlon/remove-i386-binaries from to remove any built i386 binaries that are no longer seeded

Release minus 10 days:

  1. If any image names have changed since the previous cycle, notify the web team (#web-team on canonical; email: to check the website downloader code. Ask the web team to review Release Manifest.

  2. Start off release notes and announce framework. Call for ubuntu-docs and other team participation in content creation of overview and documentation of release bugs.

Release minus 7 days (release candidate week):

  1. Selectively accept package uploads to resolve targeted bugs
  2. Go through ReleaseChecklist (again, yes)

  3. Review list of full iso image names and plans with web team (#web-team on canonical; email:

  4. Disable apport and kerneloops uploads to Launchpad ('problem_types': ['Bug', 'Package'], in /etc/apport/crashdb.conf)

  5. Notify Ubuntu, Kubuntu and other flavour contacts to create and update their Upgrade docs at

  6. Send out FinalFreeze announcement to (usually somewhere around 21:00 UTC)

Release minus 6 days:

  1. Contact the web team to confirm that:
  2. Post full set of pre-release images with last language pack updates to QA iso tracker to start QA testing.
  3. Turn off daily builds (unless explicit reason why they need to remain on).
  4. Review unsubscribed packages in the team to package mapping report - there should be none.

Release minus 3 days:

  1. Make sure that /etc/issue, /etc/, /etc/lsb-release, and /etc/os-release are correct

  2. Modify debian-cd/ to set OFFICIAL

  3. Ensure that the ISO tracker lists the new milestone with the "publish from manifest" flag set.
  4. Produce a full set of official images
  5. Check the volume labels on ISO's for all architectures (cdimage/debian-cd/, OFFICIAL variable)
  6. Clear out the testing grid
  7. Clear the NBS list.

  8. Notify Hardware Certification team ( email: ) to begin CertificationTestingProcess (private due to agreements with vendors)

  9. Notify QA to begin ReleaseValidationProcess

  10. Prepare the release announcement
    • Notify Flavor Product Managers (Kubuntu, Xubuntu, Lubuntu, Ubuntu Studio, Ubuntu MATE, Ubuntu Budgie, Ubuntu Kylin) to prepare separate release announcements and review/update Release Notes.
    • this should refer to the web page prepared by the teams rather than going into details of changes itself
    • update the page to include any caveats
  11. Review targeted bugs and take final decisions on what to fix and what to defer
  12. In a local checkout of hints-ubuntu, run generate-freeze-block <list of flavours> > freeze. generate-freeze-block comes from lp:ubuntu-archive-tools

Release minus 1 day:

  1. Pre-publish the CD images: ./publish-image-set --prepublish will print the necessary commands.

  2. Copy .manifest to .manifest.full, and prune all images from previous releases from the .manifest file to allow timely mirror probing
  3. Run sync-mirrors on ancientminister to push out the pre-published file structure.

  4. Review on the staging server the feature walk through on the website (web-team)
  5. Build the sources images (cron.source) to be published, by the publisher script.
  6. Ping CPC using cpc-help keyword in #ubuntu-release to update on current status to see if CPC can start staging cloud images ready for publication.

  7. Apply a "block-all source" hint to proposed-migration; any further changes to -proposed not intended for SRU will need to be unblocked manually

Release minus 6 hours:

  1. If there is a previous milestone for this series, move those images from /srv/ to /srv/, and notify the sysadmin team that these are available for off-line archival.
  2. Disable mirror syncing on ancientminister, by creating /srv/

  3. Publish the CD images: ./publish-image-set will print the necessary commands.

    • You need to edit cdimage/www/simple/HEADER.html and cdimage/www/simple/.htaccess by hand to drop the mention of "Release Candidate", since neither publish-release nor publish-image-set is yet smart enough to do the right thing there.

  4. If we are using Cloudfront, notify the vanguard in #IS that images are ready to be pushed to s3 to be ready for CloudFront:

    • find /srv/ -name \*20.04\*iso -o -name \*20.04\*xz -o -name \*20.04\*gz | grep -v torrent

  5. Once the s3 copy is done, ask IS to re-enable rsync and re-enable sync-mirrors. Run sync-mirrors manually to push out the updated images to cdimage & releases. This will make them available to the public.

  6. Ping CPC using cpc-help keyword in #ubuntu-release to start the process of building and publishing cloud images.

  7. Ping the WSL team to release the images to the store.
  8. Copy .manifest to .manifest.full again, pruning all images from previous releases from the .manifest file to allow timely mirror probing
  9. Verify .manifest only contains the images currently being released, and then ask the #is vanguard to run the mirror prober continuously to verify which mirrors are up to date; output visible here. Take a note of how many mirrors were there before this started.

  10. Check torrents for proper functionality. Ensure the tracker knows about the torrent, either by checking Properties -> Trackers in Transmission, or by using a CLI client such as aria2c which prints the errors to its stdout).

    1. Check has all the new images

  11. Confirm that website content is finalized, as further edits will be difficult under load and check with sysadmin that caches will be cleared on time (web-team, IS, release-team).
  12. Check the mirror prober loop has resulted in at least 60% of the mirrors being restored, so the website can spread the load amongst more mirrors. This list is baked into the Ubuntu website at build time, so notify the web team to (re)build the site.

Release minus 1 hour:

  1. Coordinate with web team for publishing of staging.
  2. Coordinate with PR team (Sian Aherne) to inform media who are waiting for launch to post their articles.
  3. Check through the release notes for links to old milestones and update them


  1. Update the topic on #ubuntu-devel, and #ubuntu-release-party and make announcement in #ubuntu-release-announce, and then in #ubuntu-release-party.

  2. Update the appropriate meta-release files (including raspi/os_list_imagingutility_ubuntu.json) in the bzr branch. Then a member of the changelogs group (BrianMurray, laney, sil2100) updates the meta-release bzr branch on rubay /srv/ and copies updated files to /srv/ .

  3. Ping Canonical IS to clear the content-cache in is-content-cache for and

  4. Switch the development release from its codename to its version in errors/templates/bucket.html in errors

  5. Notify web team to announce on the website
  6. Send the release announcement to ubuntu-announce.

  7. Notify a Launchpad admin to set the status of this distrorelease to CURRENT, and to change any previous CURRENT distrorelease(s) to SUPPORTED.

  8. Deactivate release milestone in Launchpad.
  9. Post announcement to News & Announcements section (forum admins have posting rights)

  10. Post announcement to Launchpad (ubuntu-drivers members have posting rights)

  11. Create a branch for the stable release in hints-ubuntu: git branch <release> devel; git push origin <release> (To ensure it’s available before any 0-day SRUs are uploaded)

  12. Update the main page of to include the new release in the Releases table.
  13. Sleep!

Release plus 1 day:

  1. If any changes were made to this document in this run, check whether the changes also apply to AlphaProcess, BetaProcess or ReleaseCandidateProcess.

  2. Restore the .manifest.full file on
  3. Ask Canonical IS to restore the mirror prober back to normal operation
  4. Continue on NewReleaseCycleProcess.

  5. Update Relevant community documentation with references to this new release

    1 Review through the process pages, and update to the release name (e.g. oneiric->precise)

Release plus ~ 2 weeks:

  1. Hold PostReleaseReview session at UDS, and feed input into updating processes, and next release cycle.


ReleaseProcess (last edited 2021-10-15 08:15:45 by sil2100)