nagonag: detect real major updates (v1→v2, v2→v3, …) via path-incremented probes #2
Labels
No labels
mod-nag
mod-nag
mod-nag
mod-nag
mod-nag/ignore
mod-nag/ignore
mod-nag/ignore
mod-nag/ignore
nagonag
nagonag/ignore
bug
doc
duplicate
enhancement
help wanted
invalid
question
security
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
IUS/workflows#2
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Current behaviour
The major-update detection in the "Detect module updates" step compares the leading numeric segment of
.Versionand.Update.Version(both stripped ofv), and creates a[nagonag] major update: …issue when they differ.Because
go list -m -u <modpath>only reports upgrades within the same import path, and v2+ Go modules carry their major version in the path (github.com/foo/bar/v2),.Update.Versionwill never cross a real major boundary for modules at v1+. The current comparison therefore only catches v0 → v1 transitions (where the import path doesn't change). True v1→v2, v2→v3, etc. upgrades are silently missed.What we'd like
For each direct dependency
Mat current majorvN, also probe whetherM/v(N+1),M/v(N+2), … exist on the configuredGOPROXY. If a higher-major module path resolves, flag it as a major update needing manual attention, just like the current code does for v0→v1.Sketch of the approach
go list -m -u -json all(the same set the detect step already iterates):Nfrom the module path (.../vNsuffix, or implicitv0/v1if no suffix).GET $GOPROXY/<path>/v(N+1)/@latest(and possibly +2, +3 with a small upper bound, e.g. 5 steps).(path, v(N+1))as a major-update candidate.[nagonag] major update: <path> <current> -> v(N+1).x.y (<branch>)Considerations / tradeoffs
GOPRIVATE/GOPROXY=offfor some modules) — probes have to honour those settings or be skipped silently for affected paths.v2+ from a branch without a path bump (technically incorrect, but common in v0.x → v1.x territory). Those would 404 on the probe and stay invisible — same as today.Out of scope (for now)
AI attribution comment added per repository instruction for this open issue.\n\n(co)authored by ai:gpt-5-codex