Начиная с Drupal 8 в ядре адаптировали семантическое версионирование.
Начиная с 1 апреля 2020 года — модули и темы оформления получили поддержку семантического версионирования на drupal.org.
¶Ветки будущих релизов
Вы можете создавать какие угодно ветки с любым именованием для разработки будущего функционала или с другими целями. Здесь нет никаких ограничений.
Если вы назовёте ветку с номером ишьюса в качестве префикса, то ветка будет ассоциироваться с данным ишьюсом: 1234-issue-name-or-other-name
.
¶Тэги релизов и ветки для их разработки
¶Ветки для разработки
Ветки для разработки должны именоваться по формату {major}.x
, либо {major}.{minor}.x
, данные версии автоматически получат суффикс -dev
.
Таким образом:
- Ветка
1.x
будет создавать релизы1.x-dev
. - Ветка
2.1.x
будет создавать релизы2.1.x-dev
.
¶Релиз тэги
Когда вы готовы сделать релиз и зафиксировать свою работу в виде конкретной версии, вы должны создать тэг. Тэги в Drupal должен соответствовать следующему формату {major}.{minor}.{patch}
и опциональным префиксом {major}.{minor}.{patch}-(alpha|beta|rc){N}
(1.2.3-alpha4).
Эти требования обязательны для создания релизов на drupal.org, остальные именования будут проигнорированы. Также, обратите внимание, в качестве пред-релизных версий можно использовать только alpha
, beta
и rc
с последующим номером без точки в качестве разделителя.
¶Значения пред-релизных версий
В качестве пред-релизных версий можно использовать только alpha
, beta
и rc
. В Drupal сообществе они имеют следующие трактовки:
-
alpha
: Основная часть функционала готова, но имеются серьезные проблемы, включая, уязвимости безопасности. Данный проект мог даже не тестироваться, так что велика вероятность наличия множества неизвестных проблем. У данного релиза уже естьREADME.txt
илиREADME.md
в котором описан и документируется проект, включая его API (если оно имеется). API и схема базы данных может быть нестабильна, но их изменения описываются в заметках к релизу, и, при возможности, описываютсяhook_update_N()
для сохранения данных, но никаких других путей для обновления. Не предназначено для использования на рабочих проектах. Целевая аудитория данных релизов — разработчики, кто хочет принять участие в разработке, отладке и тестировании проекта. -
beta
: Все проблемы, которые могут привести к потере данных, а также, проблемы с безопасностью, должны быть решены. Если модуль предоставляет API, оно считается «замороженным» (нельзя изменять до следующего мажорного релиза). Если это имеет место быть, должен быть путь для обновления и предоставлен слой обратной совместимости. Вся документация должна быть актуальной. Целевая аудитория данных релизов — разработчик, желающие принять участие в тестирование, отладке и разработке проекта, а также разработчики, которые используют API проекта для создания своих личных. Не рекомендуется использовать на рабочих сайтах, но допускается, если человек, включающий данный модуль, хорошо знает проект и сможет ликвидировать все возникшие проблемы. -
rc
(release candidate): Кандитат в релизы должен создаваться только если все обнаруженные критически ошибки были исправлены и очередь ишьюсов не имеет нерешенных проблем. Данный тег должен использоваться только тогда, когда разработчик уверен, что данный релиз может быть использован на рабочих сайтах. В Drupal сообществе нет практики, как долго проект может находиться в данном состоянии прежде чем будет создан стабильный релиз, но рекомендуется, продержать на данной версии хотя бы один месяц со статусом «Нужны отзывы». Если в этот период найдена новая проблема, она должна быть исправлена, а также необходимо создать новый кандидат в релизы и желательно повторить ожидание в месяц.
¶Переход с 8.x-* именования на семантическое
Начиная с Drupal 8, проекты могут быть совместимы сразу с несколькими ядрами Drupal. Таким образом, релизы 8.x-*
и семантическое именование используются схожие подходы и вводят путаницу. Например, релиз 8.x-1.0
равен 1.0.0
.
Данная возможность доступна всем, но использовать данное именование можно только для новых мажорных релизов. Например, если у вас уже есть модуль 9.x-1.1
, то вам нужно создавать новый мажорный релиз 2.0.0
, чтобы данные версии начали распознаваться. Соответственно, если у вашего модуля актуальная версия 9.x-3.0
, то семантическая версия уже начнётся с 4.0.0
.
¶Смотрите также
¶Ссылки
- Release naming conventions (англ.), drupal.org