Initial commit: VoIdeaAI - voice-first AI idea assistant
This commit is contained in:
@@ -0,0 +1,172 @@
|
||||
# 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 файла
|
||||
|
||||
```markdown
|
||||
# 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
|
||||
|
||||
1. **Мониторинг тегов**
|
||||
- При создании нового тега → запуск генерации
|
||||
|
||||
2. **Анализ коммитов**
|
||||
- Парсинг conventional commits
|
||||
- Группировка по типу
|
||||
|
||||
3. **Генерация файла**
|
||||
- Определение какой файл создать/обновить
|
||||
- Формирование записей
|
||||
|
||||
4. **Проверка**
|
||||
- Валидация формата
|
||||
- Сохранение в CHANGELOG/
|
||||
|
||||
---
|
||||
|
||||
## CI/CD Integration
|
||||
|
||||
### При push в main
|
||||
|
||||
```yaml
|
||||
# .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
|
||||
```
|
||||
|
||||
### При создании тега
|
||||
|
||||
```python
|
||||
# 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)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Ручная генерация
|
||||
|
||||
```bash
|
||||
# При необходимости
|
||||
python scripts/generate_changelog.py --tag 1.0.0 --from 0.9.0
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Автоматическая документация
|
||||
|
||||
После генерации:
|
||||
1. DocAgent обновляет PROJECT_GUIDE.md (ссылка на новую версию)
|
||||
2. SpecAgent обновляет project.json
|
||||
3. Уведомление в админ-панель
|
||||
|
||||
---
|
||||
|
||||
## TODO
|
||||
|
||||
- [ ] Создать scripts/generate_changelog.py
|
||||
- [ ] Настроить CI/CD workflow
|
||||
- [ ] Интегрировать со SpecAgent
|
||||
- [ ] Добавить тесты
|
||||
- [ ] Документировать процесс
|
||||
|
||||
---
|
||||
|
||||
*Создано: 2026-05-10*
|
||||
*Управляется SpecAgent*
|
||||
Reference in New Issue
Block a user