Конвенція назв для гілок/відокремлень

Наша конвенція забезпечує, щоби програмне забезпечення могло бути зібране нашим CI та його можна було легко протестувати іншими розробниками.

Файл README кожного репозиторію Git повинен містити інформацію про те, яка конвенція для гілок використовується та які є (будь-які) відхилення від норми.

Click-пакунки

Програмне забезпечення, яке розповсюджене виключно як click-пакунки (а не як DEB) використовує лише одну захищену гілку master. Окремі тимчасові відгалуження для розробки з довільними іменами також можна створювати та, коли настане час, об’єднувати їх у master. Ідеально було б для позначення та архівних етапів в історії розвитку використовувати теги Git або релізи GitHub.

Пакунки DEB

Щоб допомогти нам доставити наш код до Ubuntu Touch максимально без зусиль, наш CI автоматично, відповідно до назв гілок, вбудовує наші репозиторії Git у численні архіви APT, розміщені за адресою http://repo.ubports.com/.

В репозитаріях ми підтримуємо наступні гілки Git:

Гілки Git

Опис

Відповідні архіви APT

Назва

Дистрибутив-основа

main, ubports/latest

Являє собою останню розробку Ubuntu Touch. У цій гілці дозволені всі типи змін.

devel-<Ubuntu LTS> (напр. devel-noble)

Останній або майбутній випуск Ubuntu LTS.

devel-debian

Тестування Debian.

ubports/<старша версія>.x (напр. ubports/24.6.x)

Представляє код у певній старшій версії. Він відгалужується з гілки main перед головним випуском та стає частиною випусків цієї основної версії. У цій гілці допускаються лише виправлення помилок та неруйнівні зміни.

<старша версія>.x (напр. 24.6.x)

Ubuntu LTS на момент розгалуження.

ubports/focal

Особливий випадок ubports/<major version>.x, відгалужений після випуску Ubuntu Touch 20.04 OTA-4.

focal

Ubuntu 20.04 LTS.

ubports/focal_-_<ext>

Гілки, які використовують застарілу систему «розширення гілок» для перехресних змін. Більше не рекомендується використовувати.

focal_-_<ext>

Ubuntu 20.04 LTS.

особисте/<ім'я>/<користувача>, та будь-які інші гілки.

Усі інші гілки можуть бути використані для запитів на злиття або для інших причин. Ці гілки не збираються CI доки не буде запиту на злиття.

Н/Д доки не запитано злиття для згаданих гілок (див. нижче).

Щоб переконатися, що у гілці main не забуті жодні зміни, всі зміни повинні бути внесені до гілки main перед поверненням до основних гілок випуску. Виняток — це коли зміна більше не стосується гілки main через інші зміни у цій гілці.

Примітка

Якщо наступна версія розробки ще не доступна для тестування, а Вам потрібні внести зміни для встановлення та тестування, дозволяється тимчасово орієнтуватися на зміну до основної гілки, щоб отримати пакети, побудовані для цієї версії. Коли набір змін готовий до злиття, набір змін повинен бути перенаправлений на гілку main.

Архіви APT для запитів на злиття

На додачу до згаданих вище архівів ми також створюємо архіви APT для запитів на злиття (MRs), зроблених для наших репозиторіїв Git. Це нам дозволяє перевіряти результат збирання на справжніх пристроях, використовуючи ubports-qa до об’єднання коду. Для кожного MR (Merge Request = запиту на злиття), система CI створить код для усіх однакових призначень, як запит на злиття до цільової гілки та до них буде додано _-_PR_<назва репозиторію>_<номер MR> [1]. Наприклад:

  • Запит на злиття (MR) з номером 100 створений для гілки main репозиторію Git lomiri (в той час, як поточна версія Ubuntu LTS — noble) буде мати архіви APT з назвами devel-noble_-_PR_lomiri_100 та devel-debian_-_PR_lomiri_100.

  • Запит на злиття (MR) з номером 125 створений для гілки ubports/24.6.x репозиторію Git morph-browser зробить архів APT з назвою 24.6.x_-_PR_morph-browser_125.