Соглашение об именовании веток разработки¶
Наши соглашения о названиях веток разработки гарантируют, что программное обеспечение создается по технологии непрерывной интеграции (CI) и может быть легко протестировано другими разработчиками.
В файле README каждого репозитория Git должно быть указано, какое соглашение об именах ветвей используется и возможные отклонения от него.
Click-пакеты¶
Программное обеспечение, которое распространяется исключительно в виде click-пакета (а не как deb), использует только одну защищенную ветку master. Отдельные временные ветки разработки с произвольными названиями со временем могут быть созданы и объединены в master. Для маркировки и архивирования этапов истории разработки в идеале следует использовать теги Git или релизы GitHub.
Deb-пакеты¶
Чтобы помочь нам максимально упростить доставку нашего кода в Ubuntu Touch, наш CI автоматически создает наши репозитории Git в ряде архивов APT, размещенных по адресу http://repo.ubports.com/, в соответствии с именем ветки.
В репозиториях Git мы поддерживаем следующие ветки:
Ветки Git |
Описание |
Соответствующие APT-архивы |
|
|---|---|---|---|
Имя |
Базовый дистрибутив |
||
|
Здесь находится самая последняя версия Ubuntu Touch. В этой ветке допускаются любые изменения. |
|
Последняя или предстоящая версия Ubuntu LTS. |
|
Ветка Debian testing. |
||
|
Здесь содержится код конкретной мажорной версии. Эта ветка отделяется от ветки |
|
Ubuntu LTS на момент создания ветки. |
|
Отдельная ветвь |
|
Ubuntu 20.04 LTS. |
|
Ветви, использующие устаревшую систему «расширений ветвей» (branch extensions) для внесения изменений, затрагивающих несколько компонентов. Использование этой системы больше не рекомендуется. |
|
Ubuntu 20.04 LTS. |
|
Все остальные ветки могут использоваться для создания запросов merge requests или в иных целях. Система CI не выполняет сборку этих веток, если они не оформлены как запрос merge request. |
Недоступно, за исключением случаев, когда это предлагается в виде MR (запроса merge request) для вышеупомянутых веток (см. ниже). |
|
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.
Примечание
Если следующая версия для разработки еще не готова к тестированию, а вам необходимо сделать изменения доступными для установки и проверки, допускается временно направить набор изменений (changeset) в ветку мажорной версии, чтобы собрать пакеты на ее основе. Когда набор изменений будет готов к сборке., его необходимо перенаправить в ветку main.
APT-архивы для запросов Merge Requests¶
Помимо упомянутых выше архивов, мы также создаем APT-архивы для запросов Merge Requests (MR) в репозиториях Git. Это позволяет тестировать результаты сборки на реальных устройствах с помощью ubports-qa перед имплементацией кода. Для каждого MR система CI выполняет сборку для тех же целевых платформ, что и для целевой ветки этого MR, а затем добавляет к ним суффикс _-_PR_<имя репозитория>_<номер MR> [1]. Например:
Для MR с номером 100, созданного для ветки
mainGit-репозиторияlomiri(в то время как текущим релизом Ubuntu LTS являетсяnoble), будут созданы APT-архивы с именамиdevel-noble_-_PR_lomiri_100иdevel-debian_-_PR_lomiri_100.Для MR с номером 125, созданного для ветки
ubports/24.6.xGit-репозиторияubports/24.6.x, будет создан APT-архив с именем`24.6.x_-_PR_morph-browser_125.