Förgrenings-namngivnings konvention¶
Vår förgrenings-namngivnings konvention säkerställer att mjukvaran kan byggas av våran CI och enkelt testas av andra utvecklare.
Varje Git-förråds README-fil bör ange vilken förgreningsnamnskonvention som används och eventuella avvikelser från normen.
Klick-paket¶
Programvara som uteslutande distribueras som ett klickpaket (och inte som en DEB) använder bara en master-gren som är skyddad. Separata tillfälliga utvecklingsgrenar med godtyckliga beskrivande namn kan skapas och slås samman till master när tiden kommer. Helst skall Git-taggar eller GitHub-releaser användas för att markera och arkivera milstolpar i utvecklingshistorien.
DEB-paket¶
För att hjälpa oss att leverera vår kod till Ubuntu Touch så enkelt som möjligt, bygger vår CI automatiskt våra Git-förråd i ett antal APT-arkiv som hostas på http://repo.ubports.com/, enligt förgreningsnamnet.
Vi underhåller följande förgreningar över Git-förråd:
Git-grenar |
Beskrivning |
Korresponderande APT-arkiv |
|
|---|---|---|---|
Namn |
Bas-distro |
||
|
Representerar den senaste utvecklingen av Ubuntu Touch. Alla typer av förändringar är tillåtna i denna gren. |
|
Senaste eller kommande Ubuntu LTS. |
|
Debian testing. |
||
|
Representerar koden i en viss större version. Det grenar av |
|
Ubuntu LTS vid tiden för förgrening. |
|
A special case of
|
|
Ubuntu 20.04 LTS. |
|
Branches which use the deprecated ”branch extensions” system for cross-components changes. No longer recommended for usage. |
|
Ubuntu 20.04 LTS. |
|
All other branches may be used for proposing merge requests or for other reasons. Theses branches are not built by the CI unless proposed as a merge request. |
N/A, unless proposed as an MR against aforementioned branches (see below). |
|
To ensure the main branch doesn’t miss any changes, all changes must be made against main branch first before backporting to the major release branches. An exception is when a change is not applicable to the main branch anymore due to other changes in that branch.
Observera
If the next development version is not available for testing yet, and you need the change to be made available for install for testing, it’s allowed to temporarily target the changeset to the major version branch to get packages built against that version. When the changeset is ready for merge, the changeset must be re-targeted to the main branch.
APT archives for Merge Requests¶
In addition to archives mentioned above, we also create APT archives for MRs made against our Git repositories. This allows us to test the result of the build on real devices using ubports-qa before merging the code. For each MR, the CI will build the code against all the same targets as the MR’s target branch, and then will append _-_PR_<repository name>_<MR number> to them [1]. For example:
An MR numbered 100 made against the
mainbranch of Git repositorylomiri(when the current Ubuntu LTS isnoble) will have APT archives nameddevel-noble_-_PR_lomiri_100anddevel-debian_-_PR_lomiri_100.An MR numbered 125 made against the
ubports/24.6.xbranch of Git repositorymorph-browserwill have an APT archive named24.6.x_-_PR_morph-browser_125.