Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/dep-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ on:
TOOL is a semver artifact, so a behaviour change is a version bump somebody reviewed.
The pin lives here rather than in eleven callers.
type: string
default: '0.9.0'
default: '0.9.1'
run-floor-check:
description: |
Also run the suite against the BOTTOM of every declared sibling range, not only
Expand Down
11 changes: 11 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [dep-check 0.9.1] - 2026-08-27

### Fixed

- The organisation-wide audit labels an `ahead` range the same way check C does. `0.9.0` gave
`ceilingDrift` a direction and taught check C to use it, and left the audit reading the old
shape — so a published package whose floor sits above `latest` would have printed
`(undefined behind)` and been filed under `contract`. Introduced by `0.9.0` and caught before
it ran anywhere (#24)


## [dep-check 0.9.0] - 2026-08-27

### Fixed
Expand Down
8 changes: 6 additions & 2 deletions packages/dep-check/index.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -290,7 +290,9 @@ async function commandAudit() {
dep,
...drift,
deprecated: Boolean(manifest.deprecated),
severity: field === "peerDependencies" ? "contract" : "behind",
// Same three-way severity as check C: a floor above latest means the published
// package installs nowhere, which outranks a merely stale contract.
severity: drift.direction === "ahead" ? "unpublished" : field === "peerDependencies" ? "contract" : "behind",
});
}
}
Expand All @@ -301,7 +303,9 @@ async function commandAudit() {
title: "audit) every published package in the scope",
findings,
note: ` Swept ${names.length} published packages. \`deprecated\` means the registry already warns people.`,
columns: (f) => `[${f.severity}]${f.deprecated ? "[deprecated]" : ""} ${f.pkg.padEnd(30)} ${f.field.padEnd(17)} ${f.dep.padEnd(20)} ${f.range.padEnd(16)} latest ${f.latest} (${f.majorsBehind} behind)`,
columns: (f) =>
`[${f.severity}]${f.deprecated ? "[deprecated]" : ""} ${f.pkg.padEnd(30)} ${f.field.padEnd(17)} ${f.dep.padEnd(20)} ${f.range.padEnd(16)} latest ${f.latest} ` +
(f.direction === "ahead" ? "(nothing published satisfies this)" : `(${f.majorsBehind} behind)`),
});
return 0;
}
Expand Down
4 changes: 2 additions & 2 deletions packages/dep-check/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion packages/dep-check/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@theokit/dep-check",
"version": "0.9.0",
"version": "0.9.1",
"description": "The ecosystem dependency gate: does a package's declared range still describe the sibling it ships against? Four checks, kept apart by what they need to answer and therefore by whether they may fail a build.",
"type": "module",
"engines": {
Expand Down