Соглашение об именовании релизов

Начиная с Drupal 8 в ядре адаптировали семантическое версионирование.

Начиная с 1 апреля 2020 года — модули и темы оформления получили поддержку семантического версионирования на drupal.org.

Ветки будущих релизов

Вы можете создавать какие угодно ветки с любым именованием для разработки будущего функционала или с другими целями. Здесь нет никаких ограничений.

Если вы назовёте ветку с номером ишьюса в качестве префикса, то ветка будет ассоциироваться в данным ишьюсом: 1234-issue-name-or-other-name.

Заметка

Ветка master должна избегаться, для разработки полноценных версий используйте соответствующее именование 1.x или 1.0.x. Ветка master игнорируется drupal.org, и она никак не может быть задействована.

Тэги релизов и ветки для их разработки

Ветки для разработки

Ветки для разработки должны именоваться по формату {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 с последующим номером без точки в качестве разделителя.

Заметка

Обратите внимание, что вы можете именовать ветки для разработки как 1.x, так и 1.2.x, но для создания релиза, вы должны указывать все три версии, включая патч версию.

Значения пред-релизных версий

В качестве пред-релизных версий можно использовать только 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.

Заметка

Если вы сделаете новый мажорный релиз с семантическим наименованием, например 2.0.0, то вы уже не сможете создавать релизы для проекта со старым именованием 8.x-2.0 и 8.x-3.0.

Перевод проекта на семантическое версионирование — безвозвратный.

Предупреждение

Для новых релизов Drupal 9 запрещено использовать старый формат версионирования 9.x-*. Таким образом, все модули и темы с новых мажорных релизов предназначенные для Drupal 9 обязаны использовать семантическое версионирование. Так как старое именование в Drupal 9 полностью лишено смысла.

Смотрите также

Ссылки

💝 Помогите нам сделать документацию лучше!

Вся документация Druki с отрытым исходным кодом. Нашли ошибку или неточность? Создайте pull request.

Редактировать текущий документ Обсудить улучшение

Или узнайте как контрибутить.

🤔 По-прежнему нужна помощь?

Не нашли ответа на свой вопрос? Попросите помощи у сообщества!

Задайте вопрос на GitHub Смотрите другие ресурсы сообщества