From 1f0594d304709062036485a96942d66d8846fc55 Mon Sep 17 00:00:00 2001 From: Brad Barnett <127794626+bdbarnett@users.noreply.github.com> Date: Mon, 21 Sep 2026 21:15:28 -0500 Subject: [PATCH] The publishing chain calls its own siblings by local path reusable-publish-release-packages pinned its four sibling workflows by tag, so a publishing-vN tag did not contain the workflows it ran. publishing-v7 shipped a macOS wheel matrix that never executed and audioif v0.1.0 burned its tag on the resulting wheel-count failure. The class is live right now: publishing-v9 exists and is in use, and its own copy of this file still names @publishing-v8, so a consumer on v9 gets v8's builders. A local `./` reference resolves against the repository and ref of the file that contains it, so the siblings now come from whatever tag the consumer called, and cutting publishing-vN+1 is a tag with no ref edits. Verified against real runs before making the change, because the repository's own CI only lints YAML and would go green either way. A probe reusable workflow in this repository, tagged, calling a sibling by `./`, was called from PyDevices.github.io -- which has no workflows of its own, so a reference resolving against the caller could not have found the file. The nested job ran, from this repository's tag, with secrets: inherit on the call. Closes #26 --- .../reusable-publish-release-packages.yml | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/.github/workflows/reusable-publish-release-packages.yml b/.github/workflows/reusable-publish-release-packages.yml index 82c97ef..010cf3b 100644 --- a/.github/workflows/reusable-publish-release-packages.yml +++ b/.github/workflows/reusable-publish-release-packages.yml @@ -4,6 +4,14 @@ # Callers were five near-identical copies of this. The tag regex, the # workflow_dispatch retry contract, and the TestPyPI upload existed once per # repo; only the build kind and a few names actually differed. +# +# The four sibling workflows below are called by local `./` path, not by tag. +# A local reference resolves against the repository and ref of the file that +# contains it -- so when a consumer calls this at @publishing-vN, the siblings +# come from publishing-vN too, and a tag is self-consistent by construction. +# Pinning them by tag is what let publishing-v7 ship a wheel matrix that never +# ran, and what has publishing-v9 quietly running v8's builders today +# (.github#26). Cutting publishing-vN+1 is now a tag with no ref edits. name: Reusable publish release packages on: @@ -95,7 +103,7 @@ jobs: build-pure-python: if: inputs.build-kind == 'pure-python' needs: prepare-release - uses: PyDevices/.github/.github/workflows/reusable-build-pure-python-distribution.yml@publishing-v8 + uses: ./.github/workflows/reusable-build-pure-python-distribution.yml with: distribution-name: ${{ inputs.distribution-name }} import-name: ${{ inputs.import-name }} @@ -107,7 +115,7 @@ jobs: build-native-and-wasm: if: inputs.build-kind == 'native-and-wasm' needs: prepare-release - uses: PyDevices/.github/.github/workflows/reusable-build-native-and-wasm-wheels.yml@publishing-v8 + uses: ./.github/workflows/reusable-build-native-and-wasm-wheels.yml with: distribution-name: ${{ inputs.distribution-name }} wheel-filename-prefix: ${{ inputs.wheel-filename-prefix }} @@ -119,7 +127,7 @@ jobs: build-pydevices-multi: if: inputs.build-kind == 'pydevices-multi' needs: prepare-release - uses: PyDevices/.github/.github/workflows/reusable-build-pydevices-distributions.yml@publishing-v8 + uses: ./.github/workflows/reusable-build-pydevices-distributions.yml with: release-ref: ${{ needs.prepare-release.outputs.release-ref }} version: ${{ needs.prepare-release.outputs.version }} @@ -269,7 +277,7 @@ jobs: - build-pure-python - build-native-and-wasm - build-pydevices-multi - uses: PyDevices/.github/.github/workflows/reusable-request-mip-publication.yml@publishing-v8 + uses: ./.github/workflows/reusable-request-mip-publication.yml with: release-ref: ${{ needs.prepare-release.outputs.release-ref }} version: ${{ needs.prepare-release.outputs.version }}