@oakoss/oakum 0.3.1 → 0.4.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 +39 -1
- package/npm-shrinkwrap.json +2 -2
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,43 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.4.0 (2026-09-21)
|
|
4
|
+
|
|
5
|
+
### Added
|
|
6
|
+
|
|
7
|
+
`oakum check --json` prints a versioned `CheckReport` instead of the prose report: every look the run could perform, what each established, and which refusal decided. A caller that must see both outcomes of a mixed run now has somewhere to read the second — ADR-0035 ranked a finding above a look that did not happen and named the cost: the unverified outcome survives only in the `also` prose. A look nobody asked for reports `not-asked`, and one that said something without refusing reports `reported`, so neither can read as a look that happened and found nothing. A look that raised several refusals carries every one of them with its own evidence, rather than the first alone. The document also carries what the run covered — the packages selected, the base it diffed from or why that could not be named, and whether coverage gated — which the prose report says on stdout and `--json` replaces. Refusals still reach stderr and the exit code is unchanged, so one run yields a document and a human-readable failure.
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
|
|
11
|
+
A bump file whose note is a heading with nothing under it renders no changelog section, so `oakum version` consumed the file and the release said nothing about what its author wrote, with no warning anywhere. `oakum add` now refuses to write such a note, naming `--none` for a change that is deliberately releaseless. `oakum check` reports one always and refuses under `--strict`, the shape its coverage look already uses, so a repository green today stays green until it opts in. `version` itself still says nothing when it consumes one, so a repository that never runs `check` still loses the note at release time. Three shapes that render nothing on purpose are untouched: a coverage-only (`none`) entry, a bump file with no note, and a note that is only whitespace. A file that drops only one of several headings is not reported either. Breaking for a repository that has such a file and runs `check --strict`, or an `add` whose message is a bare heading; both exited 0 before and exit 1 now.
|
|
12
|
+
|
|
13
|
+
### Fixed
|
|
14
|
+
|
|
15
|
+
When `oakum version` fails partway and cannot restore a bump file it already deleted, the failure now names that file and prints the opening lines of what it held. The file is gone at this point, so a later run cannot see it: it consumes whatever is left and reports success at a version nobody asked for. Measured on a real run — a failed `version` destroyed a `minor` bump file, and the next run shipped `0.1.1` where `0.2.0` was intended, at exit 0. The message says a file git has a copy of, committed or staged, comes back with `git checkout`, and shows the text for one that was never committed. The excerpt is bounded by lines, by columns and by file count, and the entry list above it by file count, each saying what it elided. Everything user-supplied in this message — the cause, each path, each error and each excerpt line — is escaped, since a bump file and the path naming it can arrive from a pull request and this is the one path to a raw terminal; script joiners and combining text still render. Exit codes are unchanged; a delete oakum could not undo is a finding it measured, so it still exits 1 (ADR-0037).
|
|
16
|
+
|
|
17
|
+
The `check --json` scope field `gating_coverage` is now `gating`, and carries the names of the looks `--strict` decides rather than a yes or no. `--strict` gates two looks as of this release — coverage, and the notes look that refuses a bump file note reaching no changelog — so a consumer that could only ask about coverage could not tell which of them refused; the names match `looks[].look`, so the two can be joined. The field says what `--strict` decided, not what the looks then managed: a look that could not run is still named, and reports `unverified` in its own row. An empty list means `--strict` was not asked for. A `patch` rather than a renamed field under the breaking row, and no `schema_version` bump: `check --json` has not appeared in a release — it was added after the v0.3.2 tag and its note is still pending — so no consumer can be holding the old name (ADR-0016 on a field that has never shipped).
|
|
18
|
+
|
|
19
|
+
`oakum migrate` no longer reads a `git grep` that exited 0 without naming a file as a search that found nothing. Real git cannot answer that way — a match prints the path, and both no-match and an empty index exit 1 in silence (measured on git 2.55.0 and Apple Git 2.54.0) — so the shape only ever comes from a wrapper that failed to look, and the gate find it produced was a look nobody completed. Such a run now refuses as `unverified` and exits 2 where it printed that no file names the old bump-file directory and exited 0. No repository running real git changes behavior.
|
|
20
|
+
|
|
21
|
+
## 0.3.2 (2026-09-17)
|
|
22
|
+
|
|
23
|
+
### Fixed
|
|
24
|
+
|
|
25
|
+
The version pull request is titled `chore(release): version packages`, the same sentence as the version commit. Where a repository takes its squash subject from the pull request title (`squash_merge_commit_title = PR_TITLE`), the old default — `Version Packages` — landed on the default branch instead, and a conventional-commit gate reading there refused the one commit oakum generates; the conventional message it wrote never appeared. GitHub's own default, `COMMIT_OR_PR_TITLE`, takes the subject from the single commit, so a repository left at that setting never saw this, and neither did one merging or rebasing, where the version commit lands carrying its own message. The two defaults sat four lines apart in the same file and disagreed either way. Set `title` in `.changeset/_config.toml` to keep the old string; its schema description now says what it falls back to and that a configured `commit-message` does not move it.
|
|
26
|
+
|
|
27
|
+
`check` names a package that changed outside `HEAD` — staged, edited or untracked — instead of passing over it. The coverage look reads commits while intent is read from the working tree, so a change that is not yet a commit was in neither half, and `--strict` exited 0 on a tree it refuses one commit later. The scope report now names both ends of the diff (`<base>...HEAD`) rather than reading as a comparison against the tree in front of you.
|
|
28
|
+
|
|
29
|
+
What that look could not read is said too: a working tree `git status` cannot walk, or can walk only in part, is reported rather than passed over in silence. Both are advisory, like the rest of this half — they name what went unread without changing any exit outcome. `release` reports them on the same terms.
|
|
30
|
+
|
|
31
|
+
`ci pr-status` says why it posted nothing on each of its three non-posting paths: an empty plan, the version pull request, and `pr-status = "none"`. Only the fork and token failures announced themselves before, so an empty plan and a swallowed failure looked alike from the workflow's side. A leftover plan comment this run's token could not remove is named as well, rather than leaving a line about what was not written to imply nothing was left behind.
|
|
32
|
+
|
|
33
|
+
Every git child now runs under `LC_ALL=C`, so the diagnostics oakum quotes back to you are in one language whatever the surrounding locale.
|
|
34
|
+
|
|
35
|
+
`check` names a package whose coverage a pull request will not receive. Changed packages are read from commits while intent is read from the working tree, so a bump file that is not committed — or one that is committed and has since been edited to name another package — covered a change that was committed, and `--strict` exited 0 while the ref you were about to push exited 1, with nothing said. The mirror of the change named outside `HEAD`, which this release also carries: there the change is invisible, here the coverage is.
|
|
36
|
+
|
|
37
|
+
The question is asked of `HEAD` itself, reading the intent its tree carries rather than guessing from which files are staged. That is what catches the ordinary flow: commit a bump file, touch a second package later, add a line to the file you already have. It costs nothing where there is no intent on disk to rest on, and nothing at all under `conventional-commits`, where both halves already read commits.
|
|
38
|
+
|
|
39
|
+
Advisory, like the rest of that half: it names what a pull request will not get without changing any exit outcome. An uncommitted bump file is the normal state seconds after `oakum add`, so refusing would fire on nearly every local loop.
|
|
40
|
+
|
|
3
41
|
## 0.3.1 (2026-09-16)
|
|
4
42
|
|
|
5
43
|
### Changed
|
|
@@ -200,4 +238,4 @@ Release workflow checks out the homebrew tap in a subdirectory so the composite
|
|
|
200
238
|
|
|
201
239
|
Self-host release CI uploads cargo-dist artifacts into the GitHub Release oakum already created, instead of calling create again.
|
|
202
240
|
|
|
203
|
-
Generated by oakum 0.3.
|
|
241
|
+
Generated by oakum 0.3.2.
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"hasInstallScript": true,
|
|
20
20
|
"license": "MIT",
|
|
21
21
|
"name": "@oakoss/oakum",
|
|
22
|
-
"version": "0.
|
|
22
|
+
"version": "0.4.0"
|
|
23
23
|
},
|
|
24
24
|
"node_modules/detect-libc": {
|
|
25
25
|
"engines": {
|
|
@@ -48,5 +48,5 @@
|
|
|
48
48
|
}
|
|
49
49
|
},
|
|
50
50
|
"requires": true,
|
|
51
|
-
"version": "0.
|
|
51
|
+
"version": "0.4.0"
|
|
52
52
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"artifactDownloadUrls": [
|
|
3
|
-
"https://github.com/oakoss/oakum/releases/download/v0.
|
|
3
|
+
"https://github.com/oakoss/oakum/releases/download/v0.4.0"
|
|
4
4
|
],
|
|
5
5
|
"author": "Jace Babin",
|
|
6
6
|
"bin": {
|
|
@@ -105,7 +105,7 @@
|
|
|
105
105
|
"zipExt": ".tar.xz"
|
|
106
106
|
}
|
|
107
107
|
},
|
|
108
|
-
"version": "0.
|
|
108
|
+
"version": "0.4.0",
|
|
109
109
|
"volta": {
|
|
110
110
|
"node": "18.14.1",
|
|
111
111
|
"npm": "9.5.0"
|