ubports/focal branching will happen on 14 February
-
As announced on the blog, we will start creating
ubports/focal
on our git repositories. I intend to start creating these branches on 14 February 2024, 18:00 UTC.This post serves as an FAQ for both the announcement and for the upcoming branching, as well as the place to ask additional questions.
What is the scope of this branch creation?
For this round, it will include most Git repositories under ubports/development/core GitLab group. Since I expect that most applications, including core apps, should not require much changes for 24.04 base upgrade, I've decided that I won't create branches for core apps for now. Should the need arise, we can decide later.
Also excluded in this round is repositories under ubports/development/core/packaging, which contains
ubports/focal
branch but notubports/latest
. Since this usually means the packaging is not applicable if the base changes, we will probably want to start a newubports/latest
from scratch instead of forking from currentubports/focal
.What will happen with the CI after branching?
At the moment of branching, hopefully nothing. I will config Jenkins so that it ignore new branches, so new builds should not be triggered because of this. I will actively monitor Jenkins to ensure this, and will cancel any excess jobs that happen because of branch creation.
After that, new commits added to
ubports/focal
will be built & published to the Focal APT archive on repo.ubports.com as expected. However, new commits added tomain
will fail to build withNo distro is included in multidist. Maybe "main" shouldn't exist?
. This is expected, since our CI code isn't yet updated to support new branching scheme. Updating CI code is the next on my agenda.What about
focal_-_<extension>
branches? What do you mean by "explicit dependency declaration"?Since the "branch extension" concept doesn't translate well into the new branching model, it was decided to drop this out of the specification. While the old
ubports/focal_-_<extension>
will continue to work (grandfathered), do not expect this to be the case for future releases.As for "explicit dependency declaration", the plan is to let you specify the dependent MRs in the MR description, and the CI will read that description and pull in that MR's APT archive. I will work on this as part of CI code work. Long term, I would prefer that we also get GitLab's MR dependencies, but GitLab is still figuring out how to expose that via API.
How will you create all the branches across all repositories?
The creation of the branches is automated using this Python script. It talks to GitLab API to fetch the current status of all repositories, then decides what branch to create (and from what branch). It then asks for confirmation, and when confirmed, create all the branches. The script is designed to be idempotent, and take into account that some repositories have
ubports/focal
branch but notmain
.What will happen with the devel system-image channel?
At the moment, nothing. Since our devel channels are already prefixed, the
20.04/*/*/devel
channels will continue to receive Focal-based images, which subsequently will continue to be built fromfocal
APT archive.I have not decided the new system-image channel to publish the noble-based images yet.
-
-
The branching is finished. I have to run the script twice since in the first run the script did not take the archived state into account. Luckily, the script is already idempotent, so I can just code that in and re-run the script.
For accountability, these are the log of both runs: https://gitlab.com/-/snippets/3673980
Also, since I noticed it, I also go ahead and delete
ubports/focal
branch after the fact for these repositories since they are not actually code repositories.- https://gitlab.com/ubports/development/core/devscripts
- https://gitlab.com/ubports/development/core/focal-projectmanagement-missing-packages
As mentioned, this means CI for
main
branch will fail for a while, so it's probably not a good idea yet to merge MRs. I'm working on the CI change as we speak. Thank you for your patience. -
@peat_psuwit Thank you for all you do. It is much appreciated!
-