release-age-tree-scopechanged
Asserts — scope: tree enforces every resolved copy, so the nested version becomes the mandatory failure and the reported installed version follows it.
Ran hermex comply --config tree.config.ts in fixtures/repos/version-conflict → exit 1, as asserted
Config fixtures/repos/version-conflict/tree.config.ts · Fixture fixtures/repos/version-conflict (overview) · Case release-age-tree-scope (dossier)
Registry offline, served from fixtures/registry/timelines.ts — no network
Reproduce locally: pnpm run test:output -- --filter release-age-tree-scope
fixtures/repos/version-conflict/tree.config.ts
import type { HermexConfigInput } from '../../../src/config/types.ts';
import base from './hermex.config.ts';
/**
* `scope: 'tree'` — every resolved copy is enforced, so the ancient nested
* react 17.0.2 becomes a mandatory failure rather than advisory context,
* and the reported installed version is the worst copy rather than the
* direct one. Everything else is identical to `./hermex.config.ts`, so the
* diff between the two baselines is exactly what `scope` does.
*/
export default {
...base,
releaseAge: { ...base.releaseAge, scope: 'tree' },
} satisfies HermexConfigInput;
Diffs are unified format: - is the target branch, + is this run. @@ -12,7 +12,9 @@ is a hunk header — unchanged lines were skipped, and the hunk below covers 7 lines from line 12 of the target branch and 9 lines from line 12 of this run.
--- target/stdout.txt
+++ current/stdout.txt
@@ -20,7 +20,7 @@
Total: 2 packages
-🔴 NOT COMPLIANT
+🔴 Not compliant
1 mandatory violation found
stdout.txthermex v<version>
- Parsing lockfile...
✔ Found pnpm lockfile (supports: v5, v6, v9) - 2 packages
✔ Found 3 files
✔ Analysis complete! Analyzed 3/3 files
✔ Release age fetched
📦 Packages
┌───────────────┬───────────┬────────────────────────────────────┐
│ Package │ Installed │ Target │
├───────────────┼───────────┼────────────────────────────────────┤
│ legacy-widget │ 1.0.0 │ │
├───────────────┼───────────┼────────────────────────────────────┤
│ react │ 17.0.2 │ 🔴 major 19.1.0 (640 days overdue) │
└───────────────┴───────────┴────────────────────────────────────┘
Notes:
🔵 react → 2 versions installed (bundle impact): 17.0.2, 18.3.1
Total: 2 packages
🔴 Not compliant
1 mandatory violation found
stderr.txt