Skip to content

ci: sc-sha-go bundle job calls removed stage-go-native-module subcommand (dropped in sc-publish cutover) #583

Description

@randlee

Summary

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:

release_artifacts.py: error: argument cmd: invalid choice: 'stage-go-native-module'
(choose from validate-manifest, validate-publish-order, list-publish-plan,
python-wheel-matrix, python-sdist-matrix, build-plan, release-asset-patterns,
release-target-matrix, release-package-config, channel-config,
channel-dispatch-plan, preflight-secret-plan, channel-preflight-results,
public-registry-check-plan, public-registry-inquiry-plan, registry-status,
verify-python-release-assets, verify-version, verify-python-version,
verify-version-lockstep, sync-python-version, verify-readme-version,
sync-readme-version, cargo-build-bin-args, check-version-unpublished)

Root cause

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.
  • Blocks PR fix(ci): stale subcommand rename breaks sc-sha-go matrix job #582 (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-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)

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. Only then merge PR fix(ci): stale subcommand rename breaks sc-sha-go matrix job #582 (or a follow-up PR carrying both fixes).

References

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions