Skip to content

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

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 the rc channels.
  • Promote image for 24.04-1.x 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 Beta 1"

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 to ubports/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 from ubports/24.04-1.x sub-job of ubuntu-touch-rootfs.
    • Add 24.04-2.x/*/daily and pull rootfs from main sub-job.
    • Move all explicit device-specific image definitions to 24.04-2.x/*/daily, and set 24.04-1.x/*/daily (and other channels, if any) to pull images secondarily from 24.04-2.x/*/daily.
    • Add config for new release in ubports-systemimage-tools.toml.
  • 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 across ubports/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.
  • 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.
  • 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. With si-shell:
for variant in ["arm64/android9plus", "arm64/hybris"]:
  pub.change_channel_alias(f"utnext/{variant}/daily", f"24.04-2.x/{variant}/daily")

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 to rc
/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:

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:

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 the stable 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"
Edited by Ratchanan Srirattanamet