From bdecaa9b72eed46fb8fedf10591363379a7741eb Mon Sep 17 00:00:00 2001 From: Vishnu Vardhan Date: Tue, 29 Sep 2026 20:12:52 +0530 Subject: [PATCH 1/2] chore(selenium-devtools-py): fold the pending notes into the first release --- packages/selenium-devtools-py/CHANGELOG.md | 5 +++++ .../changes/install-the-backend-once.md | 7 ------- .../selenium-devtools-py/changes/pin-backend-1.11.0.md | 5 ----- .../selenium-devtools-py/changes/pin-backend-1.11.1.md | 5 ----- .../selenium-devtools-py/changes/run-all-after-a-rerun.md | 5 ----- 5 files changed, 5 insertions(+), 22 deletions(-) delete mode 100644 packages/selenium-devtools-py/changes/install-the-backend-once.md delete mode 100644 packages/selenium-devtools-py/changes/pin-backend-1.11.0.md delete mode 100644 packages/selenium-devtools-py/changes/pin-backend-1.11.1.md delete mode 100644 packages/selenium-devtools-py/changes/run-all-after-a-rerun.md diff --git a/packages/selenium-devtools-py/CHANGELOG.md b/packages/selenium-devtools-py/CHANGELOG.md index c05c220e..6b92438d 100644 --- a/packages/selenium-devtools-py/CHANGELOG.md +++ b/packages/selenium-devtools-py/CHANGELOG.md @@ -24,6 +24,11 @@ backend and UI as the JavaScript adapters over the language-neutral - **pytest plugin** — auto-discovered, opt-in per run (`--devtools`, `--devtools-trace`), per project (`[tool.pytest.ini_options]`) or per shell (`DEVTOOLS_ENABLE`). Installing it never changes how an existing suite behaves. +- **`selenium-devtools install-backend`** — puts the Node backend on disk once, + so a run starts a server it already has. Without it a run still works, fetching + the backend with `npx` on first use; that costs a registry round trip every + run, and fails mid-test rather than at install time where a proxy declines the + package. - Ships `py.typed`, so the annotations already on the public API reach a consumer's type checker instead of resolving to `Any`. - Requires Python 3.10+, `selenium>=4.44`, and Node.js 18+ on PATH for the diff --git a/packages/selenium-devtools-py/changes/install-the-backend-once.md b/packages/selenium-devtools-py/changes/install-the-backend-once.md deleted file mode 100644 index 410151d0..00000000 --- a/packages/selenium-devtools-py/changes/install-the-backend-once.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -minor ---- - -Install the dashboard backend once with `selenium-devtools install-backend`, instead of fetching it on every run. Runs prefer what it installs and reach `npx` only when nothing is there — which also removes a per-run registry round trip, and turns a proxy that declines the package into an install-time error rather than a test run that quietly captures nothing. - -A cold `npx` now gets its own, far larger budget: it has to download a dependency tree before the server it is timing even starts, and the old 40 s covered both, so a first run could fail while the retry succeeded from cache. When a backend does fail to start, the error now carries the command that was run and the last lines it printed. diff --git a/packages/selenium-devtools-py/changes/pin-backend-1.11.0.md b/packages/selenium-devtools-py/changes/pin-backend-1.11.0.md deleted file mode 100644 index e5992bdf..00000000 --- a/packages/selenium-devtools-py/changes/pin-backend-1.11.0.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -patch ---- - -Pin the backend a `pip install` user runs to 1.11.0. diff --git a/packages/selenium-devtools-py/changes/pin-backend-1.11.1.md b/packages/selenium-devtools-py/changes/pin-backend-1.11.1.md deleted file mode 100644 index 53a1d329..00000000 --- a/packages/selenium-devtools-py/changes/pin-backend-1.11.1.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -patch ---- - -Pin the backend a `pip install` user runs to 1.11.1. diff --git a/packages/selenium-devtools-py/changes/run-all-after-a-rerun.md b/packages/selenium-devtools-py/changes/run-all-after-a-rerun.md deleted file mode 100644 index 89df535a..00000000 --- a/packages/selenium-devtools-py/changes/run-all-after-a-rerun.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -patch ---- - -Keep Run-all meaning "run everything" after a targeted rerun. A rerun child is invoked with one nodeid on its command line, and the launch command was derived from that invocation — so once you reran a single test, Run-all republished as "run that one test" and kept rerunning it alone, with the tree showing only the test that child collected. The backend now hands the original command down, and a rerun child publishes that instead of guessing from its own arguments. From 717c496626bcd5cd3132957fccb52abb195e1f3f Mon Sep 17 00:00:00 2001 From: Vishnu Vardhan Date: Tue, 29 Sep 2026 20:22:01 +0530 Subject: [PATCH 2/2] docs(selenium-devtools-py): say what a failed backend fetch actually does --- packages/selenium-devtools-py/CHANGELOG.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/selenium-devtools-py/CHANGELOG.md b/packages/selenium-devtools-py/CHANGELOG.md index 6b92438d..3117ac2b 100644 --- a/packages/selenium-devtools-py/CHANGELOG.md +++ b/packages/selenium-devtools-py/CHANGELOG.md @@ -25,10 +25,12 @@ backend and UI as the JavaScript adapters over the language-neutral `--devtools-trace`), per project (`[tool.pytest.ini_options]`) or per shell (`DEVTOOLS_ENABLE`). Installing it never changes how an existing suite behaves. - **`selenium-devtools install-backend`** — puts the Node backend on disk once, - so a run starts a server it already has. Without it a run still works, fetching - the backend with `npx` on first use; that costs a registry round trip every - run, and fails mid-test rather than at install time where a proxy declines the - package. + so a run starts a server it already has. Without it a run still works: the + backend is fetched with `npx` on first use, at a registry round trip per run. + Where that fetch fails — a proxy withholding a newly published version, say — + the adapter warns as the run starts and your tests then run *without capture*, + passing but empty, which is a worse thing to discover than an install command + that failed and said why. - Ships `py.typed`, so the annotations already on the public API reach a consumer's type checker instead of resolving to `Any`. - Requires Python 3.10+, `selenium>=4.44`, and Node.js 18+ on PATH for the