You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ci.yml's sc-sha-go bundle job (staging the self-contained Go module bundle
for release/CI) calls a subcommand, stage-go-native-module, that no longer
exists anywhere in .github/scripts/release_artifacts.py. Every invocation of
this job fails at the "Stage the self-contained Go module bundle" step with:
Commit 71b9d7f ("feat: cut over sc-compose to sc-publish") wholesale-replaced release_artifacts.py with a new implementation as part of the Phase Q
sc-publish migration. stage-go-native-module (added in fe2614d, Phase P.2 —
Go module distribution) was never carried forward or replaced with an
equivalent in the new script.
This has been silently broken since that cutover. It was masked by an
unrelated bug (CI-INFRA-001: ci.yml's sc-sha-go-plan step called a
different renamed-away subcommand, go-native-target-matrix, which silently
produced an empty target_matrix output via a swallowed command-substitution
failure under set -euo pipefail). With an empty matrix, the sc-sha-go job's strategy.matrix had zero entries, so it never scheduled any jobs at all —
hiding the stage-go-native-module breakage underneath it.
PR #582 fixed CI-INFRA-001 (renamed go-native-target-matrix -> release-target-matrix, matching the pattern already used correctly in release.yml). That fix is correct and un-masked this second, independent bug:
the matrix now populates 5 real target entries, all 5 sc-sha Go bundle jobs
run, and all 5 fail at the staging step above.
Impact
sc-sha-go bundle job (native Go module staging + bundled conformance
tests + independent consumer-module test + release-layout contract checks)
has been non-functional CI coverage since the Phase Q cutover.
No functional impact on release artifacts already published (this is a CI
verification gap, not a demonstrated bad release), but it means Go-binding
native bundles have not had CI verification in this window.
sc-sha-go job's name: field references matrix.goos/matrix.goarch,
fields that don't exist in either the old or new matrix output (real fields
are target/os/archive) -- job names render as sc-sha Go bundle (/).
Pre-existing, unrelated to the above; worth fixing in the same pass.
Proposed remediation (for planning, not immediate execution)
Determine whether sc-publish (the canonical release tool this repo
migrated to) has an equivalent Go-native-module staging capability that
should be vendored/wrapped here, or whether this staging logic needs to be
reimplemented directly in release_artifacts.py.
Restore a stage-go-native-module-equivalent subcommand with the same
input contract (--manifest, --target, --native-library, --output, --version) currently expected by ci.yml:400-405, or update ci.yml to
match whatever the correct current contract is.
Fix the sc-sha-go job's name: field to use matrix.os/matrix.archive
(or matrix.target) instead of the nonexistent matrix.goos/matrix.goarch.
Verify end-to-end: matrix populates, staging succeeds, bundled Go
conformance tests + independent consumer module + release-layout contract
checks all pass on all 5 targets.
Summary
ci.yml'ssc-sha-gobundle job (staging the self-contained Go module bundlefor release/CI) calls a subcommand,
stage-go-native-module, that no longerexists anywhere in
.github/scripts/release_artifacts.py. Every invocation ofthis job fails at the "Stage the self-contained Go module bundle" step with:
Root cause
Commit
71b9d7f("feat: cut over sc-compose to sc-publish") wholesale-replacedrelease_artifacts.pywith a new implementation as part of the Phase Qsc-publish migration.
stage-go-native-module(added infe2614d, Phase P.2 —Go module distribution) was never carried forward or replaced with an
equivalent in the new script.
This has been silently broken since that cutover. It was masked by an
unrelated bug (CI-INFRA-001:
ci.yml'ssc-sha-go-planstep called adifferent renamed-away subcommand,
go-native-target-matrix, which silentlyproduced an empty
target_matrixoutput via a swallowed command-substitutionfailure under
set -euo pipefail). With an empty matrix, thesc-sha-gojob'sstrategy.matrixhad zero entries, so it never scheduled any jobs at all —hiding the
stage-go-native-modulebreakage underneath it.PR #582 fixed CI-INFRA-001 (renamed
go-native-target-matrix->release-target-matrix, matching the pattern already used correctly inrelease.yml). That fix is correct and un-masked this second, independent bug:the matrix now populates 5 real target entries, all 5
sc-sha Go bundlejobsrun, and all 5 fail at the staging step above.
Impact
sc-sha-gobundle job (native Go module staging + bundled conformancetests + independent consumer-module test + release-layout contract checks)
has been non-functional CI coverage since the Phase Q cutover.
verification gap, not a demonstrated bad release), but it means Go-binding
native bundles have not had CI verification in this window.
fix/ci-go-native-target-matrix) from going fully green;fix(ci): stale subcommand rename breaks sc-sha-go matrix job #582 is being held open rather than merged with red CI, per standing policy.
Also noted (cosmetic, same job)
sc-sha-gojob'sname:field referencesmatrix.goos/matrix.goarch,fields that don't exist in either the old or new matrix output (real fields
are
target/os/archive) -- job names render assc-sha Go bundle (/).Pre-existing, unrelated to the above; worth fixing in the same pass.
Proposed remediation (for planning, not immediate execution)
sc-publish(the canonical release tool this repomigrated to) has an equivalent Go-native-module staging capability that
should be vendored/wrapped here, or whether this staging logic needs to be
reimplemented directly in
release_artifacts.py.stage-go-native-module-equivalent subcommand with the sameinput contract (
--manifest,--target,--native-library,--output,--version) currently expected byci.yml:400-405, or updateci.ymltomatch whatever the correct current contract is.
sc-sha-gojob'sname:field to usematrix.os/matrix.archive(or
matrix.target) instead of the nonexistentmatrix.goos/matrix.goarch.conformance tests + independent consumer module + release-layout contract
checks all pass on all 5 targets.
References
.github/workflows/ci.yml(sc-sha-go-plan,sc-sha-gojobs).github/scripts/release_artifacts.pyfix/ci-go-native-target-matrix)71b9d7f(sc-publish cutover, dropped the subcommand)fe2614d/ PR Phase P: Go module distribution and handoff (P.2) #515 (Phase P.2, added the original subcommand)