[java] publish selenium-devtools-latest artifact#17562
Conversation
Review Summary by QodoAdd selenium-devtools-latest stable alias artifact
WalkthroughsDescription• Introduces selenium-devtools-latest artifact as stable alias • Automatically computes latest CDP version from versions list • Users can import from org.openqa.selenium.devtools.latest package • Eliminates need to update imports on Chrome version bumps • Includes comprehensive documentation and build configuration Diagramflowchart LR
A["CDP_VERSIONS list"] -->|"compute max version"| B["LATEST_CDP_VERSION"]
B -->|"reference in BUILD"| C["latest/BUILD.bazel"]
C -->|"generate sources"| D["cdp-client-generator"]
D -->|"create package"| E["org.openqa.selenium.devtools.latest"]
E -->|"export & publish"| F["selenium-devtools-latest artifact"]
B -->|"include in deps"| G["versions.bzl CDP_DEPS"]
G -->|"add to release"| H["rake_tasks/java.rake"]
File Changes1. java/src/org/openqa/selenium/devtools/versions.bzl
|
Code Review by Qodo
1. selenium-devtools-latest missing tests
|
|
Persistent review updated to latest commit 9dbf21d |
|
Persistent review updated to latest commit c26b1fb |
asolntsev
left a comment
There was a problem hiding this comment.
I've tried to build it locally from branch and run my existing tests - seems it's fully working!
c26b1fb to
9609c4b
Compare
|
Persistent review updated to latest commit 9609c4b |
|
Persistent review updated to latest commit 884776a |
🔗 Related Issues
Alternative implementation to #17492
💥 What does this PR do?
Creates a jar for devtools-latest so users do not have to keep bumping versions in their code and dependencies to have the most recent version.
🔧 Implementation Notes
At runtime, when a user's classpath has both selenium-devtools-v148 and selenium-devtools-latest, the ServiceLoader.load(CdpInfo.class) call inside CdpVersionFinder finds exactly one entry — v148CdpInfo — from the v148 jar's service file. The latest jar contributes only generated protocol types to the classpath; it's invisible to the version finder. No duplicate registration, no non-determinism, no maintenance.
🤖 AI assistance
🔄 Types of changes