Repository navigation
ci: let go-mod-check fail, and tidy what slipped through - #603
Conversation
The CI workflow ran `just go-mod` in its Deps step, before `just test`. That recipe downloads and then tidies, so by the time go-mod-check ran inside `just test` there was nothing left for it to find. Every green run has meant "CI tidied this for us" rather than "the modules are tidy", and because the tidy is never committed, the untidy state merges anyway. osapi is the only repository in the organization that does this. gohai, nats-client, nats-server and osapi-orchestrator run `just go-deps` and nothing else, which is why the same otel 1.47 bump failed in nats-client and passed on all four pull requests here. Removing the step is safe: `just go-deps` already provides what the test recipes need, as it does in the other four, and go-mod-check runs `go mod tidy -diff`, which works there without it. With the step gone the check names what #598 left behind: untidy: examples/sdk/client run 'just go-mod' and commit the result Dependabot bumps the root go.mod and stops, so that example module still required otel 1.46 as an indirect. Tidied here. otel 1.47 also introduces otel/log, which enters its indirect block. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FuKUsHFG1EqZXamffh9M2c
|
Swept every workflow in the organization to confirm osapi is the only one, since the same mistake elsewhere would be invisible the same way. 61 workflow files across all 8 non-archived repositories ( One hit, the line this PR removes. Every other repository runs only
So nothing else needs changing. The shared justfile already said this
The check was built to report rather than repair. osapi's workflow put the repairer in front of it, which is the one way to defeat that design. CI should run against what is committed, and for the four other repositories it does. |
Codecov Report✅ All modified and coverable lines are covered by tests. @@ Coverage Diff @@
## main #603 +/- ##
=======================================
Coverage 99.95% 99.95%
=======================================
Files 501 501
Lines 24099 24099
=======================================
Hits 24089 24089
Misses 10 10 Continue to review full report in Codecov by Harness.
🚀 New features to boost your workflow:
|
Found while merging the otel 1.47 Dependabot PRs.
go-mod-checkhas never been able to fail in this repository.The CI step cancels the check
just go-modis "download + tidy", and it runs beforejust test. By the timego-mod-checkexecutes there is nothing left to find. Every green run has meant "CI tidied this for us", not "the modules are tidy" — and since the tidy is never committed, the untidy state merges to main regardless.osapi is the only repository in the organization that does this:
That difference is exactly why the identical otel 1.47 bump failed in osapi-io/nats-client#172 and passed on all four PRs here.
What slipped through
#598 merged green and left
examples/sdk/clientuntidy on main. Dependabot bumps the rootgo.modand stops; that example module has its own and still required otel 1.46 as an indirect.With the step removed the check names it immediately, which is how I found it:
Tidied here. otel 1.47 also introduces
otel/log, which enters that module's indirect block.Why removing it is safe
just go-depsalready pulls what the test recipes need, which is how the other four repositories work.go-mod-checkitself runsgo mod tidy -diff, which needs a populated module cache, and that works in all four of them withoutjust go-mod.just testpasses, coverage 100%.Dependabot state, for the record
@dependabot recreaterequested.main is partially bumped:
otel,metricandtraceat 1.47 whileotlptrace,otlptracegrpc,sdk,sdk/metricandstdouttraceare still 1.46. That is #599's job and blocks nothing.🤖 Generated with Claude Code
https://claude.ai/code/session_01FuKUsHFG1EqZXamffh9M2c