Tracking issue for major release: 24.04-1.0
Info for the release
- Series: 24.04-1.x
- Version: 24.04-1.0
- Release coordinator: Ratchanan Srirattanamet (@peat-psuwit)
Release status
- Repo status: Final Freeze.
- Ubuntu Touch 24.04-1.0 RC 1 is published.
- The issues with OpenStore app version is now solved on OpenStore side. I'll publish a guide on publishing apps for 24.04-1.x in upcoming days.
Release schedule
Date | Event |
---|---|
31 July 2025 | Platform stability freeze, 24.04-1.0 Beta 1 |
14 August 2025 | String freeze |
28 August 2025 | Branch off, 24.04-1.0 Beta 2 |
11 September 2025 | Final freeze, 24.04-1.0 RC |
25 September 2025 | Release version 24.04-1.0 |
Note on the freezes:
- When such-and-such freeze happens on day, that means changes affected by the freeze must be merged at the latest end of the day prior (CET or CEST). This allows changes to be built and included in the next day's image.
- Repositories which does not form part of Ubuntu Touch images are exempted from the freeze.
Platform stability freeze, Beta 1 (31 July)
When platform stability freeze is in effect, please don't land disruptive changes to main
or ubports/latest
branch. This includes, but doesn't limit to, across-the-repo changes and API renamings. Click framework will be declared "stable" at this point.
At D - 1 week: preparatory work
-
Announce platform stability freeze on UBports Development Telegram group. -
Discuss with UBports Porting Telegram group if there's any device wanting to join rc
/stable
train. -
Submit MR to mark framework for 24.04-1.x as available
in click-reviewers-tools. -
Prepare draft MR to ubuntu-touch-meta-release to add 24.04-1.x RC channels. -
Provide a blog post draft to WriterOps team.
At the date: create the /rc channel on system-image-server. Copy the daily image for that day to RC.
-
Verify no issue in the release's milestone is marked "Severity: Critical". -
(24.04-1.x only) Unhide daily channels -
Create RC channels for 24.04-1.x
/opt/ubports-systemimage-tools/bin/create-channels \
--release 24.04-1.x \
--previous-release 20.04 \
--stability rc \
--print-metarelease-config
-
If applicable, manually add new devices to join rc
/stable
train to therc
channels. -
Promote image for 24.04-1.x from daily
torc
/opt/ubports-systemimage-tools/bin/promote-images \
--release 24.04-1.x \
--from daily --to rc \
--tag "24.04-1.0 Beta 1"
-
Merge MR to ubuntu-touch-meta-release adding 24.04-1.x RC channels. -
Publish blog post, forum post. -
Announce the freeze, Beta 1, and the next freeze (String freeze) on Telegram.
String freeze (14 August)
Once in effect, please don't land any changes to translatable strings. This is required because our translation pipeline only allows translation to land on main
. This also allow documentations to be updated with the final strings if needed.
-
Announce this freeze and the next milestone (branch off) on Telegram. -
Go through repos with merged MRs; if there's translations, make sure .pot
files are up-to-date. -
Announce string freeze and call-for-testing to "UBports Languages" Telegram group.
Branch off, 24.04-1.0 Beta 2 (28 August)
On this date, branch ubports/24.04-1.x
will be created across ubports/development/core
group. From now on, only bug fixes and small changes are allowed to be cherry-picked. On the other hand, all freezes on main
and ubports/latest
are lifted; all kind of changes can land in main
branch again.
As part of the process,
At D - 1 week: preparatory work
-
Announce upcoming branch off on UBports Development Telegram group. -
Prepare a draft MR for ut-version-info.json
in build-tools. Add next version of UT - YY.MM-B.x - and switch current version of UT toubports/YY.MM-A.x
branch.
"24.04-2.x": {
"built_from_git_branches": [ "main", "ubports/latest", "ubports/contrib" ],
"aliases": [ "next" ],
"base_distro": { "distro": "ubuntu", "release": "noble" },
"aptly_archive": "24.04-2.x",
"jdg_distribution_string": "ubports24.04.2"
},
"24.04-1.x": {
"built_from_git_branches": [ "ubports/24.04-1.x" ],
"base_distro": { "distro": "ubuntu", "release": "noble" },
"aptly_archive": "24.04-1.x",
"jdg_distribution_string": "ubports24.04.1"
}
-
Prepare draft MR to rootfs-builder-debos; configure main
branch to start building for 24.04-2.x. -
Prepare draft MR to ansible-playbook repo to change system-image-server config: - Configure
24.04-1.x/*/daily
to pull rootfs fromubports/24.04-1.x
sub-job ofubuntu-touch-rootfs
. - Add
24.04-2.x/*/daily
and pull rootfs frommain
sub-job. - Move all explicit device-specific image definitions to
24.04-2.x/*/daily
, and set24.04-1.x/*/daily
(and other channels, if any) to pull images secondarily from24.04-2.x/*/daily
. - Add config for new release in
ubports-systemimage-tools.toml
.
- Configure
-
Prepare draft MR to ubuntu-touch-meta-release -
Prepare draft MRs to add the Click framework and AppArmor policy for the next version. - Add framework in ubuntu-touch-meta.
- Add policy in apparmor-easyprof-ubuntu (and update 9999's link).
- Add mapping between framework -> policy_version in click-apparmor
- Add mapping in click-review-tool
- Add mapping in clickable-docker-images
- Add mapping in Clickable.
-
Provide a blog post draft to WriterOps team.
At the date: branch off and prepare next Ubuntu Touch series
-
Announce branch off in progress in Telegram. -
To prevent GitLab-Aptly desync, pause Jenkins jobs. Monitor all CI jobs before proceed. -
Run the branching script to create ubports/YY.MM-A.x
branch acrossubports/development/core
# TODO: branching script
-
Create Backport to: ubports/24.04-1.x
label in ubports/development/core. -
Create apt archive for the next Ubuntu Touch series on the CI master node.
series_current=24.04-1.x
series_next=24.04-2.x
aptly snapshot create "${series_next}_from_${series_current}" from repo ${series_current}
aptly repo create -distribution=${series_next} ${series_next} from snapshot "${series_next}_from_${series_current}"
aptly snapshot drop "${series_next}_from_${series_current}"
aptly publish repo -origin='UBports' "${series_next}" filesystem:repo:main
-
Update Apt aliases.
cd /var/www/repo/main/dists && ln -s 24.04-2.x next
-
Merge the prepared MR on build-tools. Then, deploy using Ansible. -
At this moment, we're free to resume Jenkins jobs again. - Go to https://ci.ubports.com/ and look for the banner which cancels prepare-to-shutdown mode.
-
rootfs-builder-debos/Jenkins: kickstart a build for ubports/24.04-1.x
branch.- Go to https://ci.ubports.com/job/ubuntu-touch-rootfs and click 'Play' on the entry for
ubports/24.04-1.x
. - There's no need to wait for the job to finish to go to the next step. system-image-server will ignore non-existent rootfs, and we already have images in 24.04-1.x's daily channel.
- Go to https://ci.ubports.com/job/ubuntu-touch-rootfs and click 'Play' on the entry for
-
Merge MR to ansible-playbook configuring system-image-server and ubports-systemimage-tools; deploy it to system image server. -
Merge MR to rootfs-builder-debos configuring to build for 24.04-2.x -
Create 24.04-2.x's daily channels on system-image-server.
/opt/ubports-systemimage-tools/bin/create-channels \
--release 24.04-2.x \
--previous-release 24.04-1.x \
--stability daily \
--print-metarelease-config
-
update utnext
aliases on system-image-server. Withsi-shell
:
for variant in ["arm64/android9plus", "arm64/hybris"]:
pub.change_channel_alias(f"utnext/{variant}/daily", f"24.04-2.x/{variant}/daily")
-
Merge prepared MR against ubuntu-touch-meta-release to add 24.04-2.x to meta-release.
Now, publish 24.04-1.0 Beta 2.
-
Verify no issue in the release's milestone is marked "Severity: Critical". -
Promote image for 24.04-1.x from daily
torc
/opt/ubports-systemimage-tools/bin/promote-images \
--release 24.04-1.x \
--from daily --to rc \
--tag "24.04-1.0 Beta 2"
-
Publish blog post, forum post. -
Announce branch off, Beta 2, and the next milestone (Final freeze) on Telegram.
Finally:
-
Undraft MRs for Click framework mappings.
Final freeze, 24.04-1.0 release candidate (11 September)
At this point, All changes must be discussed on either Telegram or Devsync before it can be merged to ubports/24.04-1.x
. Release candidate is produced and is expected to be in release-able state.
At D - 1 week:
-
Announce upcoming freeze on Telegram. -
Provide a blog post draft to WriterOps team.
At the date:
-
Verify no issue in the release's milestone is marked "Severity: Critical". -
Smoke tests (boot, WiFi, mobile data, phone, SMS) -
Halium 7 (Sony Xperia X) - It's known that UT 24.04-1.x doesn't boot on Sony Xperia X. It'll be looked into at a later date. For now, we'll skip offering 24.04-1.0 to this device
-
Halium 9 (Volla Phone) -
Halium 10 (???) -
Halium 11 (Fairphone 4) -
Halium 12 (Volla Phone X23) -
Halium 13 (Volla Phone Quintus)
-
-
Promote images from /daily
to/rc
/opt/ubports-systemimage-tools/bin/promote-images \
--release 24.04-1.x \
--from daily --to rc \
--tag "24.04-1.0 RC"
-
Update version name in ubuntu-touch-meta-release. -
Call for testing forum post: -
Call for testing announced on Telegram QA group. -
Call for testing blog post:
Release version 24.04-1.0 (24 September)
Big day! If everything works properly we'll start providing 24.04-1.0 to all users.
At D - 1 week:
-
Prepare a draft MR to ubuntu-touch-meta-release adding stable channels. -
Provide a blog post draft to WriterOps team.
At the date:
-
Verify no issue in the release's milestone is marked "Severity: Critical". -
Create /stable
channels for 24.04-1.x -
If applicable, manually add new devices to join rc
/stable
train to thestable
channels. -
Promote images from /rc
to/stable
.
/opt/ubports-systemimage-tools/bin/promote-images \
--release 24.04-1.x \
--from rc --to stable \
--tag "24.04-1.0"
-
Merge MR to ubuntu-touch-meta-release adding stable channels. -
Release announcement blog post: