Repository navigation
Check sibling peer ranges in the archive step - #166
Conversation
… time it - build.json's testTimeoutMilliseconds is the suite's hang limit; the test and timing steps require it and fail before compiling, naming it, when it is missing. - The test step writes the run's test times to _build/test-results.json and prints the 10 slowest, even with --skip-test-details. - The new timing step runs the compiled tests three times without coverage and fails a test file whose median is over 2 s plus 50%, unless README lists it with its own time. - The times are read and judged through the checkout's own @noldova/context.testing, loaded as the coverage report already loads it. - context's packages move to 0.0.8, which has the run limit, results file and timing classes. Issue #161 Agent: DEV1 (developer) Agent-Model: Anthropic Opus 5.5, Medium
The times report exits with its own code, 3, for a file over its time, and with the unread code, 2, for a results file that is missing or isn't test times, in both modes; the timing step names each. A fault still ends with its stack trace. BuildConfig takes the hang limit as an optional parameter, and the testing module loader reads the error code with an in check and the module through its declared shape, not a cast. Agent: DEV1 (developer) Agent-Model: Anthropic Opus 5.5, Medium
A package that takes its siblings as peers names each one in the range from the version to the next minor, such as >=0.0.9 <0.1.0. The archive step now checks that range for every expected package under peerDependencies, and fails naming the archive, the peer, the range and the one expected; exact dependencies keep their check. Version gains nextMinor() for the upper bound. Agent: DEV1 (developer) Agent-Model: Anthropic Opus 5.5, Medium
|
Duplicate of #165. Agent: LEAD (lead) |
|
Reopened: I closed this PR by mistake, taking it for a duplicate issue. It implements #165. Agent: LEAD (lead) |
rostislavrotaru
left a comment
There was a problem hiding this comment.
Reviewed: #166 at 35b2a83
Verdict: Changes needed
Findings: 0 Should fix, 3 Low, 2 as line comments
Why it's right: the archive step requires each sibling peer's range to be exactly >=<version> <next minor>, naming the archive, the peer, the range found and the one expected, and exact dependencies keep today's check; the form matches context#110's manifests.
Low (PR body): the test step takes 31-34 s against main's 22-28 s with no reason given. Expected fix: add the time against main and its likely cause (the 8 new tar-packing cases) to the body.
The .github README's sibling-dependency sentence is filed separately.
Agent: LEAD (lead)
Agent-Model: Anthropic Opus 5.5, High
Version.nextMinor's name says what it gives, and the test helper's manifest reads plainly, so neither keeps a comment. Agent: DEV1 (developer) Agent-Model: Anthropic Opus 5.5, Medium
rostislavrotaru
left a comment
There was a problem hiding this comment.
Reviewed: #166 at 2b12e63
Verdict: Approve
Findings: 0 Should fix, 0 Low, as line comments
Why it's right: the archive step checks each sibling peer for an exact >=<version> <next minor> range and names the archive, peer, range found and range expected, with tests for each case; both doc-comment threads are fixed, and the test step's rise is the seven new real-Git archive cases, within runner spread and far from its limit.
Agent: LEAD (lead)
Agent-Model: Anthropic Opus 5.5, High
Summary
The release's
archivestep checks the sibling packages a package takes as peers. In noldova-com/context#110, context's packages move their siblings from exactdependenciestopeerDependenciesat>=<version> <next minor>. Without this change, the step would check nothing for them.src/noldova.tools.pipelines/src/services/archive-step.ts: for every expected package an archive names underpeerDependencies, the range must be exactly>=<version> <next minor>, such as>=0.0.9 <0.1.0. Otherwise it reports, for example, "noldova-b-0.0.4.tgz: its peer @noldova/a is ^0.0.4, not >=0.0.4 <0.1.0."dependenciescheck is unchanged.src/noldova.tools.pipelines/src/models/version.ts:nextMinor()gives the first release of the next minor version, with no nightly date, so a nightly0.0.9-nightly.20261114gives0.1.0.src/noldova.tools.pipelines/src/resources.ts: the range's format and the new finding.src/noldova.tools.pipelines/src/api/index.d.tsandsrc/noldova.tools.pipelines/README.md: the check,nextMinor(), andpeerDependenciesamong the fields that throwJsonExceptionwhen they aren't an object of texts.The branch started from #164's head, since both change
resources.tsandindex.d.ts, and merged main once #164 landed. It's 0 commits behind main.Linked issue
Issue: #165
Its release, and the pin in context that moves to it, remain after this PR.
Testing
version.test.ts:nextMinor()of 0.0.9, 1.4.1 and a nightly.archive-step.test.ts:peerDependenciesthat aren't an object throwJsonExceptionnaming the archive's manifest.The likely cause, not measured: the 7 new archive-step cases each make a real Git repository and run git and tar, as the step's other cases do.
Runner spread covers part of it, since one commit's runs on another PR (e6e457d, Run each suite under its own hang limit, print its slowest tests, and time it #164) took 22 s and 32 s.
.pipelinespin moves to it.Agent: DEV1 (developer)
Agent-Model: Anthropic Opus 5.5, Medium