Repository navigation
ci: stop one duplicate wheel from cancelling every other platform - #456
Merged
Merged
Conversation
The v0.4.2 release published Linux wheels for 3.11-3.13 and macOS arm64 for
3.12/3.13, then stopped: all three Windows jobs and macOS 3.11 were cancelled,
so those platforms have no 0.4.2 wheel at all. Since every imspy package in
this release requires imspy-connector>=0.4.2, installing the stack on Windows
currently fails to resolve.
Two workflow bugs combined:
macos-14 and macos-15 are both arm64, and both built with
--target aarch64-apple-darwin, so they produce byte-identical wheel names
(macosx_11_0_arm64). The second one to upload is always rejected:
Failed to upload "imspy_connector-0.4.2-cp312-cp312-macosx_11_0_arm64.whl"
Caused by: File already exists
The matrix then ran with the default fail-fast, so that guaranteed-duplicate
job cancelled every platform still building — Windows among them. The same
signature appears on the models-v0.6.0 release, so this has been failing for a
while rather than being new.
Fixes: drop the duplicate macOS runner, set fail-fast: false so platforms
publish independently, and pass --skip-existing so an already-uploaded wheel is
skipped rather than failing the job.
Also adds workflow_dispatch, so a partially-published version can be completed
by re-running against the same ref instead of cutting a new release —
--skip-existing makes that safe to repeat.
Note: no Intel macOS (x86_64) wheels are produced, before or after this change;
the matrix is arm64-only. Worth a separate decision.
Claude-Session: https://claude.ai/code/session_01532ckxwR1fUorKF7CN66uA
theGreatHerrLebert
enabled auto-merge (squash)
September 11, 2026 08:36
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What happened
The v0.4.2 release published Linux 3.11–3.13 and macOS arm64 3.12/3.13, then stopped. All three Windows jobs and macOS 3.11 were cancelled, so those platforms have no 0.4.2 wheel.
Because every imspy package in this release now requires
imspy-connector>=0.4.2, installing the stack on Windows currently fails to resolve. Linux is fully covered, so the original report that prompted the release is unblocked.Why
Two workflow bugs combined.
1. A guaranteed duplicate.
macos-14andmacos-15are both arm64, and both built with--target aarch64-apple-darwin— so they produce byte-identical wheel names. Whichever uploads second is always rejected:2. Default fail-fast. That guaranteed-failing job then cancelled every platform still building. Windows takes longest, so Windows always loses.
This isn't new — the same signature appears on the
models-v0.6.0release back in May, which also showsRust Binding: failure. It's been silently costing platforms wheels for months; it only became visible now because the pins make the connector mandatory.Fix
macos-15), keeping one arm64 builder.fail-fast: false— platforms publish independently; one failure can't cost another platform its wheel.maturin publish --no-sdist --skip-existing— an already-uploaded wheel is skipped instead of failing the job.workflow_dispatch, so a partially-published version can be completed by re-running against the same ref rather than cutting a new release.--skip-existingmakes that safe to repeat.Publishing the missing v0.4.2 wheels
A re-run of the existing release run would use the workflow as it was at the tag, so it would hit the same bug. Once this merges, the missing Windows and macOS-3.11 wheels can be published by dispatching this workflow against
main— the connector source there is identical to thev0.4.2tag, and--skip-existingwill skip the wheels PyPI already has.I have not dispatched anything; that's your call.
Note
No Intel macOS (x86_64) wheels are produced — before or after this change, the matrix is arm64-only. Flagging rather than changing it, since adding
macos-13is a separate decision.https://claude.ai/code/session_01532ckxwR1fUorKF7CN66uA