Skip to content

Harden the publishing chain against tag/sibling-ref skew #26

Description

@bdbarnett

publishing-v7 shipped a macOS wheel matrix that never ran: the top-level reusable-publish-release-packages.yml pins its sibling workflows by tag (@publishing-v6 at the time), so the v7 tag's own wheel-builder file was unreferenced. audioif v0.1.0 burned its tag on the resulting 16-vs-21 wheel-count failure (run 33392558969). publishing-v8 fixed it by bumping all four internal refs in lockstep — but the failure class remains.

Two hardening options, either or both:

  1. Nested local references. Replace the internal PyDevices/.github/.github/workflows/X.yml@publishing-vN calls with ./.github/workflows/X.yml — nested reusable workflows called by local path resolve at the caller's own ref, so a tag is self-consistent by construction and cutting publishing-vN+1 becomes a tag with zero ref edits. (Verify GitHub's nested-local support meets our permission/secret inheritance needs before switching.)
  2. Self-asserting matrix. The wheel-builder should assert its own expected cell count (or the reusable workflow derive expected-wheel-count from the matrix × python-versions) instead of trusting the caller's literal — a consumer that re-pins without updating its count currently gets either a silent shortfall (count unchanged) or a burned tag (count raised, as audioif proved).

Origin: audioif 0.1.0 release failure, 2026-08-31.

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

    housekeepingThe 2026-09-22 sweep: workable from a desk, a build, or a board here

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions