Skip to content

Land the Python adapter (live mode), the naming, and the backend CLI entry #279

Closed

Description

@vishnuv688

Part of #277

Covers commits eb6969d and c25dcde, which rename the distribution, module and directory to selenium-devtools-py / selenium_devtools, plus the work adding packages/backend/src/server.ts.

Why the naming changed

devtools-selenium and @wdio/selenium-devtools differ only in word order, which reads as a typo rather than a family. Naming by language gives one predictable shape across registries: @wdio/selenium-devtools on npm, selenium-devtools-py on PyPI, selenium-devtools-java on Maven if that happens. The distribution carries the language marker and the import does not, following kafka-python, redis-py and elasticsearch-py.

Why the backend needed a new entry

node packages/backend/dist/index.js imported a module and exited 0 without serving, and npx @wdio/devtools-backend failed with "could not determine executable to run". Both of the Python adapter's spawn tiers were therefore dead, and enable() could not start a dashboard at all.

The cause is not the two-entry build. show-trace.ts imports start from index.ts, which makes index a shared module whose body tsup hoists into dist/chunk-*.js; there import.meta.url is the chunk's own path and can never equal process.argv[1], so index's "start if run directly" guard was dead in every build ever produced. show-trace.js works for the inverted reason: nothing imports it, so a leaf entry keeps its body in its own output file.

  • src/server.ts is a leaf CLI entry with a shebang, exposed as the devtools-backend bin, accepting --port, --hostname and --help. It needs no guard.
  • src/server-args.ts holds the argv parsing, because server.ts starts a server as its module body and a test cannot import that.
  • The dead guard and its node:url import are deleted rather than repaired.
  • server.ts prints its own listening line. The Python adapter scraped Fastify's logger for the bound port, which would have broken if logger: true ever changed.
  • dev:app was watching dist/index.js, an entry that could not start.

Acceptance criteria

  • pip name, import name and directory agree
  • node dist/server.js and npx @wdio/devtools-backend both serve
  • enable() starts a backend with no environment variables set
  • The dead guard is deleted, not repaired
  • Changeset added, and the backend pin points at the version that carries the bin
  • Full vitest, python tests, typecheck and lint green

Activity

  1. self-assigned this
    on Aug 12, 2026
  2. changed the title [-]Rename to selenium-devtools-py and give the backend a runnable CLI entry[/-] [+]Land the Python adapter (live mode), the naming, and the backend CLI entry[/+] on Aug 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

selenium-devtools-pyPython Selenium adapter for the DevTools dashboard

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions