Repository navigation
fix: the npm wrapper carries the scope (0.2.5) - #31
Merged
Merged
Conversation
npm refused the wrapper with `403 Package name too similar to existing packages`, and named them. Every platform package published, and the wrapper that points at them did not, so npm holds four packages nobody can install. The registry names the remedy in the refusal: a scoped name. The platform packages already carry the scope, so the wrapper now matches them. The commands do not change, because the bin entries keep both names; a global install still gives the typed command. `npx` takes the package name, so the README and two module comments say the scoped one. `the_readme_installs_the_name_the_wrapper_publishes` reads the wrapper manifest and refuses a README that promises a different name, which is the drift that shipped here. Version 0.2.5. A tag cannot move, so the fix needs a number of its own.
cjohnhanson
marked this pull request as ready for review
September 12, 2026 15:00
cjohnhanson
added a commit
that referenced
this pull request
Sep 12, 2026
npm refused the wrapper with `403 Package name too similar to existing packages`, and named them. Every platform package published, and the wrapper that points at them did not, so npm holds four packages nobody can install. The registry names the remedy in the refusal: a scoped name. The platform packages already carry the scope, so the wrapper now matches them. The commands do not change, because the bin entries keep both names; a global install still gives the typed command. `npx` takes the package name, so the README and two module comments say the scoped one. `the_readme_installs_the_name_the_wrapper_publishes` reads the wrapper manifest and refuses a README that promises a different name, which is the drift that shipped here. Version 0.2.5. A tag cannot move, so the fix needs a number of its own.
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.
npm refused the wrapper with
403 Package name too similar to existing packages, and listed them. All four platform packages published and thewrapper that points at them did not, so the registry holds four packages
nobody can install.
The refusal names the remedy: a scoped name. The platform packages
already carry the scope, so the wrapper now matches what it depends on.
The commands do not change, because the
binentries keep both names,and a global install still gives the typed command.
npxtakes a package name rather than a command, so the README's runline, its install line, and two module comments name the scoped package.
The install section says why in one sentence, because a reader who meets
a scope with no reason assumes a typo.
the_readme_installs_the_name_the_wrapper_publishesreads the name outof the wrapper manifest and refuses a README that promises a different
one. It was killed by mutation. One older test counted every scoped line
in the manifest to find the optional dependencies, and the wrapper's own
name is now such a line, so it excludes the name.
A tag cannot move, so the fix needs a version of its own.