Skip to content

Уровни изменений

Правила процесса, источник — конституция репозитория контракта (принцип V). Это не часть слепка: слепок фиксирует форму контракта, а уровни описывают, как её менять.

УровеньЧто разрешеноВерсия контрактаЧто требует CI
Добавлениенеобязательные аргументы входа с умолчанием, равным старому поведению; необязательные поля выходане меняетсяверсия пакета поднята, запись в CHANGELOG
Механический разломпереименование, перекладка структуры при том же смысле+1правило перевода между соседними версиями
Смысловой разломновый инструмент с новым именем, старый устареваетне меняетсядата заката у устаревшего инструмента

Версия пакета (семантическая) и версия контракта (целое число в _meta) — разные величины. Версия пакета растёт при любом изменении слепка; версия контракта — только при механическом разломе.

Как менять контракт

  1. Поправить авторскую схему в src/schemas/.
  2. npm run check:lock — перегенерировать слепок и документацию.
  3. Поднять версию пакета в package.json.
  4. Добавить запись в CHANGELOG.md с уровнем изменения:
markdown
## 0.2.0 — 2026-10-01 [механический разлом]

- norm_sales_funnel: поле `quarter` переименовано в `period`; правило перевода 1 → 2.
  1. Для механического разлома — добавить правило в translations и поднять версию контракта ровно на одну ступень. Для смыслового разлома — проставить дату заката у устаревшего инструмента.
  2. npm run check:release — убедиться, что гейт проходит. То же самое сделает CI.