-
Notifications
You must be signed in to change notification settings - Fork 137
Releasing an Ecosystem library
Molly Xu edited this page Apr 27, 2026
·
4 revisions
Before using this wiki, ensure your library is onboarded to the test-infra release scripts: https://github.com/pytorch/test-infra/wiki/Releasing-to-download.pytorch.org-and-pypi
Before each release, torch releases an RC.
If your library is not ABI Stable, you will need to release a compatible RC wheel.
- Create release branch
git checkout -b release/0.11
- Edit Github workflow wheels to test across all versions of relevant libraries (ex. Python, CUDA).
- Add the
ciflow/binaries/alllabel to the PR.- This tag enables the CI to build all the requested python versions. See this workflow for details.
- If needed, push an empty commit to restart the CI now that the tag is present.
- Check that all wheels are built successfully and passing tests.
- Verify that each wheel is using the correct
torchversion for building and testing.
- Verify that each wheel is using the correct
- Tag release PR with RC tag (ex. v0.11.0-rc1)
git checkout release/0.11 && git pull origin release/0.11-
git tag v0.11.0-rc1# yes, it starts with a “v” git push --tags
- After pushing the tag:
- The wheels built by the PR will be uploaded to the test S3 buckets!
-
pytorch/whl/test/cpuorpytorch/whl/test/cu130.
-
- The wheels will become accessible at https://download.pytorch.org/whl/test/
- Note: If you cherry-pick PRs onto the release branch, you will need to add a new RC tag to update the uploaded wheels.
- The wheels built by the PR will be uploaded to the test S3 buckets!
- Check that all workflows were successful on the PyTorch HUD
- Run a validation workflow (ex. https://github.com/pytorch/ao/blob/main/.github/workflows/validate-binaries.yml)
- Create a PR in test-infra that updates the version corresponding to your library in release_versions.sh
- Merge PR before starting dry-runs
- Run release-download-pytorch-org workflow with dry-run enabled and inspect the logs.
- Ensure no duplicate or missing wheels.
- Run release-stage-pypi workflow with dry-run enabled, then inspect the logs.
- These are the wheels that will be downloaded by default via
pip install torchcodec. - Verify that each discovered wheel is correct, and not duplicated.
- If there are missing or duplicate wheels, reach out to the test-infra team for support.
- Ensure the Linux wheel selected matches the default PyTorch version from the PyTorch Get Started page.
- This is the version that is installable without
--index-url.
- This is the version that is installable without
- These are the wheels that will be downloaded by default via
- Run release-download-pytorch-org workflow with dry-run disabled and inspect the logs.
- The wheels are now in the s3 buckets!
-
pytorch/whl/cpuorpytorch/whl/cu130
-
- Manually start the update-s3 workflow (or wait for the hourly update)
- Validate the new package is visible via download.pytorch.org by navigating to package url and inspecting for example: https://download.pytorch.org/whl/cu130/torchcodec/
- Test that new package is installable
pip install torchcodec --extra-index-url https://download.pytorch.org/whl/cu130 --dry-run --ignore-installed
- The wheels are now in the s3 buckets!
-
Run release-stage-pypi workflow with dry-run disabled, then inspect the logs.
- The results should be the same as the dry-run.
-
Run release-pypi workflow with dry-run enabled, then inspect the logs.
- Check “Display structure of downloaded files” step and verify these are the files you intend to upload to PyPI.
-
Run again with dry-run disabled, then inspect the logs
- Make sure “Publish Package to pypi” step completes successfully
- Confirm that the release is available on PyPI project page.
- Confirm that installing using
pipvia PyPI works.
- Push the release tag, from the tip of the release branch:
git checkout release/0.0.2 && git pull origin release/0.0.2-
git tag v0.0.2# yes, it starts with a “v” git push --tags
- Publish release notes, pin them to the release tag.
- Now that 0.11.0 is released, create one more PR on main, like this one:
- Update the main branch’s
version.txtto be 0.12.0a0 - Update the version compatibility table in the README
- Update the main branch’s