Skip to content

Publish nightly builds to halide/pypi instead of pypi.halide-lang.org - #9282

Merged
alexreinking merged 2 commits into
mainfrom
migrate-nightly-publish-to-halide-pypi
Aug 5, 2026
Merged

Publish nightly builds to halide/pypi instead of pypi.halide-lang.org#9282
alexreinking merged 2 commits into
mainfrom
migrate-nightly-publish-to-halide-pypi

Conversation

@alexreinking

@alexreinking alexreinking commented Aug 5, 2026

Copy link
Copy Markdown
Member

Summary

  • Replaces the push-to-main nightly publish step (pypa/gh-action-pypi-publish targeting pypi.halide-lang.org) with gh release create/upload against halide/pypi, tagged halide@<version>, plus an explicit index-rebuild trigger. The tagged-release publish step below it (real releases -> pypi.org via OIDC trusted publishing) is untouched.
  • Removes the retry/diagnostics wrappers (5 attempts, 60s->300s backoff, egress IP + traceroute logging) around uv sync/uv pip install in testing-linux.yml, testing-arm-linux.yml, testing-macos.yml, and testing-windows.yml. Those existed specifically to work around MIT's border-security IP quarantines on the old pypiserver VM; now that pypi.halide-lang.org serves halide/pypi (GitHub Releases + Pages), which CI already trusts implicitly for everything else, that failure mode no longer applies.
  • Same publish pattern already proven out on halide-llvm (merged, Publish wheels to halide/pypi instead of pypi.halide-lang.org halide-llvm#1) and halide-wheel-deps.

Why

pypi.halide-lang.org now serves halide/pypi instead of the retired MIT-hosted pypiserver, for the same reason as the halide-llvm migration: that VM's network path was subject to intermittent border-security IP quarantines outside anyone's control. This was deliberately held back from the earlier halide-llvm migration to validate the consumption side first; that's now confirmed working end-to-end (real halide-llvm wheels built, published, and merged), so this closes the loop for Halide's own nightly builds and removes the now-dead workaround code.

Test plan

  • actionlint passes on all five modified workflow files.
  • Confirmed halide's wheel filenames start with halide-<version>-... (no normalization surprises, matches dist/halide-*.whl cleanly).
  • Confirmed the only remaining "retry" hits in testing-linux.yml/testing-arm-linux.yml are an unrelated apt-get update retry loop, correctly left alone.
  • Publish step not yet exercised for real (nightly-only trigger) -- recommend merging and watching the next main push's publish job.

…ng.org is GitHub-hosted

The retry loops (5 attempts, 60s->300s backoff) and network diagnostics
(egress IP, traceroute) were added specifically to work around MIT's
border-security IP quarantines on the old pypiserver VM. pypi.halide-lang.org
now serves halide/pypi (GitHub Releases + Pages), which CI already trusts
implicitly for everything else, so that failure mode no longer applies.

@derek-gerstmann derek-gerstmann left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

@alexreinking
alexreinking merged commit 467405f into main Aug 5, 2026
16 checks passed
@codecov

codecov Bot commented Aug 6, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 70.28%. Comparing base (0dba9f1) to head (24b7c14).
⚠️ Report is 6 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #9282      +/-   ##
==========================================
+ Coverage   70.14%   70.28%   +0.14%     
==========================================
  Files         257      258       +1     
  Lines       79162    79162              
  Branches    18979    18997      +18     
==========================================
+ Hits        55529    55642     +113     
+ Misses      17881    17799      -82     
+ Partials     5752     5721      -31     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants