@7n/rules 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/package.json +1 -1
- package/rules/rust/coverage/coverage.mdc +0 -28
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [1.1.0] - 2026-07-13
|
|
4
|
+
|
|
5
|
+
### Changed
|
|
6
|
+
|
|
7
|
+
- Пакет перейменовано: `@nitra/cursor` → `@7n/rules` (bin `n-rules` + перехідний alias `n-cursor`, конфіг `.n-rules.json` з авто-міграцією з `.n-cursor.json`, маркери блоків `n-rules:*`, `$schema` на `unpkg.com/@7n/rules/...`); legacy-назви читаються як fallback для безшовної міграції споживачів
|
|
8
|
+
|
|
3
9
|
## [14.33.0] - 2026-07-13
|
|
4
10
|
|
|
5
11
|
### Changed
|
package/package.json
CHANGED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
## Покриття + мутаційне тестування Rust
|
|
2
|
-
|
|
3
|
-
Покриття + мутаційне тестування Rust постачаються через `@7n/test coverage` (правило `test.mdc`). Реалізація провайдера — у `npm/rules/rust/coverage/coverage.mjs`: `cargo llvm-cov --json --summary-only` + `cargo mutants --jobs N`.
|
|
4
|
-
|
|
5
|
-
Бінарники: `cargo install cargo-llvm-cov && cargo install cargo-mutants`.
|
|
6
|
-
|
|
7
|
-
### Паралелізм cargo-mutants
|
|
8
|
-
|
|
9
|
-
Паралельні воркери: дефолт `min(4, cpus/2)`; override через env **`CARGO_MUTANTS_JOBS`**. Прапорець `--in-place` відсутній — cargo-mutants створює власну sandbox-копію в `target/mutants.<i>/`, що сумісне з `--jobs > 1`.
|
|
10
|
-
|
|
11
|
-
### Incremental mutation через `--in-diff`
|
|
12
|
-
|
|
13
|
-
cargo-mutants **не** має persistent-кешу вердиктів між прогонами (на відміну від Stryker `incremental.json`). Штатний аналог «не передивляйся незмінений код» — scoping за git-diff. Вмикається env-змінною **`CARGO_MUTANTS_BASE_REF`**:
|
|
14
|
-
|
|
15
|
-
- **не задано** (дефолт, типово для `main`) — повний прогін усіх мутантів;
|
|
16
|
-
- задано (напр. `origin/main`, типово для feature-гілки в CI) — мутуються лише рядки, змінені у `<baseRef>...HEAD`. Провайдер бере `git diff --relative <baseRef>...HEAD` з каталогу crate, пише diff у sandbox і передає cargo-mutants `--in-diff`.
|
|
17
|
-
|
|
18
|
-
Краєві випадки: порожній diff (немає змін під crate) → mutation `0/0` без запуску cargo-mutants; невідомий ref / не git-репо → попередження у stderr і fallback до повного прогону.
|
|
19
|
-
|
|
20
|
-
### Пропуск baseline через `CARGO_MUTANTS_BASELINE=skip`
|
|
21
|
-
|
|
22
|
-
cargo-mutants спершу ганяє немутований baseline (повний build+test), щоб переконатися, що suite зелений. **`CARGO_MUTANTS_BASELINE=skip`** прибирає цей крок (`--baseline skip`), економлячи один повний `cargo test`.
|
|
23
|
-
|
|
24
|
-
Безпечно **лише** коли тести вже зелені у попередньому CI-степі (типовий порядок: `cargo test` → потім `@7n/test coverage` зі `skip`). Без цієї гарантії всі вердикти стають сміттєвими — дефолт: baseline-прогін. Найкорисніше в парі з `--in-diff`.
|
|
25
|
-
|
|
26
|
-
### CI-кеш `target/` — множник
|
|
27
|
-
|
|
28
|
-
`--in-diff` ріже **кількість** мутантів, кеш `target/` — **вартість кожної** компіляції; вони множаться. Без кешу холодний CI щоразу перебудовує всі залежності, і baseline-build (для Tauri — хвилини) затьмарює економію від меншої кількості мутантів. У workflow, що викликає `@7n/test coverage` для Rust, став `Swatinem/rust-cache@v2` після `dtolnay/rust-toolchain@stable` — вимога й автофікс тепер перевіряються загально (будь-який job, будь-який workflow) concern-ом `rust/toolchain_cache`.
|