You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The npm tarball shipped only dist/bin/hauler.js, dist/bin/cargo-hauler.mjs, and dist/bin/cargo-hauler-flight.mjs. cargo-hauler-install was gone (mise: "not a valid shim"; node …/cargo-hauler-install.js → MODULE_NOT_FOUND) and cargo-hauler pointed at a .js that does not exist. Consumers could not install the plugin into any host.
those two, plus hauler.js, cargo-hauler-flight.mjs
0.6.9
same
same
0.6.10
same
hauler.js, cargo-hauler.mjs, cargo-hauler-flight.mjs only
The break landed when cargo-hauler #140 pinned agent-bundle to 9197015b9ae5088eee75c7d2d11a40890b37b367 (then-main, which includes the npm-root package build from #656 / 45beb54792). That build copies the artifact into dist/, compiles only authored bin entries, and does not generate cargo-hauler-install. cargo-hauler still publishes the repo-rootpackage.json (files: [dist, artifact, …]) with the pre-#656.js bin map.
AB7012 already rejects a staged npm-rootpackage.json whose bins name omitted files (pack-inventory.ts). It never sees the repo-root manifest npm actually packs, so agent-bundle prepack and pnpm check were green while the published tarball was uninstallable.
The owner's #639 review already required this: reject unsupported references with an actionable diagnostic. #639 itself was closed in favor of #656; the diagnostic still only covers the generated root.
Follow-on (same family)
cargo-hauler@0.6.11 fixed the bin map and staged cargo-hauler-install, but cargo-hauler-install install <host> still failed on a real npm-installed tree:
AB7001: --from root does not match its manifest: bin/cargo-hauler.mjs differs from its files[] row in bytes, mode, or digest.
SHA-256 matched. npm pack/extract rewrote the mode: artifact/bin/cargo-hauler.mjs was 0o664 vs manifest 493 (0o755); dist/bin/cargo-hauler.mjs was 0o775. A freshly built worktree (packed-install) writes the correct bits, so the suite never saw this. cargo-hauler@0.6.12 works around it by preferring sibling artifact/ and chmod'ing files[] rows to the manifest mode before installBundle.
Ask
Refuse to emit or publish a package.json whose bin entries point at files absent from the packed package — the tarball npm will actually install, not only the generated npm-root. Actionable diagnostic (the feat(build): package the canonical npm root #639 bar). AB7012 is the right code if it is applied to the published manifest.
Packed pool: npm pack, install the tarball into a clean prefix, and run every declared bin (not only the artifact CLI). 0.6.10 would have failed on cargo-hauler and cargo-hauler-install.
The same packed install should exercise install <host> (or installBundle) against the extracted tree so npm-rewritten modes fail in CI instead of on the consumer (AB7001).
Failure
cargo-hauler@0.6.10published thispackage.jsonbinmap:{ "cargo-hauler": "./dist/bin/cargo-hauler.js", "cargo-hauler-install": "./dist/bin/cargo-hauler-install.js", "hauler": "./dist/bin/hauler.js" }The npm tarball shipped only
dist/bin/hauler.js,dist/bin/cargo-hauler.mjs, anddist/bin/cargo-hauler-flight.mjs.cargo-hauler-installwas gone (mise: "not a valid shim";node …/cargo-hauler-install.js→MODULE_NOT_FOUND) andcargo-haulerpointed at a.jsthat does not exist. Consumers could not install the plugin into any host.npm packof the prior releases:bin.cargo-hauler/bin.cargo-hauler-installdist/bin/./dist/bin/cargo-hauler.js,./dist/bin/cargo-hauler-install.jshauler.js,cargo-hauler-flight.mjshauler.js,cargo-hauler.mjs,cargo-hauler-flight.mjsonlyThe break landed when cargo-hauler #140 pinned agent-bundle to
9197015b9ae5088eee75c7d2d11a40890b37b367(then-main, which includes the npm-root package build from #656 /45beb54792). That build copies the artifact intodist/, compiles only authoredbinentries, and does not generatecargo-hauler-install. cargo-hauler still publishes the repo-rootpackage.json(files: [dist, artifact, …]) with the pre-#656.jsbin map.AB7012already rejects a staged npm-rootpackage.jsonwhose bins name omitted files (pack-inventory.ts). It never sees the repo-root manifest npm actually packs, soagent-bundle prepackandpnpm checkwere green while the published tarball was uninstallable.The owner's #639 review already required this: reject unsupported references with an actionable diagnostic. #639 itself was closed in favor of #656; the diagnostic still only covers the generated root.
Follow-on (same family)
cargo-hauler@0.6.11fixed the bin map and stagedcargo-hauler-install, butcargo-hauler-install install <host>still failed on a real npm-installed tree:SHA-256 matched. npm pack/extract rewrote the mode:
artifact/bin/cargo-hauler.mjswas0o664vs manifest493(0o755);dist/bin/cargo-hauler.mjswas0o775. A freshly built worktree (packed-install) writes the correct bits, so the suite never saw this. cargo-hauler@0.6.12 works around it by preferring siblingartifact/and chmod'ingfiles[]rows to the manifest mode beforeinstallBundle.Ask
package.jsonwhosebinentries point at files absent from the packed package — the tarball npm will actually install, not only the generated npm-root. Actionable diagnostic (the feat(build): package the canonical npm root #639 bar).AB7012is the right code if it is applied to the published manifest.npm pack, install the tarball into a clean prefix, and run every declaredbin(not only the artifact CLI). 0.6.10 would have failed oncargo-haulerandcargo-hauler-install.install <host>(orinstallBundle) against the extracted tree so npm-rewritten modes fail in CI instead of on the consumer (AB7001).Consumer workaround is already published:
cargo-hauler@0.6.12(ScriptedAlchemy/cargo-hauler#143, #145).