Skip to content

feat(release): assemble notes from independent change fragments - #41

Merged
adinvadim merged 1 commit into
mainfrom
chore/release-note-fragments-20261019
Oct 19, 2026
Merged

adinvadim merged 1 commit into
mainfrom
chore/release-note-fragments-20261019

Conversation

@adinvadim

@adinvadim adinvadim commented Oct 19, 2026 •

Copy link
Copy Markdown
Owner

Проблема и причина

Независимые изменения записывались в общий CHANGELOG.md, создавая конфликты между ветками. При этом workflow тегового релиза требует готовый версионный раздел changelog.

Изменение

Каждое пользовательское изменение получает отдельный .changes/<id>.md. Команда make release-notes VERSION=X.Y.Z собирает закоммиченные фрагменты в датированный раздел и сохраняет receipt с точным набором записей. Подготовку нужно закоммитить перед обычным тегом vX.Y.Z; публикация и извлечение notes из тега остаются прежними.

feature → уникальный fragment → commit
release → make release-notes → CHANGELOG + receipt + очистка → commit → обычный tag

Все 18 существующих pending-записей перенесены дословно и в прежнем порядке. Новый сборщик использует Go из существующего toolchain. Он читает зафиксированный HEAD, сохраняет новые/изменённые файлы, проверяет завершённые receipts при повторе и атомарно записывает результаты. Recovery-копии остаются локально в игнорируемой .changes/.recovery/.

Проверка

  • make check — exit 0: gofmt, go vet ./..., go test ./..., go test -race ./..., read-only проверка фрагментов.
  • Девять real-Git тестов: frozen commit, параллельные записи, legacy/history, повтор и прерывание подготовки, незавершённый receipt другого релиза, native shell extractor, сохранение inode открытого writer.
  • Сравнение миграции: все 18 исходных bullets совпадают дословно.
  • Autoreview --max-priority P3 полного кандидата относительно 817e254fa26f0b9d04db6c5aa80678a49758942c — scoped-clean; принятые замечания исправлены и проверены отдельно.

UI не меняется. Настоящие теги, GitHub releases и публикации в проверках не создавались. Merge не запускает публикацию: существующий release workflow работает по тегам.

Merge safety

Дверь: двусторонняя до следующей настоящей подготовки релиза.
Радиус: release.

Вердикт: safe to merge — GitHub: MERGEABLE, база не изменилась; полный make check и итоговое P3-ревью прошли.

@adinvadim
adinvadim merged commit e30dc8c into main Oct 19, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant