Repository navigation
[javascript] Publish atoms under the @selenium npm scope - #18132
Merged
Merged
Conversation
The @SeleniumHQ scope does not exist on npmjs, so publishing the package built by //javascript/atoms:selenium-atoms-package failed with a 404 on the PUT. The project owns the @Selenium org, so use that scope instead. Only the published package name changes; no Bazel labels move, so the binding consumers that depend on //javascript/atoms/fragments:* and the *-global atom targets are unaffected.
titusfortner
added a commit
that referenced
this pull request
Oct 9, 2026
#18132 moved from @SeleniumHQ to @Selenium but #18133 merged with seleniumhq To publish nightlies to GitHub, it must use seleniumhq to match the repo org
This was referenced Oct 9, 2026
Merged
This was referenced Oct 14, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🔗 Related Issues
Follow-up to #17459, which landed the
npm_packagetarget but named it@seleniumhq/atoms.💥 What does this PR do?
Renames the published npm package from
@seleniumhq/atomsto@selenium/atoms.The
@seleniumhqscope does not exist on npmjs — a registry search forscope:seleniumhqreturns zero packages, andselenium-webdriveris published unscoped with individual maintainers rather than through an org. Attempting to publish produced:npm returns 404 rather than 403 on a
PUTto a scope you don't own, so it can't be used to probe for private orgs. npm will auto-create a user scope on first publish, but never an org scope.The project owns the
@seleniumorg on npmjs, so the package goes there.🔧 Implementation Notes
Four files, string rename only:
javascript/atoms/package.json— thenamefield.javascript/atoms/BUILD.bazel— thepackageattribute onnpm_package, plus two comments.javascript/atoms/README.npm.md— the install line and five import examples.javascript/atoms/README.md— the "published to npm as" line.rake_tasks/node.rakelines 17 and 32 still reference@seleniumhq/selenium-webdriver. Those are deliberately untouched: they target the GitHub Packages nightly registry (npm.pkg.github.com), which requires the scope to match the GitHub org name. Different registry, different constraint.No Bazel labels move. Only the published package name changes, so every consumer that depends on
//javascript/atoms/fragments:*or the*-globalatom targets is unaffected.✅ Verification
bazel build //javascript/atoms:selenium-atoms-package— clean; the emittedpackage.jsonreads"name": "@selenium/atoms"with all four export paths (.,./get-attribute,./find-elements,./is-displayed) intact.bazel build //javascript/atoms:find-elements-global //javascript/atoms:get-attribute-global //javascript/atoms:is-displayed-global— clean, so the injection path used by the bindings still builds.//javascript/atoms/fragments:{get-attribute,is-displayed,find-elements}-typescript.jsinpy/BUILD.bazel; none of those labels changed.💡 Additional Considerations
--access public; npm defaults org-scoped packages to restricted, which is a paid feature, so omitting it fails with a 402.rake_tasks/node.rakestill only publishesselenium-webdriver— the atoms package is not yet wired intonode:releaseand currently has to be pushed by hand. Worth a follow-up so it ships with each release."main": "./dist/index.cjs"/"require"condition question raised in [javascript] Create @seleniumhq/atoms npm package from TypeScript atoms #17459 is unchanged by this PR and still open.🤖 AI assistance
🔄 Types of changes