[py] generate -bidi test targets for bidi tests only#17630
Conversation
Review Summary by QodoMake release pipeline rerun-safe and generate BiDi targets for BiDi tests only
WalkthroughsDescription• Make release pipeline rerun-safe by handling already-published packages • Generate BiDi test targets only from BiDi test files, not full classic suite • Reduce test targets from 1443 to 1097 and save ~23 min in CI runtime • Add error handling for npm and gem republish attempts, tag creation idempotency Diagramflowchart LR
A["Release Pipeline"] --> B["Rerun Safety"]
B --> C["npm Publish Error Handling"]
B --> D["Gem Publish Error Handling"]
B --> E["Tag Creation Idempotency"]
B --> F["PyPI Skip Existing"]
A --> G["BiDi Test Generation"]
G --> H["BiDi Tests Only"]
G --> I["Remove Classic Reruns"]
I --> J["Reduce Targets 1443→1097"]
J --> K["Save ~23 min CI Time"]
File Changes1. rake_tasks/node.rake
|
e51f8c3 to
07bc7c9
Compare
Code Review by Qodo
1. README bidi target outdated
|
|
Code review by qodo was updated up to the latest commit ddcf49d |
ddcf49d to
be14921
Compare
|
Code review by qodo was updated up to the latest commit be14921 |
🔗 Related Issues
Part of Python implementation of #17539
Currently, Python runs all classic tests with bidi enabled, even though none of those classic tests have bidi implementations.
⏱️ Measured per run
//py:all)chrome-bidijob (run time & wall-clock)RBE saving is aggregate runner time only; wall-clock is unchanged (tests run in parallel).
💥 What does this PR do?
-biditargets from the BiDi test files only, not the whole classic suite re-run under--bidi.-bidi-actions/-bidi-<feature>sub-suites (they held only classic tests) and collapses each browser to a singletest-<browser>-bidi.BIDI_IMPLEMENTATIONShook for tests that should run under both modes.🔧 Implementation Notes
BIDI_IMPLEMENTATIONSis the home for a feature with both a classic and a BiDi backend — files there stay classic and get a-biditarget to distinguish fromBIDI_TESTSthat require websocketUrl. Empty today.py_test_suiteshards per file; pytest markers can't gate target generation.🤖 AI assistance
py/BUILD.bazelchange and the target/runner-time analysis🔄 Types of changes