С чем связан запрос?
Изначально задача была заведена как миграция на Biome, но после обсуждения целевой контур меняется: не размазываем lint/format по нескольким vendor-ам, а идём в единый Oxc-стек (oxlint + oxfmt). Biome остаётся только историческим benchmark, не production fallback.
Baseline на master от 2026-04-30:
yarn format: 478 файлов, wall 2.85s, exit 0; 1 файл был изменён командой и откатан после замера
yarn lint: 364 файла, wall 17.47s, exit 0
yarn lint --cache: 364 файла, wall 15.13s, exit 0; cache mutation откатан после замера
- текущий
format + lint: 20.32s
Исторический benchmark Biome 2.4.13:
biome format: 448 файлов, wall 1.49s, internal 107ms, exit 1 из-за style mismatches
biome lint: 363 файла, wall 1.18s, internal 146ms, exit 1, 48 errors / 190 warnings / 7 infos
biome format + lint: 2.67s, примерно 7.6x быстрее текущего format + lint
Опиши план реализации
Мигрировать lint/format pipeline на Oxc как единый vendor-контур:
- добавить Oxc-конфигурацию с текущими include/exclude, без опоры на дефолты
- сопоставить текущий Prettier-style с доступными настройками
oxfmt
- решить, чем закрывается текущий import sorting из
@atls/prettier-plugin
- сопоставить текущие ESLint rules/domains с
oxlint
- явно описать gaps по
security, n, jsx-a11y, react-compiler, Next/React edge cases и type-aware rules
- сохранить контракты
yarn format, yarn lint, yarn checks lint --changed и CI diagnostics
- добавить check-mode для formatter, если он нужен CI
- повторить before/after замеры после настройки конфига
Критерии готовности выполнения задачи
yarn format и yarn lint покрыты Oxc для согласованной поверхности
- CI выдаёт actionable diagnostics для changed files
- известные gaps имеют явное решение: покрыто Oxc, bounded transition на старом стеке или осознанно dropped
- production-контур lint/format не тащит Biome/dprint как постоянные дополнительные слои
- финальный замер показывает существенный прирост скорости на
raijin
С чем связан запрос?
Изначально задача была заведена как миграция на Biome, но после обсуждения целевой контур меняется: не размазываем lint/format по нескольким vendor-ам, а идём в единый Oxc-стек (
oxlint + oxfmt). Biome остаётся только историческим benchmark, не production fallback.Baseline на
masterот 2026-04-30:yarn format: 478 файлов, wall2.85s, exit 0; 1 файл был изменён командой и откатан после замераyarn lint: 364 файла, wall17.47s, exit 0yarn lint --cache: 364 файла, wall15.13s, exit 0; cache mutation откатан после замераformat + lint:20.32sИсторический benchmark Biome 2.4.13:
biome format: 448 файлов, wall1.49s, internal107ms, exit 1 из-за style mismatchesbiome lint: 363 файла, wall1.18s, internal146ms, exit 1, 48 errors / 190 warnings / 7 infosbiome format + lint:2.67s, примерно7.6xбыстрее текущегоformat + lintОпиши план реализации
Мигрировать lint/format pipeline на Oxc как единый vendor-контур:
oxfmt@atls/prettier-pluginoxlintsecurity,n,jsx-a11y,react-compiler, Next/React edge cases и type-aware rulesyarn format,yarn lint,yarn checks lint --changedи CI diagnosticsКритерии готовности выполнения задачи
yarn formatиyarn lintпокрыты Oxc для согласованной поверхностиraijin