While Selenium code is tied to Chrome versions, the goal is to release a minor version of Selenium between Early Stable and Stable release dates as specified in Chromium Release Schedule
mvn -emp
to encrypt your passphrase~/.m2/settings.xml
contains the following lines in the <servers>
and <settingsSecurity>
sections:
<server>
<id>sonatype-nexus-snapshots</id>
<username>_your-username-for-oss.sonatype.org_</username>
<password>_your-password_</password>
</server>
<server>
<id>sonatype-nexus-staging</id>
<username>_your-username-for-oss.sonatype.org_</username>
<password>_your-password_</password>
<settingsSecurity>
<master>{your_encrypted_passphrase}</master>
</settingsSecurity>
</server>
To release a new version you will need to be registered as an owner on Nuget Obtain an API Key and store it in NUGET_API_KEY environment variable
To release a new gem you will need to be registered as a gem owner on rubygems.org
Generate an API key from rubygems and store it in GEM_HOST_API_KEY
environment variable
To release a new version you need to be registered as a Owner/Maintainer on pypi.python.org
Create a token on pypi and put it in your .pypirc file.
Make sure you have installed twine
and it is available on your PATH (pip install twine
)
To release a new version you need to be registered as a Owner/Maintainer on npmjs
1. Make sure you are authenticated to npmjs.com
. You can do that with npm adduser
1. Obtain an access token from npmjs
1. Create or edit the .npmrc file in your project directory or home directory (~/.npmrc).
1. Add a line with your token: //registry.npmjs.org/:_authToken=
There is a GitHub Actions Workflow that can be manually executed to make all appropriate updates to files in preparation for a release.
This workflow: * Updates Rust version * Builds and publishes Selenium Manager * Updates CDP version * Pins latest Selenium Manager location * Updates Java Maven dependencies * Updates Authors File * Updates versions for all bindings * Adds commit messages to changelogs * Creates PR * Starts Tests
The GitHub workflow adds the commits to the change logs, but these need to be manually updated for format and clarity
gh pr checkout <PR_NUMBER>
git push
When all tests have passed and the change logs have been updated, merge the PR. This will be the commit that gets tagged and released.
Merging the PR will now kick off an additional workflow that will do the tagging, generate a draft Selenium Release with all assets and changes populated, and create a PR with updated API Docs.
./go all:release
This command: * builds everything * publishes everything (with prompts for permissions as applicable) * updates nightly versions (with prompt for pushing final commit)
When everything is complete: * review and publish the draft release - https://github.com/SeleniumHQ/selenium/releases * merge the automatically generated API documentation Pull Request
For the given language:
* Update the version: ./go <language>:version[4.14.1]
* That auto-generates a changelog update which needs to be edited for conciseness and readability
* Commit / Push
* Tag / Push using the full name (e.g., selenium-4.14.1-java
)
* Build and publish: ./go <language>:release
* Update the documentation using Update Documentation Workflow. Be sure to specify the exact tag name
* Reset the version back to a nightly version:
sh
./go <language>:version
git commit -am "updating version to nightly"
git push
Whether major or minor release, Java has a few extra steps: 1. Go to http://oss.sonatype.org, log in 2. Navigate to https://oss.sonatype.org/#stagingRepositories 3. Look in content and make sure all jars and signed files are there 4. Close staging repository with message 5. Wait for checks and click “release” button; if the “Release” button is not enabled, this means that the checks for the repo are still running, you can click on the activity tab to see what activities are pending. This normally takes a few minutes.
bazel build //javascript/ie-driver:header
bazel-bin/javascript/ie-driver/atoms.h
to cpp/iedriver/Generated
directoryFILEVERSION
, PRODUCTVERSION
, FileVersion
, ProductVersion
FILEVERSION
, PRODUCTVERSION
, FileVersion
, ProductVersion
Release
,x64
& in Build menu, select Build Solution
x86
& in Build menu, select Build Solution
IEDriverServer_x64_x.y.z.zip
& upload it to Github ReleaseIEDriverServer_Win32_x.y.z.zip
& upload it to Github Release
./scripts/update-versions.sh ${SE_VERSION}
./scripts/release-updates.sh ${SE_VERSION}
selenium-clients-and-webdriver-bindings.html