NODEDC_DESIGN_GUIDELINE/docs/GOVERNANCE.md

57 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Правила развития
## Единственный источник истины
Публичный компонент, его CSS, документация, registry entry и catalog example изменяются одним pull/merge request в этом репозитории.
Приложения не должны исправлять общий компонент локальным копированием. Если срочный adapter неизбежен, он должен:
- оборачивать публичный компонент;
- не копировать его внутреннюю реализацию;
- иметь ссылку на issue/design-system change;
- быть внесён в `docs/ADOPTION.md` как временный долг.
## Добавление компонента
Компонент принимается в систему, если:
1. он независим от доменной модели;
2. его API можно описать без упоминания конкретной таблицы/ноды/проекта;
3. он использует существующую тему и layer scale;
4. определены keyboard и disabled/pending states;
5. добавлен React или DOM adapter в зависимости от потребителей;
6. есть catalog example;
7. обновлён registry.
## Изменение геометрии
Геометрия меняется централизованно. Нельзя исправлять высоту/радиус в одном приложении, если изменение относится к общему контролу.
Допустимы density variants, если они имеют устойчивое назначение (`default`, `compact`) и тестируются как часть API.
## Deprecated
Перед удалением export:
- он получает статус deprecated в registry;
- документация указывает replacement;
- минимум один minor release сохраняет совместимость;
- после миграции известных consumers export удаляется в major release.
## Проверки
Минимум для merge:
- typecheck всех пакетов;
- registry validation;
- production build каталога;
- ручная визуальная проверка dark/light и нескольких accent;
- keyboard smoke test для Dropdown, Select, Window и Inspector.
Следующий уровень зрелости — автоматические screenshot regression и interaction tests. Они добавляются до массовой миграции приложений.
## Владение
У дизайн-системы должен быть явный code owner. Product team может предлагать компоненты, но общий API и theme contract проходят отдельное review, потому что изменение распространяется на все будущие приложения.