Описание (RU)
Цель
Выпустить 2.1.0-beta.6 с opt-in кэшем генерации и инкрементальной записью файлов для ускорения повторных прогонов локально и в CI.
Объём работ
- Реализовать управление кэшем генерации:
- CLI:
--cache, --cachePath, --cacheStrategy, --cacheDebug
- конфиг:
cache, cachePath, cacheStrategy, cacheDebug
- Добавить
GenerationCache с persisted cache-entries (fingerprint + список сгенерированных файлов).
- Добавить
writeFileIfChanged — запись только при изменении содержимого.
- Переработать очистку output:
- убрать полный wipe перед генерацией каждого item;
- удалять stale-файлы после генерации на основе expected output set.
- Поддержать стратегии кэша:
entity — пропуск неизменённых items при совпадении fingerprint;
content — полная генерация, но без перезаписи неизменённых файлов.
- Выводить статистику записи (
written, unchanged) и групповое предупреждение при общем output без кэша.
- Исправить
validateAndMigrateConfigData для legacy array-конфигов (strip undefined после convertArrayToObject).
Документация
- Обновить
CHANGELOG.md / CHANGELOG.RU.md (версия 2.1.0-beta.6, дата 2026-05-23).
- Обновить
README.md / README.rus.md.
- Добавить раздел в
MIGRATION.md / MIGRATION.RU.md про кэш генерации.
- Рекомендовать добавлять
.openapi-codegen-cache.json в .gitignore.
Критерии приёмки
Description (EN)
Goal
Ship 2.1.0-beta.6 with an opt-in generation cache and content-aware file writes to speed up repeat runs in local and CI workflows.
Scope
- Implement generation cache controls:
- CLI:
--cache, --cachePath, --cacheStrategy, --cacheDebug
- config:
cache, cachePath, cacheStrategy, cacheDebug
- Add
GenerationCache with persisted entries (fingerprint + generated files list).
- Add
writeFileIfChanged to skip rewriting unchanged files.
- Redesign output cleanup:
- remove full directory wipe before each item;
- remove stale files after generation based on the expected output set.
- Support cache strategies:
entity — skip unchanged items when fingerprint matches;
content — always generate, but skip unchanged writes.
- Log write statistics (
written, unchanged) and emit a grouped warning when multiple items share one output with cache disabled.
- Fix
validateAndMigrateConfigData for legacy array-format configs (strip undefined after convertArrayToObject).
Documentation
- Update
CHANGELOG.md / CHANGELOG.RU.md (version 2.1.0-beta.6, date 2026-05-23).
- Update
README.md / README.rus.md.
- Add a generation cache subsection to
MIGRATION.md / MIGRATION.RU.md.
- Recommend adding
.openapi-codegen-cache.json to .gitignore.
Acceptance criteria
Описание (RU)
Цель
Выпустить 2.1.0-beta.6 с opt-in кэшем генерации и инкрементальной записью файлов для ускорения повторных прогонов локально и в CI.
Объём работ
--cache,--cachePath,--cacheStrategy,--cacheDebugcache,cachePath,cacheStrategy,cacheDebugGenerationCacheс persisted cache-entries (fingerprint + список сгенерированных файлов).writeFileIfChanged— запись только при изменении содержимого.entity— пропуск неизменённых items при совпадении fingerprint;content— полная генерация, но без перезаписи неизменённых файлов.written,unchanged) и групповое предупреждение при общем output без кэша.validateAndMigrateConfigDataдля legacy array-конфигов (stripundefinedпослеconvertArrayToObject).Документация
CHANGELOG.md/CHANGELOG.RU.md(версия 2.1.0-beta.6, дата 2026-05-23).README.md/README.rus.md.MIGRATION.md/MIGRATION.RU.mdпро кэш генерации..openapi-codegen-cache.jsonв.gitignore.Критерии приёмки
--cache --cacheStrategy entityне перезаписывает неизменённые файлы.test/cacheGeneration.test.ts.Description (EN)
Goal
Ship 2.1.0-beta.6 with an opt-in generation cache and content-aware file writes to speed up repeat runs in local and CI workflows.
Scope
--cache,--cachePath,--cacheStrategy,--cacheDebugcache,cachePath,cacheStrategy,cacheDebugGenerationCachewith persisted entries (fingerprint + generated files list).writeFileIfChangedto skip rewriting unchanged files.entity— skip unchanged items when fingerprint matches;content— always generate, but skip unchanged writes.written,unchanged) and emit a grouped warning when multiple items share one output with cache disabled.validateAndMigrateConfigDatafor legacy array-format configs (stripundefinedafterconvertArrayToObject).Documentation
CHANGELOG.md/CHANGELOG.RU.md(version 2.1.0-beta.6, date 2026-05-23).README.md/README.rus.md.MIGRATION.md/MIGRATION.RU.md..openapi-codegen-cache.jsonto.gitignore.Acceptance criteria
--cache --cacheStrategy entitydoes not rewrite unchanged files.test/cacheGeneration.test.ts.