-
-
Notifications
You must be signed in to change notification settings - Fork 8.7k
[docs] Selenium 5 release charter #17717
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: trunk
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,73 @@ | ||
| # Selenium 5 Release Charter | ||
|
|
||
| - Status: Proposed <!-- Proposed | Accepted | Released | Superseded --> | ||
| - Owner: Selenium Technical Leadership Committee (TLC) | ||
| - Discussion: <!-- link to this charter's PR --> | ||
|
|
||
| ## Purpose | ||
|
|
||
| Selenium 5 is a focused alignment release: the bindings converge on consistent behavior across | ||
| languages. It follows the project's existing deprecation policy — provide a replacement, mark the | ||
| old path deprecated, and remove it only after two releases — and is not an occasion for | ||
| gratuitous breaking changes. | ||
|
|
||
| This document is the index of the decisions that define Selenium 5. Each needs an accepted ADR to | ||
| settle its cross-binding design, then implementation in every binding — Java, JavaScript, Python, | ||
| Ruby, and .NET — with behavior consistent and implementation idiomatic per language. A decision is | ||
| marked _ADR pending_ until its record is accepted, at which point this charter is updated to link | ||
| it. An ADR does not name a milestone; this charter records what belongs to Selenium 5. | ||
|
|
||
| ## Required for release | ||
|
|
||
| ### BiDi support boundary — _ADR pending_ | ||
|
|
||
| How the WebDriver BiDi protocol is exposed to users across the bindings. The ADR sets where the | ||
| boundary sits between supported Selenium API and internal implementation, and how each binding | ||
| marks it. | ||
|
|
||
| ### Network async/event API — _ADR pending_ | ||
|
|
||
| The cross-binding API for adding, removing, and clearing handlers for requests, responses, and | ||
| authentication. | ||
|
|
||
| ### Script and logging async/event API — _ADR pending_ | ||
|
|
||
| The cross-binding API for pinned scripts (pin / unpin / execute) and for console-message, | ||
| JavaScript-error, and DOM-mutation handlers. | ||
|
|
||
| ### Selenium Manager released API — _ADR pending_ | ||
|
|
||
| Formalize the interface and behaviors required to drop the Beta label and release independently of | ||
| the bindings. | ||
|
Comment on lines
+38
to
+41
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 2. --selenium-version flag not required The new Selenium Manager released API required item does not specify introducing/using a required --selenium-version flag for telemetry/version reporting, nor that all bindings must pass it. This risks keeping the existing inferred mapping behavior and inconsistent cross-binding adoption. Agent Prompt
Comment on lines
+38
to
+41
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 4. Ambiguous heading wording The heading “Selenium Manager released API” is paired with body text describing work needed to “drop the Beta label,” which mixes present/future state and can mislead readers about whether this is already released vs. a release goal. Agent Prompt
|
||
|
|
||
|
Comment on lines
+20
to
+42
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 2. Missing bidi navigation requirement The charter's "Required for release" list omits BiDi navigation commands and pageLoadStrategy-aware waiting. This fails to reflect the compliance requirement that BiDi-based navigation be implemented across bindings with page load strategy respected. Agent Prompt
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The intent was to make this part of the ADR for "Classic fallback for BiDi-backed commands" since it is kind of an implementation detail. But agreed, especially if we are going to move that bullet to out of scope (not a requirement for Selenium 5) we need to decide separately if we want to define the mechanism for deciding BiDi vs Classic path for sessions and implement something like Navigation, which Ruby already does. |
||
| ## Out of scope | ||
|
|
||
| These are deferred, not rejected: none blocks Selenium 5. | ||
|
|
||
| ### Full classic-over-BiDi migration | ||
|
|
||
| Routing every classic command through BiDi. | ||
|
|
||
| ### Partial BiDi implementation support | ||
|
|
||
| What it means to support a remote end that does not implement every BiDi feature — choosing the | ||
| BiDi or Classic path per session (not every command can switch mid-session), for older browsers or | ||
| drivers with incomplete BiDi. Part of the Classic-migration ADR. | ||
|
Comment on lines
+53
to
+55
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 3. Undefined adr reference The “Partial BiDi implementation support” section says it is “Part of the Classic-migration ADR,” but this charter uses “classic-over-BiDi migration” terminology and the phrase “Classic-migration ADR” appears nowhere else, making the intended cross-reference unclear. Agent Prompt
Comment on lines
+51
to
+55
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Given there continue to be additions to BiDi, e.g., w3c/webdriver-bidi@54175aaf, it's probably worthwhile defining what counts as partial/incomplete support, because otherwise both Chrome and Firefox are out-of-scope. Even going back to spec changes around a year ago, you'll run into Firefox not supporting the That said, I think it should be obvious that support of More interestingly would be cases like supporting everything except the |
||
|
|
||
| ### DevTools deprecation | ||
|
|
||
| Deprecating or removing DevTools (CDP) support. | ||
|
|
||
|
titusfortner marked this conversation as resolved.
|
||
| ### Convenience layers on the core APIs | ||
|
|
||
| Higher-level helpers built on the network and script/event primitives — for example task-oriented | ||
| network actions (`mock`, `block`, `redirect`) and one-shot event waiters (`expect_*`). | ||
|
|
||
| ### Browser context API | ||
|
|
||
| A high-level API for managing browsing contexts — for example exposing them as handle objects. | ||
|
|
||
| ### Capability mapping | ||
|
|
||
| High-level APIs over individual BiDi capability modules — permissions, storage, emulation, user | ||
| prompts. | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
1. Selenium manager versioning not specified
📎 Requirement gap≡ CorrectnessAgent Prompt
ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools