okf-kit 0.11.0 → 0.12.1
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 +44 -0
- package/LICENSE +21 -0
- package/README.md +2 -2
- package/dist/rules/sources-fresh.js +169 -202
- package/dist/rules/sources-fresh.js.map +1 -1
- package/dist/types.d.ts +8 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,50 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.12.1] - 2026-09-15
|
|
11
|
+
|
|
12
|
+
- The npm tarball now ships a `LICENSE` file matching the repo root LICENSE
|
|
13
|
+
(MIT), asserted by the monorepo's `lint-package-licenses` CI job.
|
|
14
|
+
|
|
15
|
+
## [0.12.0] - 2026-09-13
|
|
16
|
+
|
|
17
|
+
### Added
|
|
18
|
+
|
|
19
|
+
- Adds a pinned fixture-repository regression test for the documented
|
|
20
|
+
two-branch squash-merge decision procedure, including every stale branch
|
|
21
|
+
state's re-verify-and-re-stamp rescue.
|
|
22
|
+
|
|
23
|
+
### Fixed
|
|
24
|
+
|
|
25
|
+
- `sources-fresh` under a `--repo-root` naming a SUBDIRECTORY of the
|
|
26
|
+
repository: both re-stamp rescues read the doc's committed value with
|
|
27
|
+
`git show <rev>:<path>`, and git resolves that path against the
|
|
28
|
+
repository's top level, never the cwd, while the rule's own doc path is
|
|
29
|
+
relative to the passed root. Spelled bare, the read failed (every rescue
|
|
30
|
+
collapsed to a `staleness not assessable` notice: a locally re-stamped
|
|
31
|
+
doc, or a doc re-stamped in the same commit as its source, no longer read
|
|
32
|
+
clean) or, with a same-named doc at the top level, read THAT doc's stamp
|
|
33
|
+
in the subdirectory doc's place (a dirty-but-not-re-stamped doc could
|
|
34
|
+
read clean, a false green). The same frame mismatch made the committed
|
|
35
|
+
rescue's rename-aware `git diff-tree` lookup never match the doc, so a
|
|
36
|
+
doc created in the co-commit read `not assessable` instead of clean. All
|
|
37
|
+
three sites now go through one helper that respells the path in the
|
|
38
|
+
top-level frame via `git rev-parse --show-prefix` (read at most once per
|
|
39
|
+
run and shared with `--dirty-as-now`'s dirty-path matching, which
|
|
40
|
+
already used it), so a subdirectory root now judges exactly as the top
|
|
41
|
+
level does. Cost with the flag off: one extra `git rev-parse` per run on
|
|
42
|
+
the re-stamp path, none per doc; a top-level `--repo-root` is otherwise
|
|
43
|
+
byte-identical to before. The README's "prefer the top level" limitation
|
|
44
|
+
paragraph is gone. (task agent-dx 266d64d3)
|
|
45
|
+
- `--dirty-as-now`'s shared virtual-commit instant is now pinned: the clock
|
|
46
|
+
is read exactly once per `check` run through an injectable `ctx.now`
|
|
47
|
+
(default `Date.now`), and a test asserts both the read count and that
|
|
48
|
+
every dirty path in both rules cites the identical instant, so a
|
|
49
|
+
per-call re-read can no longer slip in unnoticed. Also adds an
|
|
50
|
+
ignored-only new-directory control for the `--untracked-files=all`
|
|
51
|
+
status read, and trims `src/rules/sources-fresh.ts`'s comments to the
|
|
52
|
+
invariants and their reasons.
|
|
53
|
+
|
|
10
54
|
## [0.11.0] - 2026-09-12
|
|
11
55
|
|
|
12
56
|
### Added
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Lan Nguyen Si
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -134,7 +134,7 @@ The one consequence that follows for a branch merging a trunk carrying a squash:
|
|
|
134
134
|
|
|
135
135
|
`sources-fresh` and `sources-fresh-future` normally judge every path by its last GIT COMMIT time, so a source or doc you have edited but not yet committed still reads by whatever it looked like at its last commit -- often still "fresh" relative to an already-stale doc `timestamp`. Once you commit, that same path gets a brand-new commit time, and CI's freshness guard (typically run in strict mode) can fail on a doc your local, pre-commit `check` run reported as clean. `--dirty-as-now` closes that gap by modeling every uncommitted change -- modified, staged, or untracked, i.e. anything `git status --porcelain --untracked-files=all` reports -- as though it landed in ONE VIRTUAL COMMIT made right now: a dirty `sources` path's epoch becomes now, and a dirty DOC's OWN epoch becomes now too, both read from the exact same shared instant so two dirty paths in one `check` run never disagree about what "now" was. Both rules read a dirty path's epoch this same way -- there is exactly one place in the code that applies the substitution, not a separate patch per rule -- so a pre-commit run reports the same verdict CI will report once the commit lands, for either rule. It has no effect on a path with no uncommitted change (judged exactly as before), and it is entirely opt-in: omit it and both rules are byte-for-byte unchanged. One consequence worth calling out: an untracked source's ordinary `untracked by git, staleness unknown` notice (see the table above) becomes a STALE warning under this flag instead, since an untracked path is itself an uncommitted change; symmetrically, an untracked DOC -- which `sources-fresh-future` otherwise leaves unassessed entirely (see that rule's table above) -- gets a real `sources-fresh-future` verdict too, since its virtual epoch is now a real "now" to compare its `timestamp` against. Both hold for a file inside a BRAND-NEW untracked directory as well, which is why the status read passes `--untracked-files=all`: git's default untracked mode reports a new directory as one single `? newdir/` record and never names the files in it, so a source or doc inside one used to be invisible to this flag (reported merely `untracked by git`, exit 0) right up until the commit that made it STALE in CI. The cost of `--untracked-files=all` is a longer status output in a work tree carrying many untracked, non-ignored files; if it ever exceeds the internal 16 MiB git-output cap, the run reports the not-applied notice below rather than pretending the tree is clean.
|
|
136
136
|
|
|
137
|
-
Three smaller behaviors worth knowing. A `sources` entry spelled `.` or `./` (the repo root itself) is dirty whenever ANY path in the work tree is dirty -- it is matched by containment, since `git status` never reports the root as an entry of its own. `--repo-root` may name a SUBDIRECTORY of the repository: dirty paths
|
|
137
|
+
Three smaller behaviors worth knowing. A `sources` entry spelled `.` or `./` (the repo root itself) is dirty whenever ANY path in the work tree is dirty -- it is matched by containment, since `git status` never reports the root as an entry of its own. `--repo-root` may name a SUBDIRECTORY of the repository: `git status` reports dirty paths relative to the repository's top level, and `git show <rev>:<path>` reads a blob by a top-level-relative path too, so the rule respells every path it hands to either (via `git rev-parse --show-prefix`, read once per run) before matching a dirty path or reading a doc's committed value; dirty-path detection and both re-stamp rescues (the working-tree one here and the committed co-commit one above) then behave under a subdirectory root exactly as under the top level, and a same-named doc at the top level is never read in the subdirectory doc's place. And if git cannot be read at all (`status` failing, output past the cap, git missing), `check` emits one bundle-level `sources-fresh` notice reading "`--dirty-as-now` not applied: git status could not be read, judging by committed history only", and both rules fall back to committed history; the flag never reports a silent all-clear it did not actually verify.
|
|
138
138
|
|
|
139
139
|
The flag also carries a working-tree analogue of the doc-commit re-stamp rescue described above, evaluated against that same virtual commit: a doc re-stamped LOCALLY (its on-disk frontmatter `timestamp` value differs from the value committed at `HEAD` -- a change in EITHER direction, including a backwards move, counts -- and the doc file itself is dirty; an untracked doc counts as re-stamped too, the working-tree equivalent of "the doc being created there") rescues a dirty source exactly like a real re-stamp landing in the same commit does. Without this, bumping a doc's `timestamp` locally and re-running `check --dirty-as-now` could still report STALE, purely because a few seconds pass between writing the new timestamp and running the check -- defeating the point of the recommended invocation below. A doc that is dirty for some OTHER reason (a body edit that leaves the `timestamp` value unchanged) is not rescued: that case still reports STALE, same as before. Reading the doc's committed value distinguishes a genuinely untracked doc (no entry for it at `HEAD` at all -- always a re-stamp) from a real git failure reading an EXISTING `HEAD` blob (a corrupt object, an unreadable blob): only the former is treated as "created"; the latter falls through to the ordinary `staleness not assessable` notice instead of being silently guessed either way.
|
|
140
140
|
|
|
@@ -320,7 +320,7 @@ This is advisory: don't fail the build on warnings unless you pass `--strict`. U
|
|
|
320
320
|
with:
|
|
321
321
|
fetch-depth: 0
|
|
322
322
|
- name: OKF bundle check
|
|
323
|
-
run: npx okf-kit@0.
|
|
323
|
+
run: npx okf-kit@0.12.1 check path/to/bundle
|
|
324
324
|
```
|
|
325
325
|
|
|
326
326
|
Pin the version: an unpinned `npx okf-kit` picks up new rules on their release day, which turns an unrelated PR red.
|
|
@@ -94,44 +94,36 @@ export const sourcesFreshRule = {
|
|
|
94
94
|
// rules don't each spawn their own `git log` for the same doc in one
|
|
95
95
|
// `check` run.
|
|
96
96
|
//
|
|
97
|
-
// GIT PROCESS BUDGET
|
|
98
|
-
//
|
|
99
|
-
//
|
|
100
|
-
//
|
|
101
|
-
//
|
|
102
|
-
//
|
|
103
|
-
//
|
|
104
|
-
//
|
|
105
|
-
//
|
|
106
|
-
//
|
|
107
|
-
// "spends at most five git processes per doc" in
|
|
108
|
-
// test/sources-fresh.test.ts.
|
|
109
|
-
// --is-shallow-repository` for the ENTIRE run, not per doc (see
|
|
110
|
-
// isShallowRepoShared below) -- only spent at all when some doc's
|
|
111
|
-
// re-stamp lookup actually reaches a root commit.
|
|
97
|
+
// GIT PROCESS BUDGET per doc per `check` run, `--dirty-as-now` OFF: 1
|
|
98
|
+
// (the shared `git log -1 --format=%ct` epoch lookup) + at most 4 on
|
|
99
|
+
// the re-stamp path (`git log -1 --format=%H%n%P`, `git diff-tree`,
|
|
100
|
+
// two `git show`s), i.e. AT MOST 5 regardless of how many sources the
|
|
101
|
+
// doc declares, since both lookups are memoized per doc. Plus one `git
|
|
102
|
+
// log` per UNIQUE source path across the bundle (commitEpochCache),
|
|
103
|
+
// and, per RUN rather than per doc, at most one `git rev-parse
|
|
104
|
+
// --show-prefix` (getShowPrefixShared, spent the first time any
|
|
105
|
+
// re-stamp lookup needs the top-level path frame) and at most one
|
|
106
|
+
// `git rev-parse --is-shallow-repository` (isShallowRepoShared).
|
|
107
|
+
// Pinned by "spends at most five git processes per doc" in
|
|
108
|
+
// test/sources-fresh.test.ts.
|
|
112
109
|
//
|
|
113
|
-
// With `--dirty-as-now` ON, add
|
|
114
|
-
//
|
|
115
|
-
//
|
|
116
|
-
//
|
|
117
|
-
// HEAD, one more `git show HEAD:<doc>`), spent only when that doc is
|
|
118
|
-
// itself dirty AND some source of its reads stale (see restampFor
|
|
119
|
-
// below).
|
|
110
|
+
// With `--dirty-as-now` ON, add one `git status` per run (the
|
|
111
|
+
// show-prefix read above is shared with it, see readDirtyState) plus,
|
|
112
|
+
// PER DOC, at most one `git ls-tree` and one `git show`, spent only
|
|
113
|
+
// when that doc is itself dirty AND some source of its reads stale.
|
|
120
114
|
const repoRelDocPath = toRepoRelDocPath(repoRoot, ctx.bundleDir, doc);
|
|
121
115
|
const docCommitEpochFor = () => getDocCommitEpochShared(ctx, git, repoRoot, repoRelDocPath);
|
|
122
|
-
|
|
123
|
-
//
|
|
124
|
-
// `--dirty-as-now`)
|
|
125
|
-
//
|
|
126
|
-
// commit's implicit
|
|
127
|
-
//
|
|
128
|
-
// commit's first parent (`restampedByOwnLastCommit`).
|
|
129
|
-
//
|
|
130
|
-
//
|
|
131
|
-
// dirty doc
|
|
132
|
-
//
|
|
133
|
-
// dirty doc exactly the way it fires for a real co-commit, so only
|
|
134
|
-
// ONE verdict function needs to be picked here, not two independent
|
|
116
|
+
const showPrefixFor = () => getShowPrefixShared(ctx, git, repoRoot);
|
|
117
|
+
// The single decision point for "did the doc's last commit, real or
|
|
118
|
+
// virtual, actually re-stamp it". A dirty doc (under `--dirty-as-now`)
|
|
119
|
+
// is judged by its WORKING-TREE value against the value committed at
|
|
120
|
+
// HEAD, the virtual commit's implicit first parent
|
|
121
|
+
// (`dirtyDocRestampVerdict`); any other doc is judged against its real
|
|
122
|
+
// last commit's first parent (`restampedByOwnLastCommit`). Because
|
|
123
|
+
// `docCommitEpochFor` already reports a dirty doc's epoch as "now"
|
|
124
|
+
// (`commitEpochWithDirtyAsNow`), the ordinary `docCommitEpoch >=
|
|
125
|
+
// commitEpoch` gate below fires for a dirty doc exactly as for a real
|
|
126
|
+
// co-commit, so ONE verdict function is picked here rather than two
|
|
135
127
|
// mechanisms answering overlapping questions.
|
|
136
128
|
let restampMemo;
|
|
137
129
|
const restampFor = () => {
|
|
@@ -139,8 +131,8 @@ export const sourcesFreshRule = {
|
|
|
139
131
|
return restampMemo;
|
|
140
132
|
restampMemo =
|
|
141
133
|
ctx.dirtyAsNow && isDirtyForShared(ctx, git, repoRoot, repoRelDocPath)
|
|
142
|
-
? dirtyDocRestampVerdict(git, repoRoot, repoRelDocPath, getTimestampIdentity(doc.frontmatter.parsed))
|
|
143
|
-
: restampedByOwnLastCommit(git, repoRoot, repoRelDocPath, () => isShallowRepoShared(ctx, git, repoRoot));
|
|
134
|
+
? dirtyDocRestampVerdict(git, repoRoot, repoRelDocPath, getTimestampIdentity(doc.frontmatter.parsed), showPrefixFor)
|
|
135
|
+
: restampedByOwnLastCommit(git, repoRoot, repoRelDocPath, () => isShallowRepoShared(ctx, git, repoRoot), showPrefixFor);
|
|
144
136
|
return restampMemo;
|
|
145
137
|
};
|
|
146
138
|
// At most one "not assessable" notice per doc, however many of its
|
|
@@ -331,98 +323,49 @@ function getLastCommitEpoch(git, repoRoot, source) {
|
|
|
331
323
|
return Number.isNaN(epoch) ? null : epoch;
|
|
332
324
|
}
|
|
333
325
|
/**
|
|
334
|
-
* The full SET of
|
|
335
|
-
*
|
|
336
|
-
*
|
|
337
|
-
*
|
|
338
|
-
*
|
|
339
|
-
*
|
|
340
|
-
*
|
|
341
|
-
* `sources-fresh` substitutes the current time for it instead of falling
|
|
342
|
-
* through to `getLastCommitEpoch`'s answer (the LAST commit's time, which
|
|
343
|
-
* for a locally-edited-but-uncommitted file is necessarily stale).
|
|
326
|
+
* The full SET of top-level-relative paths `git status` reports as dirty
|
|
327
|
+
* (modified, staged, or untracked) across the WHOLE work tree, read via a
|
|
328
|
+
* SINGLE `status` process per `check` run (never per source or per doc).
|
|
329
|
+
* Used only behind `--dirty-as-now`: a dirty path has no "last commit" yet
|
|
330
|
+
* that reflects its current content, so `sources-fresh` substitutes the
|
|
331
|
+
* current time for it instead of `getLastCommitEpoch`'s necessarily stale
|
|
332
|
+
* answer.
|
|
344
333
|
*
|
|
345
|
-
* `--no-optional-locks
|
|
346
|
-
*
|
|
347
|
-
*
|
|
348
|
-
* from a hook or CI step that should not perturb the index. Ignored files
|
|
349
|
-
* are deliberately NOT included (no `--ignored`): an ignored source keeps
|
|
350
|
-
* today's "untracked by git, staleness unknown" notice instead of being
|
|
351
|
-
* newly reported dirty by this option.
|
|
334
|
+
* `--no-optional-locks`: a read-only check (often a hook or CI step) must
|
|
335
|
+
* not rewrite the index as a side effect. No `--ignored`: an ignored
|
|
336
|
+
* source keeps its "untracked by git, staleness unknown" notice.
|
|
352
337
|
*
|
|
353
|
-
* `--untracked-files=all`
|
|
354
|
-
*
|
|
355
|
-
*
|
|
356
|
-
*
|
|
357
|
-
*
|
|
358
|
-
*
|
|
359
|
-
*
|
|
360
|
-
*
|
|
361
|
-
*
|
|
362
|
-
* committing it reported STALE (exit 1) -- the precise local/CI divergence
|
|
363
|
-
* this flag exists to remove. `-uall` makes git enumerate every untracked
|
|
364
|
-
* FILE as its own record, so the ordinary exact/descendant matching sees
|
|
365
|
-
* them. The cost is output size: `-uall` prints one record per untracked
|
|
366
|
-
* file rather than per untracked directory, which in a work tree carrying
|
|
367
|
-
* a large untracked build or dependency tree (anything not covered by
|
|
368
|
-
* `.gitignore` -- ignored paths are still excluded, see above) can run to
|
|
369
|
-
* many thousands of records. That output travels through RunGit's 16 MiB
|
|
370
|
-
* cap (`MAX_GIT_OUTPUT_BYTES` in src/git.ts), and a status that exceeds it
|
|
371
|
-
* resolves to null like any other git failure -- reported as the
|
|
372
|
-
* bundle-level "not applied" notice the rule emits, never as a silent
|
|
373
|
-
* "nothing is dirty".
|
|
338
|
+
* `--untracked-files=all` is load-bearing. Under git's default untracked
|
|
339
|
+
* mode a brand-new directory collapses into ONE `? newdir/` record and the
|
|
340
|
+
* files inside it are never listed, while the matcher (`isDirtyForShared`)
|
|
341
|
+
* matches a queried path that IS an entry or is an ANCESTOR of one -- so a
|
|
342
|
+
* source or doc INSIDE a new directory matched nothing and silently kept
|
|
343
|
+
* its committed-history verdict, the local/CI divergence this flag exists
|
|
344
|
+
* to remove. The cost is one record per untracked file; a status past
|
|
345
|
+
* RunGit's 16 MiB cap resolves to null like any other git failure and is
|
|
346
|
+
* reported, never treated as "nothing is dirty".
|
|
374
347
|
*
|
|
375
|
-
*
|
|
376
|
-
*
|
|
377
|
-
*
|
|
378
|
-
*
|
|
379
|
-
*
|
|
380
|
-
*
|
|
381
|
-
*
|
|
382
|
-
*
|
|
383
|
-
* of
|
|
348
|
+
* `--porcelain=v2 -z` rather than v1: RunGit `.trim()`s every output, and a
|
|
349
|
+
* v1 line for an unstaged-only change starts with a LITERAL SPACE (` M
|
|
350
|
+
* path`), so as the first line its leading field byte would be eaten and
|
|
351
|
+
* the path mis-cut. Every v2 record starts with a non-whitespace kind
|
|
352
|
+
* byte, and NUL delimiting keeps a path with a space, tab or non-ASCII
|
|
353
|
+
* byte intact. Record shapes (fixed fields are read positionally, never
|
|
354
|
+
* re-split by content): `? path`; `1 XY sub mH mI mW hH hI path` (8 fixed
|
|
355
|
+
* fields); `2 XY sub mH mI mW hH hI score path\0origPath` (9 fixed fields,
|
|
356
|
+
* origPath is the FOLLOWING token; both sides of a rename count as dirty);
|
|
357
|
+
* `u XY sub m1 m2 m3 mW h1 h2 h3 path` (10 fixed fields).
|
|
384
358
|
*
|
|
385
|
-
*
|
|
386
|
-
*
|
|
387
|
-
*
|
|
388
|
-
*
|
|
389
|
-
*
|
|
390
|
-
* case. When that happens to be the FIRST line of the whole status output,
|
|
391
|
-
* `.trim()` strips that leading space as ordinary boundary whitespace,
|
|
392
|
-
* silently shifting every fixed-offset field in that one line and
|
|
393
|
-
* corrupting its path (verified against real git output: a lone `M
|
|
394
|
-
* source.ts` line, meant to be ` M source.ts`, parses to the wrong path
|
|
395
|
-
* with a fixed `line.slice(3)` cut). Every v2 record instead starts with a
|
|
396
|
-
* digit or letter (`1`, `2`, `u`, `?`) that is never whitespace, so the
|
|
397
|
-
* SAME `.trim()` can never eat a leading field byte. NUL (`-z`) delimits
|
|
398
|
-
* every record and untracked/rename path field can safely contain a space,
|
|
399
|
-
* tab, or non-ASCII byte, mirroring previousPathIn's `-z` rationale
|
|
400
|
-
* elsewhere in this file. Record shapes actually seen here (verified
|
|
401
|
-
* against real git output; XY, sub, mode and hash fields are read
|
|
402
|
-
* positionally, never re-split by content, since a path can itself
|
|
403
|
-
* legitimately contain a space): `? path` (untracked); `1 XY sub mH mI mW
|
|
404
|
-
* hH hI path` (ordinary; 8 fixed fields before path); `2 XY sub mH mI mW
|
|
405
|
-
* hH hI score path\0origPath` (rename/copy; 9 fixed fields before path,
|
|
406
|
-
* origPath is the FOLLOWING NUL-delimited token verbatim); `u XY sub m1 m2
|
|
407
|
-
* m3 mW h1 h2 h3 path` (unmerged; 10 fixed fields before path) -- both
|
|
408
|
-
* sides of a rename count as dirty. `!` (ignored) records are never
|
|
409
|
-
* produced since `--ignored` is not passed.
|
|
410
|
-
*
|
|
411
|
-
* A failed git call (either one: `null`) makes the WHOLE state null, which
|
|
412
|
-
* every path then falls through on -- it keeps its ordinary commit-epoch
|
|
413
|
-
* verdict rather than this function inventing a dirty one. Unlike every
|
|
414
|
-
* other git failure in this file that is silent, this one is surfaced: the
|
|
415
|
-
* rule turns a null state into a single bundle-level "`--dirty-as-now` not
|
|
416
|
-
* applied" notice, because "the flag silently did nothing" and "nothing
|
|
417
|
-
* was dirty" are indistinguishable to a reader of an empty finding list.
|
|
359
|
+
* A failed git call (either one) makes the WHOLE state null: every path
|
|
360
|
+
* then keeps its ordinary commit-epoch verdict, and the rule surfaces that
|
|
361
|
+
* once as the bundle-level "`--dirty-as-now` not applied" notice, since
|
|
362
|
+
* "the flag silently did nothing" and "nothing was dirty" are otherwise
|
|
363
|
+
* indistinguishable to a reader of an empty finding list.
|
|
418
364
|
*/
|
|
419
|
-
function readDirtyState(git, repoRoot) {
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
const rawPrefix = git(["rev-parse", "--show-prefix"], repoRoot);
|
|
423
|
-
if (rawPrefix === null)
|
|
365
|
+
function readDirtyState(ctx, git, repoRoot) {
|
|
366
|
+
const prefix = getShowPrefixShared(ctx, git, repoRoot);
|
|
367
|
+
if (prefix === null)
|
|
424
368
|
return null;
|
|
425
|
-
const prefix = rawPrefix === "" ? "" : `${normalizeRelPath(rawPrefix)}/`;
|
|
426
369
|
const out = git([
|
|
427
370
|
"--no-optional-locks",
|
|
428
371
|
"status",
|
|
@@ -470,30 +413,19 @@ function readDirtyState(git, repoRoot) {
|
|
|
470
413
|
}
|
|
471
414
|
/**
|
|
472
415
|
* Canonicalizes a repo-relative path spelling before it is used as a dirty
|
|
473
|
-
* lookup key or matched against one: strips a leading
|
|
474
|
-
*
|
|
475
|
-
*
|
|
476
|
-
*
|
|
477
|
-
*
|
|
478
|
-
*
|
|
479
|
-
*
|
|
480
|
-
*
|
|
481
|
-
*
|
|
482
|
-
* at insertion into the dirty-paths Set, and in `isDirtyForShared` on the
|
|
483
|
-
* queried path already joined with the repo prefix), so any spelling of
|
|
484
|
-
* the same path always matches.
|
|
416
|
+
* lookup key or matched against one: strips a leading `./` and a trailing
|
|
417
|
+
* `/`, converts backslashes, and collapses `.`/`..` segments and duplicate
|
|
418
|
+
* slashes via `path.posix.normalize`. `git status` always reports canonical
|
|
419
|
+
* forward-slash paths, but a frontmatter-authored `sources` entry is under
|
|
420
|
+
* no such obligation: `./srcdir` and `srcdir/` name the same directory
|
|
421
|
+
* `srcdir` does and MUST match the same dirty entries (a raw `srcdir/`
|
|
422
|
+
* would build a self-defeating `srcdir//` prefix, a raw `./srcdir` never
|
|
423
|
+
* matches at all). Applied on BOTH sides of every dirty-path comparison in
|
|
424
|
+
* this file.
|
|
485
425
|
*
|
|
486
426
|
* `.`, `./` and the empty string all normalize to `.`, the root directory
|
|
487
|
-
* itself
|
|
488
|
-
*
|
|
489
|
-
* lookup -- see the `normalized === "."` branch there.
|
|
490
|
-
*
|
|
491
|
-
* A round-1-then-round-2 regression this closes: the per-run status
|
|
492
|
-
* refactor introduced exact-path (`paths.has`) and prefix (`startsWith`)
|
|
493
|
-
* matching against the RAW `source` string, so `srcdir/` built a
|
|
494
|
-
* self-defeating double-slash prefix (`srcdir//`) and `./srcdir` never
|
|
495
|
-
* matched a `git status` path at all (which never carries a `./` prefix) --
|
|
496
|
-
* both spellings silently lost dirty detection entirely.
|
|
427
|
+
* itself: a legal `sources` spelling but never a `git status` entry, so
|
|
428
|
+
* `isDirtyForShared` answers it by containment instead of by lookup.
|
|
497
429
|
*/
|
|
498
430
|
function normalizeRelPath(relPath) {
|
|
499
431
|
let p = relPath.replace(/\\/g, "/");
|
|
@@ -517,42 +449,31 @@ const dirtyStateCache = new WeakMap();
|
|
|
517
449
|
function getDirtyStateShared(ctx, git, repoRoot) {
|
|
518
450
|
if (dirtyStateCache.has(ctx))
|
|
519
451
|
return dirtyStateCache.get(ctx) ?? null;
|
|
520
|
-
const state = readDirtyState(git, repoRoot);
|
|
452
|
+
const state = readDirtyState(ctx, git, repoRoot);
|
|
521
453
|
dirtyStateCache.set(ctx, state);
|
|
522
454
|
return state;
|
|
523
455
|
}
|
|
524
456
|
/**
|
|
525
457
|
* Whether `relPath` (a `sources` entry OR a doc's own path relative to
|
|
526
458
|
* `ctx.repoRoot`, in any spelling `normalizeRelPath` accepts) is dirty per
|
|
527
|
-
* `git status`. The queried path is first
|
|
528
|
-
*
|
|
529
|
-
*
|
|
530
|
-
* dirty
|
|
531
|
-
*
|
|
532
|
-
*
|
|
533
|
-
*
|
|
534
|
-
* vs `srcdirX/x.ts` -- never falsely matches).
|
|
459
|
+
* `git status`. The queried path is first respelled in the top-level frame
|
|
460
|
+
* every reported entry uses (`toTopLevelPath`; a no-op when `--repo-root`
|
|
461
|
+
* IS the top level). A dirty FILE then matches by exact normalized path; a
|
|
462
|
+
* dirty DIRECTORY source matches if any reported path lives under it (a
|
|
463
|
+
* `/`-terminated prefix, so `srcdirX/x.ts` never matches `srcdir`). `.`
|
|
464
|
+
* names the root directory itself, which `git status` never reports as an
|
|
465
|
+
* entry, so it is matched by containment: any dirty path at all.
|
|
535
466
|
*
|
|
536
|
-
*
|
|
537
|
-
*
|
|
538
|
-
*
|
|
539
|
-
* "any dirty path at all lives under this root", the same containment
|
|
540
|
-
* question the directory case asks, just with an empty prefix. Without
|
|
541
|
-
* that branch a bundle declaring `.` as its source silently lost dirty
|
|
542
|
-
* detection entirely.
|
|
543
|
-
*
|
|
544
|
-
* A failed state read (`null`) is treated as "nothing is dirty": every
|
|
545
|
-
* path falls through to its ordinary (real) commit-epoch path rather than
|
|
546
|
-
* this function inventing a dirty verdict either way. The rule reports
|
|
547
|
-
* that case once, bundle-level, rather than letting the flag no-op in
|
|
548
|
-
* silence (see `readDirtyState`).
|
|
467
|
+
* A failed state read (`null`) is "nothing is dirty": every path keeps its
|
|
468
|
+
* ordinary commit-epoch verdict, and the rule reports the failure once at
|
|
469
|
+
* bundle level (see `readDirtyState`).
|
|
549
470
|
*/
|
|
550
471
|
function isDirtyForShared(ctx, git, repoRoot, relPath) {
|
|
551
472
|
const state = getDirtyStateShared(ctx, git, repoRoot);
|
|
552
473
|
if (state === null)
|
|
553
474
|
return false;
|
|
554
475
|
const { paths } = state;
|
|
555
|
-
const normalized = normalizeRelPath(
|
|
476
|
+
const normalized = normalizeRelPath(toTopLevelPath(state.prefix, relPath));
|
|
556
477
|
if (normalized === ".")
|
|
557
478
|
return paths.size > 0;
|
|
558
479
|
if (paths.has(normalized))
|
|
@@ -566,38 +487,71 @@ function isDirtyForShared(ctx, git, repoRoot, relPath) {
|
|
|
566
487
|
}
|
|
567
488
|
/**
|
|
568
489
|
* Per-run cache (keyed by `BundleContext`) of the SINGLE "now" instant
|
|
569
|
-
* `--dirty-as-now` substitutes for every dirty path's commit epoch,
|
|
570
|
-
*
|
|
571
|
-
* dirty path
|
|
572
|
-
* same virtual commit, so two dirty sources (or a dirty source and a dirty
|
|
573
|
-
* doc) never disagree with each other about what "now" was.
|
|
490
|
+
* `--dirty-as-now` substitutes for every dirty path's commit epoch, across
|
|
491
|
+
* BOTH rules and every doc/source they assess: one `check` run models every
|
|
492
|
+
* dirty path as landing in the same virtual commit.
|
|
574
493
|
*
|
|
575
|
-
* THE CACHE IS THE GUARANTEE, not the order the callers happen to run in
|
|
576
|
-
*
|
|
577
|
-
*
|
|
578
|
-
*
|
|
579
|
-
*
|
|
580
|
-
*
|
|
581
|
-
* (`
|
|
582
|
-
*
|
|
583
|
-
* would survive by accident -- but read in the other order (a reordering
|
|
584
|
-
* nothing in the rule forbids) the doc's side would be the older one, and
|
|
585
|
-
* a run that straddled a whole second would flip to a silent,
|
|
586
|
-
* unreproducible STALE. The cache removes the ordering question entirely:
|
|
587
|
-
* every dirty path in one run reads the identical integer, so the gate
|
|
588
|
-
* holds with equality no matter who asks first. Any future caller wanting
|
|
589
|
-
* "now" here must therefore go through this accessor rather than reading
|
|
590
|
-
* the clock again.
|
|
494
|
+
* THE CACHE IS THE GUARANTEE, not the order the callers happen to run in:
|
|
495
|
+
* the rescue gate is an INEQUALITY (`docCommitEpoch >= commitEpoch`) whose
|
|
496
|
+
* two sides are BOTH this value when a dirty doc is paired with a dirty
|
|
497
|
+
* source, and reading the clock afresh per side would let a second boundary
|
|
498
|
+
* between the two reads flip it into a silent, unreproducible STALE
|
|
499
|
+
* depending on which side asked first. The clock is read exactly ONCE per
|
|
500
|
+
* run (`ctx.now`, defaulting to `Date.now`, injectable so a test can pin
|
|
501
|
+
* that count); every caller wanting "now" goes through this accessor.
|
|
591
502
|
*/
|
|
592
503
|
const nowEpochCache = new WeakMap();
|
|
593
504
|
function getNowEpochShared(ctx) {
|
|
594
505
|
let epoch = nowEpochCache.get(ctx);
|
|
595
506
|
if (epoch === undefined) {
|
|
596
|
-
epoch = Math.floor(Date.now() / 1000);
|
|
507
|
+
epoch = Math.floor((ctx.now ?? Date.now)() / 1000);
|
|
597
508
|
nowEpochCache.set(ctx, epoch);
|
|
598
509
|
}
|
|
599
510
|
return epoch;
|
|
600
511
|
}
|
|
512
|
+
/**
|
|
513
|
+
* Per-run cache of `git rev-parse --show-prefix` for `repoRoot`: `""` when
|
|
514
|
+
* `repoRoot` IS the repository's top level, otherwise its path relative to
|
|
515
|
+
* the top level with a trailing slash (`sub/`, `a/b/`); `null` when git
|
|
516
|
+
* could not answer. Read at most once per run, and by everything in this
|
|
517
|
+
* file that has to speak in the TOP-LEVEL path frame.
|
|
518
|
+
*
|
|
519
|
+
* THE INVARIANT: every path this file receives is relative to `repoRoot`,
|
|
520
|
+
* but `git status` entries, `git diff-tree --name-status` entries and the
|
|
521
|
+
* `<rev>:<path>` blob spelling `git show` takes are all top-level-relative
|
|
522
|
+
* (a bare `<rev>:<path>` is NOT resolved against the cwd). The two frames
|
|
523
|
+
* coincide only when `--repo-root` names the top level. Under a
|
|
524
|
+
* `--repo-root` naming a SUBDIRECTORY, a root-relative path used in the
|
|
525
|
+
* top-level frame either matches nothing (a blob read fails, a dirty path
|
|
526
|
+
* never matches) or, worse, reads a SAME-NAMED file at the top level in
|
|
527
|
+
* the doc's place and judges the doc by a stranger's stamp. So every
|
|
528
|
+
* cross-frame step goes through `toTopLevelPath` with this prefix, never
|
|
529
|
+
* a bare path.
|
|
530
|
+
*/
|
|
531
|
+
const showPrefixCache = new WeakMap();
|
|
532
|
+
function getShowPrefixShared(ctx, git, repoRoot) {
|
|
533
|
+
if (showPrefixCache.has(ctx))
|
|
534
|
+
return showPrefixCache.get(ctx) ?? null;
|
|
535
|
+
// `""` (this IS the top level) is a valid answer; only an outright
|
|
536
|
+
// failure is null.
|
|
537
|
+
const raw = git(["rev-parse", "--show-prefix"], repoRoot);
|
|
538
|
+
const prefix = raw === null ? null : raw === "" ? "" : `${normalizeRelPath(raw)}/`;
|
|
539
|
+
showPrefixCache.set(ctx, prefix);
|
|
540
|
+
return prefix;
|
|
541
|
+
}
|
|
542
|
+
/** `rootRelPath` (relative to `repoRoot`) respelled in the top-level frame `showPrefix` (from `getShowPrefixShared`) describes. */
|
|
543
|
+
function toTopLevelPath(showPrefix, rootRelPath) {
|
|
544
|
+
return `${showPrefix}${rootRelPath}`;
|
|
545
|
+
}
|
|
546
|
+
/**
|
|
547
|
+
* THE one place a blob is read: `git show <rev>:<topLevelPath>`. The path
|
|
548
|
+
* MUST already be in the top-level frame (`toTopLevelPath`), see
|
|
549
|
+
* `getShowPrefixShared`. Null on any git failure, "no such path at that
|
|
550
|
+
* rev" included.
|
|
551
|
+
*/
|
|
552
|
+
function showBlob(git, repoRoot, rev, topLevelPath) {
|
|
553
|
+
return git(["show", `${rev}:${topLevelPath}`], repoRoot);
|
|
554
|
+
}
|
|
601
555
|
/**
|
|
602
556
|
* THE single choke point where `--dirty-as-now`'s virtual-commit model is
|
|
603
557
|
* applied: a dirty `relPath` (source or doc, see `isDirtyForShared`) is
|
|
@@ -642,13 +596,17 @@ function commitEpochWithDirtyAsNow(ctx, git, repoRoot, relPath, actualEpoch) {
|
|
|
642
596
|
* rather than being silently treated the same as "created". `git ls-tree`
|
|
643
597
|
* itself failing (an unborn HEAD, git unavailable) is likewise `unknown`.
|
|
644
598
|
*/
|
|
645
|
-
function dirtyDocRestampVerdict(git, repoRoot, repoRelDocPath, onDiskTimestamp) {
|
|
599
|
+
function dirtyDocRestampVerdict(git, repoRoot, repoRelDocPath, onDiskTimestamp, showPrefix) {
|
|
600
|
+
// A pathspec (`--`), cwd-relative: stays in the root-relative frame.
|
|
646
601
|
const treeEntry = git(["ls-tree", "-z", "HEAD", "--", repoRelDocPath], repoRoot);
|
|
647
602
|
if (treeEntry === null)
|
|
648
603
|
return "unknown";
|
|
649
604
|
if (treeEntry === "")
|
|
650
605
|
return "restamped";
|
|
651
|
-
const
|
|
606
|
+
const prefix = showPrefix();
|
|
607
|
+
if (prefix === null)
|
|
608
|
+
return "unknown";
|
|
609
|
+
const committed = showBlob(git, repoRoot, "HEAD", toTopLevelPath(prefix, repoRelDocPath));
|
|
652
610
|
if (committed === null)
|
|
653
611
|
return "unknown";
|
|
654
612
|
const committedStamp = getTimestampIdentity(parseFrontmatter(committed).frontmatter.parsed);
|
|
@@ -767,7 +725,7 @@ function isShallowRepoShared(ctx, git, repoRoot) {
|
|
|
767
725
|
* (skipped for a root commit), and 2 blob reads (skipped when the doc was
|
|
768
726
|
* created there). See the GIT PROCESS BUDGET comment in the rule above.
|
|
769
727
|
*/
|
|
770
|
-
function restampedByOwnLastCommit(git, repoRoot, repoRelDocPath, isShallowRepo) {
|
|
728
|
+
function restampedByOwnLastCommit(git, repoRoot, repoRelDocPath, isShallowRepo, showPrefix) {
|
|
771
729
|
// %H then %P on its own line: the doc's last commit and its parent list in
|
|
772
730
|
// ONE process. Default history simplification is exactly what this needs
|
|
773
731
|
// for a single path: a merge whose result for that path differs from every
|
|
@@ -794,15 +752,22 @@ function restampedByOwnLastCommit(git, repoRoot, repoRelDocPath, isShallowRepo)
|
|
|
794
752
|
return isShallowRepo() ? "unknown-shallow-root" : "restamped";
|
|
795
753
|
}
|
|
796
754
|
const firstParent = parents[0];
|
|
797
|
-
|
|
755
|
+
// From here on everything git reports or takes is in the top-level frame
|
|
756
|
+
// (see getShowPrefixShared): the diff-tree entries previousPathIn matches
|
|
757
|
+
// against, and both `<rev>:<path>` blob reads.
|
|
758
|
+
const prefix = showPrefix();
|
|
759
|
+
if (prefix === null)
|
|
760
|
+
return "unknown";
|
|
761
|
+
const topLevelDocPath = toTopLevelPath(prefix, repoRelDocPath);
|
|
762
|
+
const previous = previousPathIn(git, repoRoot, firstParent, sha, topLevelDocPath);
|
|
798
763
|
if (previous.kind === "unknown")
|
|
799
764
|
return "unknown";
|
|
800
765
|
if (previous.kind === "created")
|
|
801
766
|
return "restamped";
|
|
802
|
-
const current = git
|
|
767
|
+
const current = showBlob(git, repoRoot, sha, topLevelDocPath);
|
|
803
768
|
if (current === null)
|
|
804
769
|
return "unknown";
|
|
805
|
-
const before = git
|
|
770
|
+
const before = showBlob(git, repoRoot, firstParent, previous.path);
|
|
806
771
|
if (before === null)
|
|
807
772
|
return "unknown";
|
|
808
773
|
const currentStamp = getTimestampIdentity(parseFrontmatter(current).frontmatter.parsed);
|
|
@@ -815,6 +780,8 @@ function restampedByOwnLastCommit(git, repoRoot, repoRelDocPath, isShallowRepo)
|
|
|
815
780
|
* Where the doc lived in `parentSha`, so its previous revision can be read
|
|
816
781
|
* by that path: the same path (`same`), a different one it was renamed from
|
|
817
782
|
* (`renamed`), or nowhere at all because that commit created it (`created`).
|
|
783
|
+
* `topLevelDocPath` and every returned path are in the top-level frame,
|
|
784
|
+
* the one `diff-tree --name-status` reports in (see getShowPrefixShared).
|
|
818
785
|
*
|
|
819
786
|
* Runs `git diff-tree` WITHOUT a pathspec on purpose. A pathspec is applied
|
|
820
787
|
* BEFORE rename detection, so `git diff-tree -M --name-status <parent> <sha>
|
|
@@ -835,7 +802,7 @@ function restampedByOwnLastCommit(git, repoRoot, repoRelDocPath, isShallowRepo)
|
|
|
835
802
|
* `--name-status` output C-QUOTES any path containing a non-ASCII byte
|
|
836
803
|
* (`core.quotePath` defaults to true) as a double-quoted string with octal
|
|
837
804
|
* escapes (e.g. `"bundle/\303\266lt.md"` for `bundle/ölt.md`), so a plain
|
|
838
|
-
* `
|
|
805
|
+
* `topLevelDocPath` never string-equals that quoted form and a non-ASCII doc
|
|
839
806
|
* falls through every branch below to the `same` fallback, which returns
|
|
840
807
|
* the doc's real (unquoted) CURRENT path unchanged. When that commit was
|
|
841
808
|
* actually a rename or creation, the doc was NOT at that path in the first
|
|
@@ -848,7 +815,7 @@ function restampedByOwnLastCommit(git, repoRoot, repoRelDocPath, isShallowRepo)
|
|
|
848
815
|
* override this rule would otherwise have to remember on every git
|
|
849
816
|
* invocation touching a path, not just this one).
|
|
850
817
|
*/
|
|
851
|
-
function previousPathIn(git, repoRoot, parentSha, sha,
|
|
818
|
+
function previousPathIn(git, repoRoot, parentSha, sha, topLevelDocPath) {
|
|
852
819
|
const nameStatus = git([
|
|
853
820
|
"diff-tree",
|
|
854
821
|
"-r",
|
|
@@ -878,19 +845,19 @@ function previousPathIn(git, repoRoot, parentSha, sha, repoRelDocPath) {
|
|
|
878
845
|
const oldPath = tokens[i + 1];
|
|
879
846
|
const newPath = tokens[i + 2];
|
|
880
847
|
i += 3;
|
|
881
|
-
if (newPath ===
|
|
848
|
+
if (newPath === topLevelDocPath) {
|
|
882
849
|
return { kind: "renamed", path: oldPath };
|
|
883
850
|
}
|
|
884
851
|
continue;
|
|
885
852
|
}
|
|
886
853
|
const p = tokens[i + 1];
|
|
887
854
|
i += 2;
|
|
888
|
-
if (p !==
|
|
855
|
+
if (p !== topLevelDocPath)
|
|
889
856
|
continue;
|
|
890
857
|
if (status.startsWith("A"))
|
|
891
858
|
return { kind: "created" };
|
|
892
|
-
return { kind: "same", path:
|
|
859
|
+
return { kind: "same", path: topLevelDocPath };
|
|
893
860
|
}
|
|
894
|
-
return { kind: "same", path:
|
|
861
|
+
return { kind: "same", path: topLevelDocPath };
|
|
895
862
|
}
|
|
896
863
|
//# sourceMappingURL=sources-fresh.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sources-fresh.js","sourceRoot":"","sources":["../../src/rules/sources-fresh.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sources-fresh.js","sourceRoot":"","sources":["../../src/rules/sources-fresh.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -98,6 +98,14 @@ export interface BundleContext {
|
|
|
98
98
|
* byte-identical to behavior before this option existed.
|
|
99
99
|
*/
|
|
100
100
|
dirtyAsNow?: boolean;
|
|
101
|
+
/**
|
|
102
|
+
* Clock for `--dirty-as-now`'s virtual-commit instant, in milliseconds
|
|
103
|
+
* since the epoch like `Date.now` (the default when undefined). Read
|
|
104
|
+
* exactly ONCE per `check` run (`getNowEpochShared` in
|
|
105
|
+
* `src/rules/sources-fresh.ts`); injectable so a test can pin that count
|
|
106
|
+
* and the shared value rather than racing the wall clock.
|
|
107
|
+
*/
|
|
108
|
+
now?: () => number;
|
|
101
109
|
}
|
|
102
110
|
export interface Rule {
|
|
103
111
|
id: string;
|