Symptom
The Package Release workflow fails at the npm publish step, even though the crates.io publish succeeds. Most recent failure: run 26535293907 (the rain-math-float 0.1.5 release — the crate published fine to crates.io, only npm failed).
npm notice Publishing to https://registry.npmjs.org/ with tag latest and public access
npm error code E404
npm error 404 Not Found - PUT https://registry.npmjs.org/@rainlanguage%2ffloat
npm error 404 '@rainlanguage/float@0.0.4' is not in this registry.
Diagnosis
@rainlanguage/float has never been created in the npm registry, so the first PUT 404s. A scoped package's first publish needs the publishing identity to (a) have access to the @rainlanguage org/scope, and (b) publish with --access public (npm-publish action: access: public). A 404-on-PUT for a brand-new scoped name almost always means the NODE_AUTH_TOKEN/NPM_TOKEN lacks rights to create packages under @rainlanguage, or the scope/org isn't set up.
Note the npm package version (0.0.4) is independent of the crate version (0.1.5).
Fix options
This is orthogonal to the crates.io cutover (which is working); it just leaves Package Release red on every release.
Symptom
The
Package Releaseworkflow fails at the npm publish step, even though the crates.io publish succeeds. Most recent failure: run 26535293907 (therain-math-float 0.1.5release — the crate published fine to crates.io, only npm failed).Diagnosis
@rainlanguage/floathas never been created in the npm registry, so the firstPUT404s. A scoped package's first publish needs the publishing identity to (a) have access to the@rainlanguageorg/scope, and (b) publish with--access public(npm-publish action:access: public). A 404-on-PUT for a brand-new scoped name almost always means theNODE_AUTH_TOKEN/NPM_TOKENlacks rights to create packages under@rainlanguage, or the scope/org isn't set up.Note the npm package version (
0.0.4) is independent of the crate version (0.1.5).Fix options
@rainlanguagenpm org exists and the CI npm token is a member with publish rights.access: public(required for first publish of a scoped package).npm publish --access publicso CI can take over subsequent versions.This is orthogonal to the crates.io cutover (which is working); it just leaves
Package Releasered on every release.