Skip to content

Commit a2057a8

Browse files
authored
Merge branch 'trunk' into ignore-prefixed-options
2 parents 6ff5c0e + 65f7854 commit a2057a8

File tree

119 files changed

+1018
-628
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

119 files changed

+1018
-628
lines changed

.github/ISSUE_TEMPLATE/bug-report.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ body:
4949
id: selenium-version
5050
attributes:
5151
label: What version of Selenium are you currently using?
52-
description: Important! The latest released version of Selenium is 4.30 and we can't fix old versions.
52+
description: Important! The latest released version of Selenium is 4.31 and we can't fix old versions.
5353
placeholder: e.g., 4.17.0
5454
validations:
5555
required: true

.github/label-commenter-config.yml

+1-30
Original file line numberDiff line numberDiff line change
@@ -6,36 +6,7 @@ labels:
66
body: |
77
@{{ issue.user.login }}, thank you for creating this issue. We will troubleshoot it as soon as we can.
88
9-
---
10-
<details>
11-
<summary>Info for maintainers</summary>
12-
<div>
13-
<br>
14-
<p>
15-
Triage this issue by using labels.
16-
</p>
17-
<p>
18-
If information is missing, add a helpful comment and then <code>J-issue-template</code> label.
19-
</p>
20-
<p>
21-
If the issue is a question, add the <code>I-question</code> label.
22-
</p>
23-
<p>
24-
If the issue is valid but there is no time to troubleshoot it, consider adding the <code>help wanted</code> label.
25-
</p>
26-
<p>
27-
If the issue requires changes or fixes from an external project (e.g., ChromeDriver, GeckoDriver, MSEdgeDriver, W3C),
28-
add the applicable <code>G-*</code> label, and it will provide the correct link and auto-close the
29-
issue.
30-
</p>
31-
<p>
32-
After troubleshooting the issue, please add the <code>R-awaiting answer</code> label.
33-
</p>
34-
<p>
35-
Thank you!
36-
</p>
37-
</div>
38-
</details>
9+
Selenium Triage Team: remember to follow the [Triage Guide](https://github.com/SeleniumHQ/selenium/blob/trunk/README.md)
3910
- name: G-w3c
4011
labeled:
4112
issue:

.github/workflows/label-commenter.yml

+1-3
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,5 @@ jobs:
2424
- name: Label Commenter
2525
uses: peaceiris/actions-label-commenter@v1
2626
with:
27-
# The individual PAT is needed so commenter can auto-executes on PRs from Forks
28-
# It expires 4/1/2026
29-
github_token: ${{ secrets.PR_LABELER_PAT }}
27+
github_token: ${{ secrets.SELENIUM_CI_TOKEN }}
3028
config_file: .github/label-commenter-config.yml

.github/workflows/nightly.yml

+12-6
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,16 @@ on:
2121
- grid
2222
- dotnet
2323
- javascript
24+
workflow_call:
25+
inputs:
26+
language:
27+
required: false
28+
type: string
29+
default: "all"
2430

2531
jobs:
2632
ruby:
27-
if: (github.repository_owner == 'seleniumhq') && (inputs.language == 'ruby' || github.event_name == 'schedule')
33+
if: (github.repository_owner == 'seleniumhq') && (inputs.language == 'ruby' || inputs.language == 'all' || github.event_name == 'schedule')
2834
name: Ruby
2935
uses: ./.github/workflows/bazel.yml
3036
strategy:
@@ -57,7 +63,7 @@ jobs:
5763
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }}
5864

5965
python:
60-
if: (github.repository_owner == 'seleniumhq') && (inputs.language == 'python' || github.event_name == 'schedule')
66+
if: (github.repository_owner == 'seleniumhq') && (inputs.language == 'python' || inputs.language == 'all' || github.event_name == 'schedule')
6167
name: Python
6268
uses: ./.github/workflows/bazel.yml
6369
with:
@@ -84,7 +90,7 @@ jobs:
8490
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }}
8591

8692
java:
87-
if: (github.repository_owner == 'seleniumhq') && (inputs.language == 'java' || github.event_name == 'schedule')
93+
if: (github.repository_owner == 'seleniumhq') && (inputs.language == 'java' || inputs.language == 'all' || github.event_name == 'schedule')
8894
name: Java
8995
uses: ./.github/workflows/bazel.yml
9096
with:
@@ -111,7 +117,7 @@ jobs:
111117
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }}
112118

113119
dotnet:
114-
if: (github.repository_owner == 'seleniumhq') && (inputs.language == 'dotnet' || github.event_name == 'schedule')
120+
if: (github.repository_owner == 'seleniumhq') && (inputs.language == 'dotnet' || inputs.language == 'all' || github.event_name == 'schedule')
115121
name: DotNet
116122
uses: ./.github/workflows/bazel.yml
117123
with:
@@ -139,7 +145,7 @@ jobs:
139145
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }}
140146

141147
grid:
142-
if: (github.repository_owner == 'seleniumhq') && (inputs.language == 'grid' || github.event_name == 'schedule')
148+
if: (github.repository_owner == 'seleniumhq') && (inputs.language == 'grid' || inputs.language == 'all' || github.event_name == 'schedule')
143149
name: Grid
144150
uses: ./.github/workflows/bazel.yml
145151
with:
@@ -166,7 +172,7 @@ jobs:
166172
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK_URL }}
167173

168174
javascript:
169-
if: (github.repository_owner == 'seleniumhq') && (inputs.language == 'javascript' || github.event_name == 'schedule')
175+
if: (github.repository_owner == 'seleniumhq') && (inputs.language == 'javascript' || inputs.language == 'all' || github.event_name == 'schedule')
170176
name: JavaScript
171177
uses: ./.github/workflows/bazel.yml
172178
with:

.github/workflows/pr-labeler.yml

+1-3
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,5 @@ jobs:
2121
- name: Auto label Pull Requests
2222
uses: actions/labeler@v5
2323
with:
24-
# The individual PAT is needed so labeler auto-executes this workflow
25-
# It expires 4/1/2026
26-
repo-token: ${{ secrets.PR_LABELER_PAT }}
24+
repo-token: ${{ secrets.SELENIUM_CI_TOKEN }}
2725
configuration-path: .github/pr-labeler-config.yml

.github/workflows/pre-release.yml

+1-2
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,7 @@ jobs:
3434
fi
3535
git checkout -b rust-release-${{ github.event.inputs.version }}
3636
- name: Update Rust Version
37-
run: |
38-
./go rust:version ${{ github.event.inputs.version }}
37+
run: ./go rust:version ${{ github.event.inputs.version }}
3938
- name: Commit Rust updates
4039
run: git commit -m "update selenium manager version and rust changelog"
4140
- name: Push changes

.github/workflows/stage-release.yml

+12-2
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ on:
1111

1212
env:
1313
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
14-
BRANCH_NAME: ${{ github.event.pull_request.head.ref }}
1514

1615
jobs:
1716
github-release:
@@ -29,10 +28,13 @@ jobs:
2928
steps:
3029
- name: Checkout repo
3130
uses: actions/checkout@v4
31+
with:
32+
fetch-depth: 0
3233
- name: Extract version from branch name
3334
if: github.event.pull_request.merged == true
3435
run: |
35-
VERSION=$(echo $BRANCH_NAME | grep -oE '[0-9]+\.[0-9]+\.[0-9]+')
36+
TEMP_BRANCH_NAME=${{ github.event.pull_request.head.ref }}
37+
VERSION=$(echo $TEMP_BRANCH_NAME | grep -oE '[0-9]+\.[0-9]+\.[0-9]+')
3638
echo "VERSION=$VERSION" >> $GITHUB_ENV
3739
- name: Extract version from workflow input
3840
if: github.event_name == 'workflow_dispatch'
@@ -50,6 +52,14 @@ jobs:
5052
distribution: 'temurin'
5153
- name: Setup curl for Ubuntu
5254
run: sudo apt-get update && sudo apt-get install -y libcurl4-openssl-dev
55+
- name: Delete nightly tag
56+
run: |
57+
if git rev-parse --verify refs/tags/nightly >/dev/null 2>&1; then
58+
echo "Deleting nightly tag"
59+
git push origin --delete refs/tags/nightly
60+
else
61+
echo "No nightly tag found - nothing to delete"
62+
fi
5363
- name: Build and Stage Packages
5464
run: ./go all:package[--config=release]
5565
- name: Generate Draft Release
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
name: Update Version After Docs Merge
2+
3+
on:
4+
pull_request:
5+
types: [ closed ]
6+
branches:
7+
- gh-pages
8+
paths:
9+
- 'docs/api/**'
10+
11+
jobs:
12+
parse-pr-title:
13+
runs-on: ubuntu-latest
14+
if: github.event.pull_request.merged == true && contains(github.event.pull_request.title, 'Update documentation for Selenium')
15+
outputs:
16+
language: ${{ steps.extract-language.outputs.language }}
17+
steps:
18+
- name: Extract language from PR title
19+
id: extract-language
20+
run: |
21+
PR_TITLE="${{ github.event.pull_request.title }}"
22+
LANGUAGE=$(echo "$PR_TITLE" | grep -o '[^-]*$')
23+
echo "language=$LANGUAGE" >> $GITHUB_OUTPUT
24+
update-version:
25+
needs: parse-pr-title
26+
uses: ./.github/workflows/nightly.yml
27+
with:
28+
language: ${{ needs.parse-pr-title.outputs.language }}
29+
secrets: inherit
30+

.github/workflows/update-documentation.yml

+19-29
Original file line numberDiff line numberDiff line change
@@ -37,24 +37,8 @@ env:
3737
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
3838

3939
jobs:
40-
determine-languages:
41-
runs-on: ubuntu-latest
42-
outputs:
43-
matrix: ${{ steps.set-matrix.outputs.matrix }}
44-
steps:
45-
- id: set-matrix
46-
run: |
47-
if [ "${{ inputs.language }}" == "all" ]; then
48-
echo 'matrix={"language":["java","rb","py","dotnet","node"]}' >> $GITHUB_OUTPUT
49-
else
50-
echo 'matrix={"language":["${{ inputs.language }}"]}' >> $GITHUB_OUTPUT
51-
fi
5240
build-docs:
53-
needs: determine-languages
5441
runs-on: ubuntu-latest
55-
strategy:
56-
matrix: ${{ fromJson(needs.determine-languages.outputs.matrix) }}
57-
fail-fast: false
5842
steps:
5943
- name: Checkout repository
6044
uses: actions/checkout@v4
@@ -69,43 +53,49 @@ jobs:
6953
- name: Setup curl for Ubuntu
7054
run: sudo apt-get update && sudo apt-get install -y libcurl4-openssl-dev
7155
- name: Setup Java
56+
if: ${{ inputs.language == 'java' || inputs.language == 'all' }}
7257
uses: actions/setup-java@v4
7358
with:
7459
java-version: 17
7560
distribution: 'temurin'
7661
- name: Set up Python 3.9
77-
if: ${{ matrix.language == 'py' }}
62+
if: ${{ inputs.language == 'py' || inputs.language == 'all' }}
7863
uses: actions/setup-python@v5
7964
with:
8065
python-version: 3.9
8166
- name: Install dependencies
82-
if: ${{ matrix.language == 'py' }}
67+
if: ${{ inputs.language == 'py' || inputs.language == 'all' }}
8368
run: |
8469
python -m pip install --upgrade pip
8570
pip install tox
8671
- name: Install npm dependencies
87-
if: ${{ matrix.language == 'node' }}
72+
if: ${{ inputs.language == 'node' || inputs.language == 'all' }}
8873
run: |
8974
npm install
9075
npm install --prefix javascript/selenium-webdriver
91-
- name: Update Documentation
92-
run: ./go ${{ matrix.language }}:docs
76+
- name: Generate Documentation for selected langauges
77+
run: ./go ${{ inputs.language }}:docs
9378
- name: Documentation Pull Request
79+
id: cpr
9480
uses: peter-evans/create-pull-request@v6
9581
with:
9682
token: ${{ secrets.SELENIUM_CI_TOKEN }}
9783
author: Selenium CI Bot <[email protected]>
9884
delete-branch: true
99-
branch: api-docs-${{ inputs.version }}-${{ matrix.language }}
85+
branch: api-docs-${{ inputs.version }}
10086
base: gh-pages
101-
add-paths: |
102-
${{ matrix.language == 'node' && 'docs/api/javascript/**' || format('docs/api/{0}/**', matrix.language) }}
103-
title: Update documentation for Selenium ${{ inputs.version }} (${{ matrix.language }})
87+
add-paths: docs/api/**
88+
title: Update documentation for Selenium ${{ inputs.version }}-${{ inputs.language }}
10489
body: |
105-
This PR updates the API documentation for **${{ matrix.language }}** language bindings to version **${{ inputs.version }}**.
90+
This PR updates the API documentation for version **${{ inputs.version }}-${{ inputs.language }}**.
10691
107-
- Auto-generated by [create-pull-request][1]
108-
109-
[1]: https://github.com/peter-evans/create-pull-request
92+
- Auto-generated by [workflow run #${{ github.run_id }}](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }})
11093
labels: B-docs
11194
draft: false
95+
- name: Enable Pull Request Auto-merge
96+
if: steps.cpr.outputs.pull-request-operation == 'created'
97+
uses: peter-evans/enable-pull-request-automerge@v3
98+
with:
99+
token: ${{ secrets.SELENIUM_CI_TOKEN }}
100+
pull-request-number: ${{ steps.cpr.outputs.pull-request-number }}
101+
merge-method: squash

AUTHORS

+2
Original file line numberDiff line numberDiff line change
@@ -746,6 +746,7 @@ Rob Wu <[email protected]>
746746
Robert Elliot <[email protected]>
747747
Robert Fletcher <[email protected]>
748748
Roberto Rivera <[email protected]>
749+
749750
Robin Stocker <[email protected]>
750751
Rod McNew <[email protected]>
751752
Romain Tartière <[email protected]>
@@ -772,6 +773,7 @@ Sam Uong <[email protected]>
772773
Samit Badle <[email protected]>
773774
Samuel Bétrisey <[email protected]>
774775
Sandeep Suryaprasad <[email protected]>
776+
775777
Sankha Narayan Guria <[email protected]>
776778
Santiago Suarez Ordoñez <[email protected]>
777779
Sarah Bird <[email protected]>

MODULE.bazel

+12-12
Original file line numberDiff line numberDiff line change
@@ -171,27 +171,27 @@ maven.install(
171171
name = "maven",
172172
artifacts = [
173173
"com.beust:jcommander:1.82",
174-
"com.github.javaparser:javaparser-core:3.26.3",
174+
"com.github.javaparser:javaparser-core:3.26.4",
175175
"com.github.spotbugs:spotbugs:4.9.3",
176176
"com.github.stephenc.jcip:jcip-annotations:1.0-1",
177177
"com.google.code.findbugs:jsr305:3.0.2",
178178
"com.google.code.gson:gson:2.12.1",
179-
"com.google.guava:guava:33.4.5-jre",
179+
"com.google.guava:guava:33.4.6-jre",
180180
"com.google.auto:auto-common:1.2.2",
181181
"com.google.auto.service:auto-service:1.1.1",
182182
"com.google.auto.service:auto-service-annotations:1.1.1",
183-
"com.google.googlejavaformat:google-java-format:1.25.2",
183+
"com.google.googlejavaformat:google-java-format:1.26.0",
184184
"com.graphql-java:graphql-java:22.3",
185185
"dev.failsafe:failsafe:3.3.2",
186186
"io.grpc:grpc-context:1.71.0",
187187
"io.lettuce:lettuce-core:6.5.5.RELEASE",
188-
"io.netty:netty-buffer:4.1.119.Final",
189-
"io.netty:netty-codec-http:4.1.119.Final",
190-
"io.netty:netty-codec-http2:4.1.119.Final",
191-
"io.netty:netty-common:4.1.119.Final",
192-
"io.netty:netty-handler:4.1.119.Final",
193-
"io.netty:netty-handler-proxy:4.1.119.Final",
194-
"io.netty:netty-transport:4.1.119.Final",
188+
"io.netty:netty-buffer:4.2.0.Final",
189+
"io.netty:netty-codec-http:4.2.0.Final",
190+
"io.netty:netty-codec-http2:4.2.0.Final",
191+
"io.netty:netty-common:4.2.0.Final",
192+
"io.netty:netty-handler:4.2.0.Final",
193+
"io.netty:netty-handler-proxy:4.2.0.Final",
194+
"io.netty:netty-transport:4.2.0.Final",
195195
"io.opentelemetry:opentelemetry-api:1.48.0",
196196
"io.opentelemetry:opentelemetry-context:1.48.0",
197197
"io.opentelemetry:opentelemetry-exporter-logging:1.48.0",
@@ -202,8 +202,8 @@ maven.install(
202202
"io.opentelemetry:opentelemetry-sdk-testing:1.48.0",
203203
"io.opentelemetry:opentelemetry-sdk-trace:1.48.0",
204204
"it.ozimov:embedded-redis:0.7.3",
205-
"net.bytebuddy:byte-buddy:1.17.2",
206-
"org.htmlunit:htmlunit-core-js:4.10.0",
205+
"net.bytebuddy:byte-buddy:1.17.5",
206+
"org.htmlunit:htmlunit-core-js:4.11.0",
207207
"org.apache.commons:commons-exec:1.4.0",
208208
"org.apache.logging.log4j:log4j-core:2.24.3",
209209
"org.assertj:assertj-core:3.27.3",

0 commit comments

Comments
 (0)