Exclude metadata informer compatibility test - #35
Conversation
There was a problem hiding this comment.
Review summary
Scoped, low-risk change with three coordinated parts:
cancel-in-progress: false→truein the compatibility workflow's concurrency block.- Adds
k8s.io/client-go/metadata/metadatainformerto theclient_goexclude list inprojects.toml. - Regenerated
benchmarks-llgo-compatibility.toml(theDO NOT EDITgenerated manifest).
Correctness verified: the regenerated manifest is consistent with the exclude change — metadatainformer is absent, the 45 client_go entries shift up by one, transport/websocket is pulled in at client_go_045, and the total stays at 200 with no duplicate names/repos. The event_name segment of the concurrency group key structurally prevents a pull_request run from ever cancelling a trusted repository_dispatch release run, so there is no security concern with the cancellation change.
Two non-blocking items are noted inline. Nothing here blocks merge.
Worth confirming before merge: since the generator only checks eligibility (has tests, not main/cgo/etc.) and not baseline pass/fail, please confirm the newly-promoted client_go_045 = k8s.io/client-go/transport/websocket actually passes the Go baseline, so this swap doesn't trade one known failure for a fresh one.
| group: llgo-open-source-compatibility-${{ github.event_name }}-${{ github.event.pull_request.number || 'release' }} | ||
| cancel-in-progress: false | ||
| # A lost hosted runner must not block the next release or targeted rerun. | ||
| cancel-in-progress: true |
There was a problem hiding this comment.
Both repository_dispatch types (llgo-tag-released and llgo-compatibility-rerun) collapse to the single 'release' fallback in the group key, and both share event_name = repository_dispatch. With cancel-in-progress: true, this means two legitimate back-to-back dispatches now cancel each other — e.g. a fresh tag release can abort an in-flight release for a different tag (a run with timeout-minutes: 180), and a rerun and a release can preempt one another. Because the publish step keys per-tag/commit, a cancelled run leaves a permanent gap in the compatibility history for that tag rather than just a delayed run.
This is safe with respect to PRs (the event_name segment keeps PR runs in a separate group, so fork PRs cannot cancel release runs) and matches the stated intent of freeing a stuck runner. But it is broader than the PR case. If preserving each legitimate release/rerun matters, consider making the group key release-specific by incorporating github.event.client_payload.llgo_tag || github.event.client_payload.llgo_commit (and/or github.event.action), so only redundant work for the same tag is cancelled. Otherwise, this is a reasonable trade-off worth confirming as a conscious decision.
| "k8s.io/client-go/discovery/cached/memory", | ||
| "k8s.io/client-go/dynamic/dynamicinformer", | ||
| "k8s.io/client-go/kubernetes_test", | ||
| "k8s.io/client-go/metadata/metadatainformer", |
There was a problem hiding this comment.
The shared comment above this exclude block states these packages "failed the Go baseline or LLGo dependency discovery in the first full hosted run." The new metadatainformer entry inherits that rationale by placement. Please confirm it actually hit one of those two failure modes (rather than, e.g., a runner-heavy/timeout reason like the ones documented separately for other projects); if the reason differs, update the comment so the stated rationale still describes every entry.
The deterministic compatibility log identified
k8s.io/client-go/metadata/metadatainformeras the active package when the hosted runner terminated with exit 143 after more than five minutes in that compile.This change:
k8s.io/client-go/transport/websocketValidation:
go test ./cmd/bentpython3 -m unittest discover -s ci/llgo-compatibility -p "test_*.py"bash -n ci/llgo-compatibility/run.shgit diff --check