Repository navigation
[BugFix] Restore torchrl-nightly PyPI uploads - #3844
Merged
Merged
Conversation
torchrl-nightly has been stale on PyPI since 2025.9.1: the scheduled nightly workflow builds and tests wheels daily but every upload job fails, and continue-on-error keeps the run green. Two upload blockers: - Wheels are versioned with a PEP 440 local identifier (2026.6.9+g<sha>) which PyPI rejects with 400. build_nightly.sh now exports TORCHRL_BUILD_VERSION so setup.py uses the plain date version and skips the +g<sha> suffix. Dev builds from source are unchanged. - The linux_x86_64 -> manylinux1_x86_64 wheel rename was dropped in #3799 and PyPI rejects plain linux platform tags. Restore the rename. Two masking bugs that let this rot silently: - Drop continue-on-error from the upload jobs so a failed upload turns the scheduled run red. - torchrl.__version__ was None in nightly wheels (dist is named torchrl-nightly, only torchrl was queried), so packaging/verify_nightly_version.py warning-skipped its validation. Fall back to the torchrl-nightly dist name and make a missing version a hard failure in the verify script. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
🔗 Helpful Links🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/rl/3844
Note: Links to docs will display an error until the docs builds have been completed. This comment was automatically generated by Dr. CI and updates every 15 minutes. |
This was referenced Jun 10, 2026
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's broken
torchrl-nightly on PyPI has been stale since
2025.9.1. The scheduled nightly workflow builds and tests wheels every day and shows green, but every PyPI upload job fails;continue-on-error: truemasks it (see e.g. this scheduled run - all 15 upload jobs red, run green).Two upload blockers:
2026.6.9+ga1a1070:setup.pyappends+g<sha>to the date written bybuild_nightly.sh. PyPI rejects any PEP 440 local version with400: The use of local versions in '2026.6.9+ga1a1070' is not allowed.linux_x86_64->manylinux1_x86_64wheel rename, and PyPI rejects plainlinux_x86_64wheels, so Linux uploads would keep failing even with the version fixed (the last published nightlies weremanylinux1_x86_64).Two masking bugs let this rot silently:
continue-on-error: trueon the upload jobs keeps scheduled runs green when uploads fail.torchrl.__version__isNonein nightly wheels: the distribution is namedtorchrl-nightlybuttorchrl/__init__.pyonly queriestorchrl, and no_version.pyfallback is generated since setuptools_scm is not installed in the nightly build env.packaging/verify_nightly_version.pytreats a missing version as a warning and passes, so the+g<sha>version sailed through the test job instead of failing it.Fixes
build_nightly.sh: exportTORCHRL_BUILD_VERSION="$(date +%Y.%m.%d)".setup.pyuses this override verbatim, so the wheel version is the plain (normalized) date with no local suffix. Dev builds from source keep the+g<sha>behavior..github/workflows/nightly_build.yml: restore the manylinux1 rename (with the original rationale comment, matching what pytorch/pytorch binaries do) and dropcontinue-on-errorfrom the two upload jobs so a failed upload turns the run red.torchrl/__init__.py: fall back to thetorchrl-nightlydistribution name so nightly wheels report a real__version__.packaging/verify_nightly_version.py: a missing/empty__version__is now a hard failure instead of a warning-skip.Validation
set_version()exercised locally: withTORCHRL_BUILD_VERSION=2026.06.10the build version is2026.06.10(no local part, normalizes to2026.6.10which is what the verify script expects); without the override the dev path is unchanged (0.13.0+g<sha>).findcommand verified against dummy wheel filenames (linux wheel renamed to manylinux1, macos wheel untouched).nightly_build.ymlrun on this PR's own CI (pull_requesttrigger); the upload path gets exercised by the next 15:15 UTC scheduled run.Note: the Nightly Orchestrator's scheduled runs are currently cancelled every day (separate concurrency issue, not addressed here), but
nightly_build.ymlhas its own 15:15 UTC schedule that uploads independently, so nightlies resume regardless.Generated with Claude Code