refactor(tools): remove platform arg from create-changelog — follow industry standard #63
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Контекст
Тулза
create-changelog(файл.opencode/tools/create-changelog.ts) принимает опциональный argplatform: ("windows" | "linux" | "macos")[]и вставляет строку**Платформы:** Windows[, Linux, macOS]в CHANGELOG после заголовка версии. Feature добавлена в коммите78e4290(2026-08-12) для детерминированной маркировки платформы в release notes.Исследование 4 топ-индустриальных проектов показало, что ни один не использует такой формат в release notes:
-Windows-x64-,-macOS-Apple.dmg)yt-dlp.exe,yt-dlp_linux)Mac-Universal.zip)Индустриальный стандарт:
Operating System :: Microsoft :: Windows :: Windows 10)### Изменено, текстом: «Минимальная версия Windows повышена до 11»), как yt-dlpТекущая реализация
**Платформы:**нарушает стандарт и дублирует информацию, которая должна жить в README/pyproject.Задача
Удалить
platformarg изcreate-changelog.ts:VALID_PLATFORMS,PLATFORM_NAMESконстантыplatform(строки ~113-136)platformsLabelлогику изbuildVersionBlock(строки 71-89) — строка**Платформы:**больше не вставляетсяargs.platform)Обновить тесты
tests/test_create_changelog_tool.py:platformв названии:test_platform_single_windows,test_platform_multi,test_platform_macos_formatting,test_platform_invalid_value,test_platform_omitted_no_line,test_platform_empty_array_no_lineplatformargОбновить
skills/release/SKILL.md(строки 40-58, 62-71, 77-82):platformargplatform: ["windows"]из примеров вызоваcreate-changelogOperating System :: Microsoft :: Windows :: Windows 10### Изменено, текстом: «Минимальная версия Windows повышена до 11»), как yt-dlpcreate-changelogtool: tool не имеетplatformarg — платформа не попадает в CHANGELOG автоматическиКонтракты
Что НЕ меняется
create-changelog(version,added,changed,fixed,removed) — без измененийbuildVersionBlockдля секций (Added/Changed/Fixed/Removed) — без изменений## [VERSION] - DATE,### Добавлено, bullets) — без измененийvX.Y.Z), validation записей (<=200 chars, Russian-only) — без измененийНовый контракт платформы
pyproject.tomlclassifiers + README### Изменено)release_notes.py(voice_assistant, video_uniq) — пассивный, передаёт что есть (без**Платформы:**строки = без неё в body релиза)Инварианты
create-changelogостаётся детерминированной: одинаковый вход → одинаковый CHANGELOGplatformarg не ломает существующие вызовы (arg был optional — omit уже валиден)pytest tests/test_create_changelog_tool.py— зелёный.opencode/tools/create-changelog.ts— зелёный (если применимо к TS в этом репо)Граничные случаи
**Платформы:**(voice_assistant v0.1.0, video_uniq) — не валидируются тулзой (тулза пишет новые секции, не редактирует старые). Ручная правка — отдельный issue в каждом репо.create-changelogсplatform: ["windows"]после удаления arg → ошибка валидации schema (arg не существует). Агенты, использующие старый формат, должны обновить вызовы. Документировать в SKILL.md migration note.Влияние на связанные компоненты
create-changelog.ts— основной файл измененийtests/test_create_changelog_tool.py— удаление 6 тестовskills/release/SKILL.md— обновление раздела платформы + примеровskills/repo-readme/SKILL.md— НЕ трогать (не упоминает платформу)tools/create-changelog.tsschema — arg удалён, но backward compat: omit уже валиден, явная передачаplatformтеперь ошибкаВне scope
release_notes.pyэкстрактора — не требуется (он пассивный)Критерии приемки
platformarg удалён изcreate-changelog.ts(schema, валидация, форматирование)VALID_PLATFORMS,PLATFORM_NAMESконстанты удаленыbuildVersionBlockне вставляет**Платформы:**строкуplatformудалены изtest_create_changelog_tool.pyskills/release/SKILL.md— раздел «Платформа (ОС) релиза» переписан под новый стандартcreate-changelogв SKILL.md — безplatformarg