Problem/Motivation
The package is scoped @webship/diffy-steps (#1). It should be
@webship-js/diffy-steps.
@webship is the GitHub organisation, which covers the whole Webship product
family — the Drupal distribution, its 14 web* modules, the theme, the patch
metapackages, the project templates. Almost none of that is JavaScript, and none
of it belongs on npm. This package is not a Webship-distribution artefact; it is
a plugin for the webship-js test harness, and that is the only thing it can
be used with. The scope should name the thing it plugs into.
It also reads better at the point of use. Someone scanning a cucumber.js
require: list sees webship-js core steps on one line and
@webship-js/diffy-steps on the next, and the relationship is obvious. With
@webship/... it looks like an unrelated product that happens to share a
prefix.
Proposed resolution
- "name": "@webship/diffy-steps",
+ "name": "@webship-js/diffy-steps",
and update every reference that carries the scope: install commands, the
node_modules/... require paths in both configuration examples, the copy and
uninstall snippets, the doc headings, and the step-file header. Regenerate
package-lock.json.
version stays 2.0.0 and publishConfig.access stays public.
Nothing has been published yet, so this costs nothing — no deprecation, no
redirect, no migration for consumers. The window closes at first publish.
Namespace check before creating the org: an npm package named webship-js
already exists (the harness itself). There is no org or reserved scope of that
name today — registry.npmjs.org/-/org/webship-js returns 404 and
@webship-js/diffy-steps is unclaimed — but whether npm permits an org whose
name matches an existing package name is only settled at creation time. If npm
rejects it, the fallback options are to keep @webship, or pick another scope,
and this issue should record which was chosen.
Checkpoints
Problem/Motivation
The package is scoped
@webship/diffy-steps(#1). It should be@webship-js/diffy-steps.@webshipis the GitHub organisation, which covers the whole Webship productfamily — the Drupal distribution, its 14
web*modules, the theme, the patchmetapackages, the project templates. Almost none of that is JavaScript, and none
of it belongs on npm. This package is not a Webship-distribution artefact; it is
a plugin for the webship-js test harness, and that is the only thing it can
be used with. The scope should name the thing it plugs into.
It also reads better at the point of use. Someone scanning a
cucumber.jsrequire:list seeswebship-jscore steps on one line and@webship-js/diffy-stepson the next, and the relationship is obvious. With@webship/...it looks like an unrelated product that happens to share aprefix.
Proposed resolution
and update every reference that carries the scope: install commands, the
node_modules/...require paths in both configuration examples, the copy anduninstall snippets, the doc headings, and the step-file header. Regenerate
package-lock.json.versionstays2.0.0andpublishConfig.accessstayspublic.Nothing has been published yet, so this costs nothing — no deprecation, no
redirect, no migration for consumers. The window closes at first publish.
Namespace check before creating the org: an npm package named
webship-jsalready exists (the harness itself). There is no org or reserved scope of that
name today —
registry.npmjs.org/-/org/webship-jsreturns 404 and@webship-js/diffy-stepsis unclaimed — but whether npm permits an org whosename matches an existing package name is only settled at creation time. If npm
rejects it, the fallback options are to keep
@webship, or pick another scope,and this issue should record which was chosen.
Checkpoints
Automated unit/functional testing coverage