Repository navigation
deps(wallet): one gonuts pin, every carrier — unbreaks the root module build - #1182
felixfelix-bot wants to merge 2 commits into
Conversation
PR OpenTollGate#1142 moved only src/tollwallet/go.mod to the ae77396240a2 integration pseudo-version (the gonuts-tollgate#45 isNetworkError(EOF) fix) and left packaging/build-inputs.json at v0.14.1. That is the OpenTollGate#791 drift shape, and it is not cosmetic: * tests/contract/check-gonuts-pin.py refuses (1 of 5 carriers); * tests/contract/check-deps-sync.py reports gonuts in 2 versions; * `cd src && go build ./...` fails on main's root module with "updates to go.mod needed" — the module graph no longer resolves, because tollwallet requires the new pseudo-version while the root module still asks for v0.14.1. Bump the manifest and all five carriers to the same pseudo-version and tidy each module's sums, which also drops two stale go.sum fragments: the v0.14.1 pair (superseded) and v0.15.1-0.20261030003228-d6b9e39c686a, a version no go.mod in the tree names. Pseudo-version, not v0.15.0: the fork's newest tag does not carry the fix (isNetworkError in v0.15.0 still has no io.EOF arm), and gonuts-tollgate#45 is still open. This is the AGENTS.md branch pin that must be retired once OpenTollGate#45 lands and tags. Verified: check-gonuts-pin.py -> 0 (5 carriers, one pin) gonuts-pin_test.sh -> 7 cases, 0 failed check-deps-sync.py -> gonuts drift gone; the 8 residual entries are byte-identical to the parent commit's pre-existing set cd src && go build ./... -> 0 (was 1 before this commit) go vet ./... -> 0 tollwallet suite, same harness, parent vs this commit: parent 83 pass / 4 fail / 3 skip head 84 pass / 4 fail / 3 skip failure set byte-identical (TestV2Keyset_* pre-existing)
A dependency-pin bump is a contract-governed fact change and the repo asks for a fragment whenever it changes operator-visible build inputs (OpenTollGate#1175 does the same for its bump). Without one, the change would land with no changelog record of why the pin moved.
|
Added the changelog fragment the repo asks for on a contract-governed pin change (#1175 carries one for its bump): Verification re-run on this branch at
The 4 failures are byte-identical to base ( Note the two |
Review — PR #1182, head
|
Review — PR #1182, head
|
|
With #1175 now reviewed as the correct pin bump ( My review of #1175 has the detail; the short version:
So this is a fallback, not a competitor: it is the fix for #1142's pin if #1142 is the one that lands. If #1175 merges first, close this and #1142 needs a rebase onto the new pin rather than a second way to bump it. Leaving it open so #1142 is not left with a known-broken build, but say the word and I will close it. |
Amperstrand
left a comment
There was a problem hiding this comment.
Reviewed against the pin doctrine — this is the right fix for its base branch: the one-pin-everywhere rule (#791) exists precisely because a half-updated carrier breaks the root module build via the tollwallet replace, exactly as demonstrated. The pseudo-version pin itself is the sanctioned #771 integration pattern (branch-only, must not outlive its tag on main).
One planning note: once #1193 merges (main → v0.16.0 — a real tag carrying the entire #59 program, including the stale-mint/EOF handling this branch builds on via #45's lineage), this branch should rebase onto main and drop the pseudo-version in favor of v0.16.0 through scripts/bump-gonuts.sh — the script rewrites manifest + every carrier in one run so this half-update class cannot recur.
Local CI gate — PR #1182: deps(wallet): one gonuts pin, every carrier — unbreaks the root module buildRun of
Verdict: 5 leg(s) RED — 1 green. What this gate does not run (no vacuous green)
failing-leg log tailscontract-fences — tailpackaging-sequential — tailshell-suites — tailpackaging-concurrent — tailgo-battery — tail |
Stacked on
fix/stale-mint-resilience(base is your branch, notmain). Mechanical follow-up to the pin half-update raised in review — merge, cherry-pick, or ignore, whatever suits your workflow.What
src/tollwallet/go.modmoves tov0.14.2-0.20261030003712-ae77396240a2, butpackaging/build-inputs.json(.gonuts.version, the declared single source of truth) and the other four carriers stay atv0.14.1. AGENTS.md requires one pin everywhere, discovered by glob.The consequence is not a lint nit — the root module stops building:
Because
src/go.modhasreplace …/tollwallet => ./tollwallet, it now inherits a gonuts requirement that disagrees with its owngo.mod. The same failure hits the two release lanes inbuild-package.yml(go build -C src …,go build -C src/cmd/tollgate-cli …) and themain package (testenv)lane intest.yml.Change
One commit, dependency metadata only — no Go source touched:
.gonuts.versionand all five carriers (scripts/token-recovery,src/cli,src,src/merchant,src/tollwallet) → the same pseudo-version;go mod tidyper module, which also drops two stalego.sumfragments fromsrc/tollwallet/go.sum: the supersededv0.14.1pair, and av0.15.1-0.20261030003228-d6b9e39c686apair that nogo.modin the tree names (probably carry-over from another branch — worth a look, see below).I did not use
scripts/bump-gonuts.shverbatim: it refuses pseudo-versions by design (^v[0-9]+\.[0-9]+\.[0-9]+$), and the#771note in its own header says pseudo-version integration pins are a hand-edit-on-branch pattern. The result is what the script would produce modulo that restriction.Verification
The 4 pre-existing
TestV2Keyset_*failures are unchanged by this commit (identical set at base, at your head, and here) — they belong to #1162.Not in this PR
The two review blockers I did not touch, because both need your decision:
New()/Shutdown()givescounter=2,proofs=1), so this is a coverage gap, not a bug.acceptedMints[0](==CurrentMintURL), gonuts' offline early-return leavesisErrtrue and closes the DB of the wallet it returned — soNew()now succeeds with zero registered mints and an empty balance map, where base refused loudly with the production error. Full reproducer and two suggested closes are on test(tollwallet): tolerate an unreachable stored mint at startup #1142.Sequencing
gonuts-tollgate#45is still open andv0.15.0does not carry the fix (wallet/offline.goat that tag still has noio.EOFarm), so this pin cannot become a tag today. Once #45 lands and is tagged, this pin should be re-pointed — and it collides with #1151 and #1175, which move the same five carriers.