Convenció de l’anomenat de branques

Les nostres convencions d’anomenat de branques asseguren que el programari es pot compilar pel nostre CI i comprovat fàcilment per d’altres desenvolupadors.

Cada fitxer README d’un dipòsit GIT hauria d’especificar quina convenció d’anomenat de branques s’usa i possibles desviacions de la norma.

Paquets-click

El programari que es distribueix exclusivament com un paquet-click (i no també com un deb) sols usa una branca master que està protegida. Les branques temporals separades amb noms descriptius arbitraris es poden crear i fusionar al master quan arribi el moment. Per marcar i arxivar fites a la història de desenvolupament, s’hauria d’usar idealment etiquetes Git o Github.

Paquets-deb

Per ajudar-nos a lliurar el nostre codi a Ubuntu Touch el més sense esforç possible, el nostre CI construeix automàticament els nostres repositoris Git en una sèrie d’arxius APT allotjats a http://repo.ubports.com/, segons el nom de la branca.

Mantenim les següents sucursals a través dels repositoris de Git:

Branques del Git

Descripció

Arxius APT corresponents

Nom

Distro

main, ubports/latest

Representa l’últim desenvolupament d’Ubuntu Touch. En aquesta branca es permeten tot tipus de canvis.

devel-<Ubuntu LTS> (e.g. devel-noble)

Darrera o propera Ubuntu LTS.

devel-debian

Debian testing.

ubports/<versió principal>.x (p.ex. ubports/24.6.x)

Representa el codi en una versió major en particular. S’aparta de la branca main abans del llançament principal, i es convertirà en una part dels llançaments d’aquesta versió principal. En aquesta branca només es permeten correccions d’errors i canvis no trencadors.

<versió principal>.x (p.ex. 24.6.x)

Ubuntu LTS en el moment de la ramificació.

ubports/focal

Un cas especial de ubports/<versió principal>.x, que es ramifica després del llançament d’Ubuntu Touch 20.04 OTA-4.

focal

Ubuntu 20.04 LTS.

ubports/focal_-_<ext>

Branques que utilitzen el sistema obsolet d”«extensions de ramificació» per a canvis de components creuats. Ja no es recomana l’ús.

focal_-_<ext>

Ubuntu 20.04 LTS.

personal/<usuari>/<nom>, i qualsevol altra branca.

Totes les altres branques es poden utilitzar per proposar sol·licituds de fusió o per altres motius. Aquestes branques no són construïdes per la CI llevat que es proposin com a sol·licitud de fusió.

N/A, llevat que es proposi com a MR contra les branques esmentades (vegeu més avall).

Per assegurar que la branca main no perdi cap canvi, tots els canvis s’han de fer contra la branca main primer abans de tornar enrere a les branques d’alliberament principals. Una excepció és quan un canvi ja no és aplicable a la branca main a causa d’altres canvis en aquesta branca.

Nota

Si la propera versió de desenvolupament encara no està disponible per a proves, i necessiteu que el canvi estigui disponible per a instal·lar-lo per a proves, se us permetrà dirigir temporalment el conjunt de canvis a la branca de versió principal per a obtenir paquets construïts contra aquesta versió. Quan el conjunt de canvis estigui llest per a fusionar-se, el conjunt de canvis haurà de tornar a ser dirigit a la branca main .

Arxius APT per a sol·licituds de fusió

A més dels arxius esmentats anteriorment, també creem arxius APT per a MRs (sol·licituds de fusió) realitzats contra els nostres repositoris Git. Això ens permet provar el resultat de la construcció en dispositius reals utilitzant ubports-qa abans de fusionar el codi. Per a cada MR, l’IC construirà el codi contra tots els mateixos objectius que la branca de destinació de l’MR, i després els afegirà _-_PR_<nom de dipòsit>_<número MR> [1]. Per exemple:

  • Un MR numerat 100 fet contra la branca main del repositori Git lomiri (quan l’actual Ubuntu LTS és noble) tindrà arxius APT anomenats devel-noble_-_PR_lomiri_100 i devel-debian_-_PR_lomiri_100.

  • Un MR numerat 125 fet contra la branca ubports/24.6.x del repositori Git morph-browser tindrà un arxiu APT anomenat 24.6.x-PRmorph-browser125.