ci(release): вести версию и тег через release-please - #19
Merged
Conversation
При squash-мерже заголовок PR становится сообщением коммита, а по нему release-please определяет разряд версии. Отдельные коммиты ветки намеренно не проверяются, чтобы не мешать работе внутри PR.
Публикации в реестр здесь нет: packagist забирает версию вебхуком по тегу, auto-update у пакета включён. Стартовая версия взята от реестра, а не от манифеста, где поля version нет вовсе. Первый релиз мажорный: в main уже влито поднятие планки с php >=7.4 до >=8.5, для потребителей это ломающее изменение. Release-As: 2.0.0
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Composer-поток кампании
docs/components-modernization.md: версию и тег ведёт release-please, дальше packagist забирает релиз вебхуком.Шага публикации в реестр нет намеренно. Проверено, что у пакета на packagist включён auto-update, то есть тега достаточно. Это отличает composer от npm (нужен токен) и от pypi (нужен trusted publisher).
Два коммита:
ci(pr-title)— линт заголовка PR. При squash-мерже заголовок становится сообщением коммита, а по нему release-please определяет разряд версии.ci(release)— манифест-режим со строкой"include-component-in-tag": false. Без неё release-please ищет тег вида<пакет>-v1.2.3, своего не находит и пересобирает версию по всей истории репозитория. Мина уже записана по python-пачке.Стартовая версия
1.1.0взята от реестра, а не от манифеста: поляversionвcomposer.jsonнет вовсе, packagist ведёт версию тегами.Первый релиз мажорный. В main уже влито поднятие планки с
php >=7.4до>=8.5, для потребителей это ломающее изменение, а патч-релиз сломал бы их молча. Версия форсируется футеромRelease-As: 2.0.0в теле второго коммита.Сухой прогон подтверждает: тег
v1.1.0найден, PR будет на 2.0.0,composer.jsonне меняется (release-please правит полеversion, только если оно уже есть).