Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

KIKIMR-22202 Changes in PR template and docs for contributors with requirements to PR description #14031

Merged
merged 10 commits into from
Feb 14, 2025
6 changes: 3 additions & 3 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
### Changelog entry <!-- a user-readable short description of changes introduced in this PR -->
### Changelog entry <!-- a user-readable short description of the changes that goes to CHANGELOG.md and Release Notes -->

...

### Changelog category <!-- remove all except one -->

* New feature
* Experimental feature
* Improvement
* Performance improvement
* User Interface
blinkov marked this conversation as resolved.
Show resolved Hide resolved
* Bugfix
* Backward incompatible change
* Documentation (changelog entry is not required)
* Not for changelog (changelog entry is not required)

### Additional information
### Description <!-- (optional) description for those who read this PR -->

...
87 changes: 87 additions & 0 deletions ydb/docs/ru/core/contributor/suggest-change.md
Original file line number Diff line number Diff line change
Expand Up @@ -239,6 +239,93 @@ git push

{% endlist %}

### Заполните описание к Pull Request'у {#create_pr_desc}

При создании Pull Request'а описание будет заполнено текстом из шаблона, который нужно отредактировать:

1. **Changelog Entry.** В этот блок следует добавить описание изменения для конечных пользователей системы (см. [требования](#changelog_entry_req)). Содержимое этого блока будет опубликовано в [списке изменений](../changelog-server.md), если PR будет замержен.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Я бы поменял местами Changelog Category и Changelog Entry. Сначала выбираешь категорию, потом уже пишешь текст. Если "Not for Changelog" то я бы написал, что Changelog Entry можно пропустить, так?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Поправила

2. **Changelog Category.** В этом блоке нужно оставить одну категорию из списка, которой соответствует изменение (см. [как выбрать категорию](#choose_category)). Есть категории, для которых сообщения из Changelog Entry не будут опубликованы в списке изменений. Остальные категории определяют раздел списка изменений, в который попадет сообщение.
3. **Description.** В этот блок можно добавить ссылку на задачу и любую дополнительную информацию, которую вы считаете полезной для ревью. Содержимое этого блока не попадет в список изменений.
galnat marked this conversation as resolved.
Show resolved Hide resolved


#### Требования к Changelog Entry {#changelog_entry_req}

Сообщение в Changelog Entry должно отвечать следующим требованиям:

- должно быть написано на английском языке,
- содержать не менее 20 символов, если [выбранная категория](#choose_category) имеет раздел в списке изменений,
- содержать термины, которые используются в [глоссарии](../concepts/glossary.md),
- описывать, что в работе системы изменилось для конечного пользователя,
- отвечать дополнительным требованиям, которые определяются выбранной категорией.
galnat marked this conversation as resolved.
Show resolved Hide resolved


#### Как выбрать Changelog Category {#choose_category}

#|
|| Категория | Раздел в списке изменений | Описание | Требования к сообщению ||
|| Feature
| Функциональность
| Новая функциональность или изменения существующей функциональности. Иногда выпускается под флагом для сохранения совместимости.

Если вы делаете больше одного PR'а в рамках задачи, то эту категорию нужно выбрать только для финального коммита, для промежуточных коммитов нужно выбирать Not for changelog.
galnat marked this conversation as resolved.
Show resolved Hide resolved
| Должно включать:

* ссылку на документацию (если описание больше пары предложений),
* описание, как включить функциональность, если она релизится под флагом (если описание больше одного предложения, тоже стоит вынести его в документацию).
galnat marked this conversation as resolved.
Show resolved Hide resolved
||
|| Experimental feature
| Функциональность с пометкой экспериментально
| Новая функциональность или изменения существующей функциональности. Всегда выпускается под флагом для сохранения совместимости.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Не столько для сохранения совместимости, а в первую очередь чтобы пользователь совершил осознанное действие «я включаю экспериментальную функциональность и понимаю связанные с этим риски» и тем самым снизить риск, что кто-то случайно завяжет production процессы на совсем не готовую к тому функциональность. Я б ещё добавил, что в имя такого флага стоит включать слово experimental.


Отличие от предыдущей категории в том, что даже после тестирования мы не сможем дать конечному пользователю гарантий, что система будет работать корректно с этим изменением.
galnat marked this conversation as resolved.
Show resolved Hide resolved
| Должно включать:

* ссылку на документацию (если описание больше пары предложений),
* описание, как включить функциональность, если она релизится под флагом (если описание больше одного предложения, тоже стоит вынести его в документацию).
galnat marked this conversation as resolved.
Show resolved Hide resolved
||
|| Performance
| Производительность
| Изменения в производительности системы - ускорения, оптимизации, улучшения, которые привели к измеряемым изменения в производительности.
| Должно отвечать на вопросы производительность какой части системы изменилась и насколько.
galnat marked this conversation as resolved.
Show resolved Hide resolved
||
|| Bugfix
| Исправления ошибок
| Исправления ошибок, с которыми пользователь сталкивался или мог столкнуться в предыдущих релизных версиях.
| Должно содержать:

* ссылку на задачу в GitHub,
* при каких условиях пользователь мог столкнуться с проблемой,
* как проблема проявлялась,
* как была исправлена (необязательно, если логика работы системы принципиально не изменилась).
galnat marked this conversation as resolved.
Show resolved Hide resolved
||
|| User Interface
| YDB UI
| Любые изменения в YDB UI
galnat marked this conversation as resolved.
Show resolved Hide resolved
blinkov marked this conversation as resolved.
Show resolved Hide resolved
|
||
|| Backward incompatible changes
| Изменения с потерей обратной совместимости
| Изменения с потерей обратной совместимости с предыдущими релизными версиями.
galnat marked this conversation as resolved.
Show resolved Hide resolved
|
||
|| Documentation
| -
| Изменения в документации.
| Не будет опубликовано в истории изменений. Сообщение заполнять не нужно.
||
|| Not for Changelog
| -
| Изменения, которые не видны конечному пользователю - рефакторинг кода, тесты, CI/CD, изменения CHANGELOG.md, исправления ошибок в коде новой функциональности (которая не попала в предыдущие релизные версии).
| Не будет опубликовано в истории изменений. Сообщение заполнять не нужно.
galnat marked this conversation as resolved.
Show resolved Hide resolved
||
|#

{% note info %}

Важно выбрать только одну категорию, поэтому не рекомендуется включать в один PR изменения из разных категорий, например, новую функциональность и исправление ошибки. Однако, если так случилось, следует выбрать категорию более важного для пользователя изменения, а в блок Changelog Entry добавить описание всех изменений.
galnat marked this conversation as resolved.
Show resolved Hide resolved

{% endnote %}

### Предварительные проверки {#precommit_checks}

Перед мержем изменений выполняются прекоммитные проверки Pull Request'а.
Expand Down