Skip to content

Publish an sdist and stop partial releases on PyPI - #522

Merged
philomath213 merged 1 commit into
mainfrom
ci/publish-sdist-testpypi
Aug 3, 2026
Merged

Publish an sdist and stop partial releases on PyPI#522
philomath213 merged 1 commit into
mainfrom
ci/publish-sdist-testpypi

Conversation

@philomath213

@philomath213 philomath213 commented Jul 29, 2026

Copy link
Copy Markdown
Member

Restructures the publish workflow into build -> verify -> publish, and adds an opt-in TestPyPI rehearsal.

Depends on #521 — the sdist needs the MANIFEST.in added there. CI here will fail until that merges.

  • One upload per release. Each of the 12 matrix cells currently runs twine upload itself, so a failure partway through leaves a half-published release. The matrix now only uploads artifacts; a single publish job does one upload.
  • Ships an sdist. Only wheels are published today, so pip install tenseal on any unlisted platform simply fails.
  • Builds a wheel from the sdist and imports it — the only check that catches an incomplete MANIFEST.in. An sdist missing CMakeLists.txt, cmake/ or the .proto files still passes twine check, then fails for everyone building from source.
  • Triggers on release: published, keeping workflow_dispatch.
  • TestPyPI rehearsal (dispatch-only, the default): publishes, then installs back on all three platforms and runs a real CKKS op. --extra-index-url is required, as TestPyPI has no numpy.
  • stamp_dev_version.sh appends .dev<run_number> for rehearsals only — both indexes refuse to overwrite an existing version.

Real releases are unaffected: release: published always targets PyPI with the existing PYPI_USERNAME/PYPI_PASSWORD secrets.

@philomath213 philomath213 changed the title Publish an sdist and stop partial releases on PyPI [WIP] Publish an sdist and stop partial releases on PyPI Jul 29, 2026
@philomath213 philomath213 added Build Related to the build of the package Type: Improvement 📈 Performance improvement not introducing a new feature or requiring a major refactor labels Jul 29, 2026
@philomath213
philomath213 requested a review from youben11 July 31, 2026 17:13
@philomath213 philomath213 changed the title [WIP] Publish an sdist and stop partial releases on PyPI Publish an sdist and stop partial releases on PyPI Aug 3, 2026
@philomath213
philomath213 force-pushed the ci/publish-sdist-testpypi branch from fa9ece0 to d13675b Compare August 3, 2026 18:16
@philomath213
philomath213 merged commit c394345 into main Aug 3, 2026
14 checks passed
@philomath213
philomath213 deleted the ci/publish-sdist-testpypi branch August 3, 2026 19:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Build Related to the build of the package Type: Improvement 📈 Performance improvement not introducing a new feature or requiring a major refactor

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants