Release checklist
The following list is strictly for ubuntu-release team members, based on the PointReleaseProcess document.
Legend:
-
- Task assigned and worked on
-
- Task finished
-
- Task skipped or failed
- XXX - Task contents added or modified during this release
Release minus 6 weeks:
-
Create a release tracking Discourse thread for the release in mention. This should include:
- On top, a short summary of the current state of the release
- Sections for release blocker and upgrade blocker bugs
- Section for bugs to watch for
- Copy of the release checklist as actual checklist items
-
Coordinate with the kernel team to ensure HWE kernels are updated to the new target release (Kernel/RollingLTSEnablementStack#Update_Schedule-2).
Release minus 1 month:
-
In coordination with QA, verify that all candidate bugs are fixed.
-
If the kernel or associated modules have been changed, upload debian-installer after all the binaries are in place. If the ABI changed, make sure to take account of this throughout debian-installer/build/config/ and in the installer seed for all flavours being built.
- Before pushing the debian-installer packages to the archive, do a test build in a PPA to make sure no size bumps are needed.
- This step is no longer needed for series focal and newer as debian-installer is no longer used in any installation media.
-
If this point release includes the switch to enable the HWE stack (usually XX.XX.2):
- Make sure that the variant list in livecd-rootfs’s
live-build/ubuntu-server/hooks/033-kernel-bits.binary
hook includes both ga and hwe to make sure subiquity offers both kernel flavors. Upload and fast-forward into -updates in case it doesn’t. - Make sure that the
server-ship-live
seed includes the new hwe kernel. - Check and mark livecd-rootfs
auto/config
LB_KERNEL_FLAVOURS
to the-hwe-XX.XX
variant for every desktop flavor participating.
- Make sure that the variant list in livecd-rootfs’s
-
Change cdimage/lib/cdimage/config.py and debian-cd/CONF.sh to use the new release version number.
-
Make sure that that we are building the daily images with -proposed enabled.
-
Update the manifest to reflect publishing status of images based on input from product leads.
-
Build CD images (which will be published on cdimage.ubuntu.com) and smoke-test in some convenient environment to check for obvious failures.
-
Notify translations-team to prepare updates for point release.
Release minus 3 weeks:
-
Include the latest translation updates into the sources for the point release.
-
Contact IS, QA, and/or certification as appropriate to request testing for hardware recertification.
-
Iterate CD images as needed based on testing feedback, in coordination with the kernel team.
-
Check to see if python-apt has been uploaded recently. If not, upload a new version.
-
Check to see if ubuntu-release-upgrader have been uploaded recently. If not, upload a new version after running pre-build.sh as that generates the updated lists of mirrors.
-
Ensure that the stable/ubuntu-XX.YY.Z branch has been published for the subiquity snap.
Release minus 14 days:
-
Prepare change summary and release announcement
- Script to use for preparing the change summary: http://people.canonical.com/~vorlon/release-updates.py
- Sort and/or re-divide updates into rough categories (see previous summaries)
- Remove administrative-only bugs (e.g. kernel release tracking)
- Try to reduce each entry to just a description of the change; remove redundant bug references and information about where the change came from (people can go to the raw changelog if they care)
- This can involve substantial amounts of editing; make sure you have a good editor and/or a clear grasp of regular expressions
- If this point release includes an HWE stack, communicate the life cycle of this HWE stack
- If this is the final point release for the distroseries (because a new LTS will be released soon), include a reminder of this and of the support cycle/EOL
Release minus 7 days:
-
Notify web team of the upcoming point release.
- Determine who from the team the publishing contact will be.
- Include summary list of actual file names of ISOs that will make up releases.
- Include detailed information about which image file names will change on the mirrors for the point release, and which ones will not.
- Discuss release stability and handoffs on release date.
-
Upload a new base-files package to -proposed to bump the lsb_release description (example for 8.04.4). Do not change the DISTRIB_RELEASE value, which is used programmatically by third-party software. If the etc/os-release file exists, update VERSION and PRETTY_NAME, don’t update VERSION_ID.
-
Push base-files through to -updates.
-
Once testing is verified to be complete, move packages to -updates. This should vary depending on how much testing of the daily -proposed images has been done - ideally we want to flush the whole -proposed pocket to not invalidate the earlier testing.
- Make sure debian-installer has picked up all the installer related changes and doesn’t require a re-build.
-
Analyze the package diffs between last point-release and the current daily image for each participating flavour (stripping versions) to make sure no changes are pulling in a bunch of new/unexplained packages.
-
: Turn off cron jobs that will auto update into -updates until final images are tested.
-
Build candidate release images and populate into iso tracker. Make sure that those images are NOT building with -proposed enabled. Re-spin when appropriate.
- Before running builds, make sure cdimage is up-to-date with archive contents and run anonftpsync on nusakan.
- Also remember about building source images along with those (e.g. DIST=xenial cron.source), re-spinning when appropriate.
- Remember about building core images as well (as per UbuntuCore/ReleaseProcess).
-
Create a snapshot of the archive: ubuntu-archive@snakefruit:~$ point-release-snapshot lucid lucid.3-security-updates-snapshot which will copy the relevant indices to a subdirectory of ~ubuntu-archive/point-releases/. (Packages may be retrieved from the Launchpad librarian if required.)
- Remember to re-create the snapshot whenever new candidate images are built.
-
Notify OEM team (irc: KyleN) to build found license list for main.
Release minus 3 hours:
-
Check with James Troup whether the previous point release needs to be moved off before prepublishing due to mirror space constraints.
-
If this point-release is an LTS with an OEM stack, contact the Certification Team for a formal sign off of the images.
-
Pre-publish images: ./publish-image-set --prepublish will print the necessary commands.
-
Copy .manifest to .manifest.full, and prune all images from previous releases from the .manifest file to allow timely mirror probing.
-
Run sync-mirrors on nusakan to push out the pre-published file structure.
Release:
-
Release images as final, and move the previous images to old-releases.ubuntu.com:
- Archive the old copy of wubi.exe to old-releases, and publish a new one (do this first so that its timestamp will be newer than that of the checksum files so that the checksums will be updated properly)
- Find which previous images on cdimage.ubuntu.com for this release are going to be replaced by this image set, and archive them to old-images (using a similar procedure to that in EndOfLifeProcess for moving images from cdimage.ubuntu.com, but leave /srv/cdimage.ubuntu.com/www/full/netboot/RELEASE/ alone).
- Publish images: ./publish-image-set.py will print the necessary commands.
- Update version numbers in cdimage/www/simple/HEADER.html and cdimage/www/simple/.htaccess.
- Archive releases.ubuntu.com images from the previous point release to old-releases (using a similar procedure to that in EndOfLifeProcess, but being more selective about which files to move).
- Copy .manifest to .manifest.full again, pruning all images from previous releases from the .manifest file to allow timely mirror probing.
- Run sync-mirrors on nusakan to push out the published file structure.
- If you moved images to old-releases, remember to run sync-old-releases as well.
- Notify Web team to update the iso URLs on the ubuntu.com website
- Remember to publish core images as well (as per UbuntuCore/ReleaseProcess).
-
Ping bdmurray to update meta-release file on http://changelogs.ubuntu.com/
-
Regenerate the Raspi Installer JSON file to include the latest images and checksums (ping waveform or sil2100).
-
Work with release and web publishing team to monitor mirror pickup
- verify download from ubuntu.com
- check that the torrents are working
- verify download from one of the mirrors
-
Send the announcement mail (see archives for past examples)
- ubuntu-announce
- ubuntu-release
- Post on Discourse
-
Notify press release team if needed
Release +1 day:
-
Restore the .manifest.full file on releases.ubuntu.com
-
Deactivate the just released “point release” milestone target
-
Re-enable -proposed for daily builds on cdimage
-
Re-enable daily builds
-
Send out update to people running previous LTS (after migration testing completed).
-
Get final summary of updates for release (see precise-updates.py script), and publish to ???
-
Gather feedback info for future improvements to process