|
| 1 | +# Selenium 5 Release Charter |
| 2 | + |
| 3 | +- Status: Proposed <!-- Proposed | Accepted | Released | Superseded --> |
| 4 | +- Owner: Selenium Technical Leadership Committee (TLC) |
| 5 | +- Discussion: <!-- link to this charter's PR --> |
| 6 | + |
| 7 | +## Purpose |
| 8 | + |
| 9 | +Selenium 5 is a focused alignment release: the bindings converge on consistent behavior across |
| 10 | +languages. It follows the project's existing deprecation policy — provide a replacement, mark the |
| 11 | +old path deprecated, and remove it only after two releases — and is not an occasion for |
| 12 | +gratuitous breaking changes. |
| 13 | + |
| 14 | +This document is the index of the decisions that define Selenium 5. Each needs an accepted ADR to |
| 15 | +settle its cross-binding design, then implementation in every binding — Java, JavaScript, Python, |
| 16 | +Ruby, and .NET — with behavior consistent and implementation idiomatic per language. A decision is |
| 17 | +marked _ADR pending_ until its record is accepted, at which point this charter is updated to link |
| 18 | +it. An ADR does not name a milestone; this charter records what belongs to Selenium 5. |
| 19 | + |
| 20 | +## Required for release |
| 21 | + |
| 22 | +### BiDi support boundary — _ADR pending_ |
| 23 | + |
| 24 | +How the WebDriver BiDi protocol is exposed to users across the bindings. The ADR sets where the |
| 25 | +boundary sits between supported Selenium API and internal implementation, and how each binding |
| 26 | +marks it. |
| 27 | + |
| 28 | +### Classic fallback for BiDi-backed commands — _ADR pending_ |
| 29 | + |
| 30 | +A defined, cross-binding mechanism for running a supported command over BiDi and falling back to |
| 31 | +Classic when BiDi or the browser does not support it. The mechanism is required; migrating every |
| 32 | +command is not. |
| 33 | + |
| 34 | +### Network async/event API — _ADR pending_ |
| 35 | + |
| 36 | +The cross-binding API for adding, removing, and clearing handlers for requests, responses, and |
| 37 | +authentication. |
| 38 | + |
| 39 | +### Script and logging async/event API — _ADR pending_ |
| 40 | + |
| 41 | +The cross-binding API for pinned scripts (pin / unpin / execute) and for console-message, |
| 42 | +JavaScript-error, and DOM-mutation handlers. |
| 43 | + |
| 44 | +### Selenium Manager finalized API — _ADR pending_ |
| 45 | + |
| 46 | +A finalized, documented API the bindings invoke, versioned independently of the client. |
| 47 | + |
| 48 | +## Out of scope |
| 49 | + |
| 50 | +These are deferred, not rejected: none blocks Selenium 5. |
| 51 | + |
| 52 | +### Full classic-over-BiDi migration |
| 53 | + |
| 54 | +Routing every classic command through BiDi. Selenium 5 requires the fallback mechanism, not |
| 55 | +coverage of every command. |
| 56 | + |
| 57 | +### DevTools deprecation |
| 58 | + |
| 59 | +Deprecating or removing DevTools (CDP) support. |
| 60 | + |
| 61 | +### Convenience layers on the core APIs |
| 62 | + |
| 63 | +Higher-level helpers built on the network and script/event primitives — for example task-oriented |
| 64 | +network actions (`mock`, `block`, `redirect`) and one-shot event waiters (`expect_*`). |
| 65 | + |
| 66 | +### Browser context API |
| 67 | + |
| 68 | +A high-level API for managing browsing contexts — for example exposing them as handle objects. |
| 69 | + |
| 70 | +### Capability mapping |
| 71 | + |
| 72 | +High-level APIs over individual BiDi capability modules — permissions, storage, emulation, user |
| 73 | +prompts. |
0 commit comments