Skip to content

[py] temporarily disable nightly TestPyPI publishing - #17920

Merged
titusfortner merged 1 commit into
trunkfrom
py-disable-nightly-testpypi
Aug 17, 2026
Merged

[py] temporarily disable nightly TestPyPI publishing#17920
titusfortner merged 1 commit into
trunkfrom
py-disable-nightly-testpypi

Conversation

@titusfortner

Copy link
Copy Markdown
Member

🔗 Related Issues

Refs #17919

💥 What does this PR do?

  • Stops publishing Python nightlies to TestPyPI, so the nightly workflow no longer fails every night while Fix TestPyPi storage quota #17919 is unresolved. Java, Ruby, .NET and JavaScript nightlies are unaffected.
  • Failed uploads now report why PyPI rejected them instead of a bare status code.

🔧 Implementation Notes

Twine suppresses the server's response body unless --verbose is passed, which is why the quota failure surfaced only as 400 Client Error with no explanation. Added to the production upload as well, since it would fail just as opaquely.

🤖 AI assistance

  • No substantial AI assistance used
  • AI assisted (complete below)
    • Tool(s): Claude Code
    • What was generated: diagnosis of the nightly failure, both edits, and Fix TestPyPi storage quota #17919
    • I reviewed all AI output and can explain the change

💡 Additional Considerations

The matrix entry is commented out rather than deleted so it is a one-line revert once the TestPyPI quota is sorted. Until then a Python-only release will complete without publishing a Python nightly.

🔄 Types of changes

  • Cleanup (formatting, renaming)

@selenium-ci selenium-ci added C-py Python Bindings B-build Includes scripting, bazel and CI integrations labels Aug 17, 2026
@qodo-code-review

Copy link
Copy Markdown
Contributor

PR Summary by Qodo

Disable Python nightly TestPyPI publish; add verbose Twine uploads

🐞 Bug fix ⚙️ Configuration changes 🕐 10-20 Minutes

Grey Divider

AI Description

• Remove Python from nightly release matrix to stop failing TestPyPI uploads.
• Add twine upload --verbose to production and nightly Python release targets.
• Preserve a one-line revert path by commenting out Python instead of deleting it.
Diagram

graph TD
  NW["nightly.yml"] --> BW["bazel.yml workflow"] --> NPY["py:selenium-release-nightly"] --> TW["twine upload --verbose"] --> TPP{{"TestPyPI (disabled)"}}
  PR["py:selenium-release"] --> TW --> PYP{{"PyPI"}}
Loading
High-Level Assessment

The following are alternative approaches to this PR:

1. Keep Python in matrix but ignore TestPyPI failures
  • ➕ Nightly pipeline still exercises Python packaging end-to-end.
  • ➖ Masks real publish failures and keeps generating noisy failures/alerts.
  • ➖ May hide regressions until quota issue is resolved.
2. Conditional skip Python nightly only on schedule events
  • ➕ Allows manual dispatch/callers to still run Python nightly when desired.
  • ➖ More workflow logic and edge cases; still fails on schedule unless guarded correctly.
3. Publish Python nightly to GitHub Releases only (no TestPyPI)
  • ➕ Keeps producing a consumable artifact without depending on TestPyPI availability.
  • ➖ Changes distribution channel/consumer expectations; may require docs and tooling updates.

Recommendation: Current approach is the most practical mitigation: commenting out Python in the nightly matrix immediately stops the recurring failing publish while keeping a one-line revert once #17919 is resolved. Adding --verbose to both Twine upload invocations improves diagnosability without changing release semantics.

Files changed (2) +8 / -1

Bug fix (1) +2 / -0
BUILD.bazelAdd '--verbose' to Twine upload args for prod and nightly releases +2/-0

Add '--verbose' to Twine upload args for prod and nightly releases

• Updates the 'selenium-release' and 'selenium-release-nightly' Bazel 'py_binary' targets to pass '--verbose' to 'twine upload'. This ensures server response bodies are shown when uploads are rejected, improving failure diagnostics for both PyPI and TestPyPI.

py/BUILD.bazel

Other (1) +6 / -1
nightly.ymlComment out Python from nightly language matrix +6/-1

Comment out Python from nightly language matrix

• Replaces the inline language list with an explicit list and comments out the Python entry. This prevents Python nightly releases from running (and failing) while leaving an easy one-line revert once TestPyPI quota/issues are resolved.

.github/workflows/nightly.yml

@qodo-code-review

Copy link
Copy Markdown
Contributor

Code Review by Qodo

🐞 Bugs (1) 📘 Rule violations (1) 📜 Skill insights (0)

Grey Divider


Remediation recommended

1. Unexplained # - python 📘 Rule violation ⚙ Maintainability
Description
The new comment disabling Python nightlies (# - python) states what is disabled but not why,
leaving future maintainers without rationale or constraints. This reduces maintainability and
increases the chance the change is reverted incorrectly.
Code

.github/workflows/nightly.yml[R72-74]

+          - java
+          # - python
+          - ruby
Evidence
PR Compliance ID 4 requires comments to explain intent/rationale. The added comment # - python
only narrates the behavior (Python is commented out) without documenting why it was disabled (e.g.,
TestPyPI quota issue / refs #17919).

AGENTS.md: Comments Should Explain 'Why' Rather Than 'What'
.github/workflows/nightly.yml[71-76]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
A new comment in the nightly language matrix disables Python (`# - python`) but does not explain the rationale.

## Issue Context
Compliance requires comments to explain *why* a non-obvious decision was made (e.g., TestPyPI quota failures / refs #17919) rather than merely describing *what* the code is doing.

## Fix Focus Areas
- .github/workflows/nightly.yml[72-74]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


2. Python dispatch now no-op 🐞 Bug ≡ Correctness
Description
The Nightly workflow still allows selecting python via workflow_dispatch, but the
nightly-release matrix no longer includes python, so a manual run with language=python will
only execute echo skipping and publish nothing.
Code

.github/workflows/nightly.yml[R71-74]

+        language:
+          - java
+          # - python
+          - ruby
Evidence
The workflow’s manual dispatch input still includes python, but the job matrix was changed to
exclude it; the run expression then falls back to echo skipping when the selected language doesn’t
match any matrix entry.

.github/workflows/nightly.yml[6-18]
.github/workflows/nightly.yml[64-83]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
The Nightly workflow still advertises `python` as a selectable `workflow_dispatch` input option, but the PR removes Python from the `nightly-release` job matrix. As a result, manually dispatching the workflow with `language=python` will not run any Python release command and will silently skip work.

## Issue Context
Python nightlies are intentionally disabled, but the workflow UI and inputs should reflect that to prevent confusing, successful-but-no-op runs.

## Fix Focus Areas
- .github/workflows/nightly.yml[6-18]
- .github/workflows/nightly.yml[64-83]

## Suggested changes
Choose one:
1) Remove `python` from `workflow_dispatch.inputs.language.options` while disabled.
2) Keep `python` selectable but add a guard in `prepare` (or before matrix execution) that fails with a clear error when `LANG == python` and Python is disabled.
3) Re-add Python to the matrix if manual Python nightlies should remain possible.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

Tip of the day
💡 Did you know, you can route each action level your way: inline, summary, both, or drop

More tips ↗ | Customize Qodo ↗ | Qodo docs ↗

Grey Divider

Qodo Logo

Comment thread .github/workflows/nightly.yml
Comment thread .github/workflows/nightly.yml
@titusfortner titusfortner changed the title [py] disable nightly TestPyPI publishing and add twine --verbose [py] temporarily disable nightly TestPyPI publishing Aug 17, 2026
@titusfortner
titusfortner merged commit 7f32b68 into trunk Aug 17, 2026
42 checks passed
@titusfortner
titusfortner deleted the py-disable-nightly-testpypi branch August 17, 2026 17:05
diemol added a commit that referenced this pull request Aug 18, 2026
This was referenced Aug 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

B-build Includes scripting, bazel and CI integrations C-py Python Bindings

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants