Skip to content

docs(cli): npm-first README + flag wrong-arch Windows ARM64 mapping - #277

Merged
aram-devdocs merged 4 commits into
mainfrom
docs/npm-readme-rewrite
May 8, 2026
Merged

docs(cli): npm-first README + flag wrong-arch Windows ARM64 mapping#277
aram-devdocs merged 4 commits into
mainfrom
docs/npm-readme-rewrite

Conversation

@aram-devdocs

Copy link
Copy Markdown
Owner

Summary

  • Rewrites crates/plumb-cli/README.md to lead with npm i -g plumb-cli (the npm registry renders this file on the package page).
  • Mentions cargo / brew / curl alternatives. Adds Intel Mac note pointing to cargo install (ci(release): re-enable x86_64-apple-darwin target post-V0 #269).
  • Replaces crates.io category slugs that leak into npm keywords (command-line-utilities, development-tools, web-programming) with npm-friendly tags: cli, linter, design-system, mcp, chromium. Categories stay in the categories field (still inherited from the workspace) where they belong.
  • Documents the wrong-arch Windows ARM64 npm fallback in dist-workspace.toml with a fix path. cargo-dist 0.28.0 has no opt-out knob for the auto-expanded supportedPlatforms; the surgical fix lives in the publish-npm job in .github/workflows/release.yml (extract tarball, strip the aarch64-pc-windows-msvc key from package.json, re-pack before npm publish) and is intentionally deferred to a follow-up PR per the parallel-batch peer-disjoint scope.

Why

From the public-surface audit. Closes audit finding B4. Refs H7 (the release.yml strip step lands separately).

Verification

Locally generated the npm tarball with dist build --artifacts=global, extracted it, and confirmed the package.json issue: aarch64-pc-windows-msvc maps to plumb-cli-x86_64-pc-windows-msvc.zip (silent wrong-arch install on Windows ARM). The cargo-dist npm installer auto-expands fallback target triples; there is no dist-workspace.toml knob to opt out in 0.28.0.

Test plan

  • cargo package --list -p plumb-cli shows README.md.
  • cargo check -p plumb-cli clean.
  • just validate passes (fmt, clippy, tests, cargo-deny, determinism, agents check).
  • just determinism-check passes.
  • After next release: npm view plumb-cli readme | head -20 leads with npm i -g.
  • After next release (with the follow-up release.yml strip step): npm view plumb-cli supportedPlatforms does not include aarch64-pc-windows-msvc.

🤖 Generated with Claude Code

The npm registry shows `crates/plumb-cli/README.md` as the package
README on https://www.npmjs.com/package/plumb-cli. The previous version
led with `cargo install plumb-cli` only, leaving npm landers with no
indication the package works as an npm install.

Lead with `npm i -g plumb-cli`, then list cargo / brew / curl as
alternatives. Add a short "what it does" block, quick usage examples,
and a docs link. Add an Intel Mac note pointing at #269.

Closes audit finding B4 (https://github.com/aram-devdocs/plumb — npm
page shows cargo install instead of `npm i -g`).
The workspace `keywords` defaults are useful for the library crates but
land in the npm package via cargo-dist, where they're stitched together
with the crates.io `categories` slugs. The result on npmjs.com mixed
crates.io taxonomy (`command-line-utilities`, `development-tools`,
`web-programming`) with workspace keywords — none of which an npm
searcher types.

Override `keywords` at the `plumb-cli` package level with five
free-form, npm-friendly tags: `cli`, `linter`, `design-system`, `mcp`,
`chromium`. The `categories` field stays inherited from the workspace
since the slugs there are correct for crates.io.

crates.io caps at 5 keywords; alphanumeric + dash + underscore only —
all five pass.

Closes audit finding B4 (npm-friendly tags).
cargo-dist 0.28.0 auto-expands the npm `supportedPlatforms` map with
fallback target triples pointing at the wrong-arch binary. With the
current `targets` list, an `aarch64-pc-windows-msvc` install silently
fetches the x86_64 Windows zip — emulation works, but the user gets a
slow x86_64 binary instead of an explicit "no native build" error.

cargo-dist 0.28.0 has no knob to opt out of the supportedPlatforms
auto-expansion. Document the issue and the fix path (extract tarball,
strip the bad key from `package.json`, re-pack before `npm publish`)
in the dist-workspace.toml comment so the publish-npm job's follow-up
PR has the context.

Refs audit finding H7. The `release.yml` strip step lands separately.
@github-actions

github-actions Bot commented May 7, 2026

Copy link
Copy Markdown
Contributor

All crates inherit version.workspace = true — the single bump in Cargo.toml covers everything.


PR #286 — chore(main): release 0.0.12

Bucket: deps / release automation
Files changed: .release-please-manifest.json, CHANGELOG.md, Cargo.toml

Review

Determinism / layering / error handling / tests / docs

None of the five focus areas apply. This PR contains no Rust code — it is a pure release-please version bump with a CHANGELOG entry. No new logic, no new public API surface, no new unsafe, no new deps.

Mechanical correctness checks:

Nothing to flag. The PR is mechanically correct and generated by release-please.

Verdict: APPROVE

@aram-devdocs aram-devdocs changed the title docs(npm): npm-first README + flag wrong-arch Windows ARM64 mapping docs(cli): npm-first README + flag wrong-arch Windows ARM64 mapping May 7, 2026
@aram-devdocs
aram-devdocs merged commit 6491b62 into main May 8, 2026
18 of 24 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant