Skip to content

Commit a66bafe

Browse files
committed
Скилл для создания release-notes
1 parent 94f66ea commit a66bafe

1 file changed

Lines changed: 49 additions & 0 deletions

File tree

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
---
2+
name: release-notes
3+
description: This skill creates release notes for new release by reading git commit log. Use it only when explicitly specified
4+
---
5+
6+
# Release notes
7+
8+
Когда нужно выпустить новый релиз, в репозитории нужно изменить файл install/release-notes.md (путь относительно корня репозитория)
9+
10+
Для того, чтобы собрать данные, нужно использовать git log и вызвать команду
11+
12+
```bat
13+
set LC_ALL=C.UTF-8
14+
set TAGNAME=%1
15+
16+
git --no-pager log --pretty="* %%s" --no-merges %TAGNAME%..HEAD
17+
```
18+
19+
где переменная TAGNAME должна быть git-тэгом предыдущего релиза. Результатом выполнения команды будут тексты коммитов, между TAGNAME и текущим состоянием ветки.
20+
21+
Ты должен запросить у пользователя тег предыдущей версии, либо пользователь тебе сообщит его в промпте сразу.
22+
23+
Далее, ты должен прочитать тексты коммитов, в них могут встречаться ссылки на github issues в виде указания номера задачи через решетку, например вот так:
24+
25+
`fixes #1234 bla-bla-bla`
26+
27+
Текст коммита также может не содержать упоминания задачи, или быть вовсе техническим/промежуточным коммитом, который в release notes попадать не должен, т.к. не описывает конечное изменение.
28+
29+
Твоя задача и цель - взять тексты коммитов и вывести из них изменения в версии, которые будут включены в файл install/release-notes.md.
30+
31+
Те коммиты, которые содержат ссылки на github - пойти на github в соответствующую задачу в репозитории https://github.com/EvilBeaver/OneScript/issues/<НомерЗадачи> и прочитать ее суть.
32+
33+
Те коммиты, которые ссылок на гитхаб не содержат, ты должен просто прочитать и решить - стоит их включать в release-notes или нет, содержат ли они описание конкретной сделанной функциональности, или это промежуточный, технический и не требующий публикации коммит.
34+
35+
Далее, ты должен сделать итоговый дайджест того, что было сделано в версии и записать это в файл install/release-notes.md. Каждая задача это отдельный bullet-point, причем ссылки на github должны быть сделаны в markdown реальными кликабельными ссылками.
36+
37+
## Формат файла release-notes
38+
39+
В начале записывается заголовок "Версия <НомерВерсии>. Какая сейчас конкретно версия ты должен посмотреть в файле Jenkinsfile в параметре VersionPrefix и взять его.
40+
41+
Далее идет перечень сделанных задач, как описано выше.
42+
Задачи разбиваются на две группы: исправление ошибок и новые возможности. Соответственно в release notes добавляются два раздела уровня "заголовок 2" для "Новые возможности" и "Исправление ошибок". Если задач по какой-то категории нет (например, были только исправления, а новых фич не было), то соответствующий раздел не добавляется в файл совсем.
43+
44+
## Instructions
45+
46+
1. Определи текущую выпускаемую версию, прочитав файл Jenkinsfile и его параметр VersionPrefix в самом начале
47+
2. Определи тег предыдущей версии. Для этого запроси его у пользователя, если тег не был сразу задан в промпте
48+
3. Выполни команду gitlog, как показано выше, для получения истории коммитов между версиями
49+
4. Составь дайджест изменений и запиши их в install/release-notes.md

0 commit comments

Comments
 (0)