3.5 KiB
3.5 KiB
CHANGELOG Generation - VoIdea
Дата: 2026-05-10 Статус: Backlog
Обзор
Автоматическая генерация CHANGELOG на основе коммитов и conventional commits.
Структура файлов
CHANGELOG/
├── v1.0.md # При смене MAJOR (1.0.0 -> 1.1.0 -> ...)
├── v1.1.md # При смене MINOR
├── v2.0.md # При смене MAJOR
└── ...
Правила
- MAJOR (X) → новый файл vX.0.md
- MINOR (Y) → новый файл vX.Y.md
- PATCH (Z) → добавляется в конец существующего файла
Формат CHANGELOG файла
# Changelog v1.0
## [1.0.5] - 2026-05-10
### Added
- Feature X (commit: abc123)
### Fixed
- Bug Y (commit: def456)
## [1.0.4] - 2026-05-09
### Added
- ...
## [1.0.0] - 2026-05-01
### Added
- Initial release
Conventional Commits
| Тип | Влияние |
|---|---|
feat: |
Added (MINOR) |
fix: |
Fixed (PATCH) |
docs: |
Changed (no version) |
refactor: |
Changed (no version) |
test: |
Changed (no version) |
chore: |
Changed (no version) |
BREAKING: |
Major (MAJOR) |
Генерация
SpecAgent responsibilities
-
Мониторинг тегов
- При создании нового тега → запуск генерации
-
Анализ коммитов
- Парсинг conventional commits
- Группировка по типу
-
Генерация файла
- Определение какой файл создать/обновить
- Формирование записей
-
Проверка
- Валидация формата
- Сохранение в CHANGELOG/
CI/CD Integration
При push в main
# .github/workflows/changelog.yml
name: Changelog
on:
push:
branches: [main]
jobs:
generate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Generate Changelog
run: python scripts/generate_changelog.py
- name: Commit
run: |
git add CHANGELOG/
git commit -m "docs: update changelog"
git push
При создании тега
# scripts/generate_changelog.py
import git
from pathlib import Path
def generate_changelog(tag: str):
commits = get_commits_since_last_tag()
changes = {
'added': [],
'fixed': [],
'changed': []
}
for commit in commits:
type, message = parse_conventional_commit(commit.message)
changes[type].append(f"- {message} ({commit.hash[:7]})")
update_changelog_file(tag, changes)
Ручная генерация
# При необходимости
python scripts/generate_changelog.py --tag 1.0.0 --from 0.9.0
Автоматическая документация
После генерации:
- DocAgent обновляет PROJECT_GUIDE.md (ссылка на новую версию)
- SpecAgent обновляет project.json
- Уведомление в админ-панель
TODO
- Создать scripts/generate_changelog.py
- Настроить CI/CD workflow
- Интегрировать со SpecAgent
- Добавить тесты
- Документировать процесс
Создано: 2026-05-10 Управляется SpecAgent