Release blocker
The current npm release job installs dependencies and immediately runs pantry publish --npm --access public; it never builds all publishable workspaces. Only craft-native has a prepublishOnly build hook, so the v0.0.92 registry artifacts for six secondary packages were published without dist/:
@craft-native/android: 2 missing targets (dist/index.js,dist/index.d.ts)@craft-native/ios: 3 missing targets (dist/index.js,dist/index.d.ts,dist/cli.js)@craft-native/react: all 3 distinctdistentry files missing@craft-native/svelte: all 3distentry files plus its declared source entry missing@craft-native/ts-maps: all 8 declareddistsubpath files missing@craft-native/vue: all 3 distinctdistentry files missing
craft-native and create-craft are the only v0.0.92 tarballs whose declared file targets are present. Across the eight published manifests, 32 manifest references (23 distinct physical paths) are absent.
Reproduction
npm pack craft-native@0.0.92 create-craft@0.0.92 \
@craft-native/android@0.0.92 @craft-native/ios@0.0.92 \
@craft-native/react@0.0.92 @craft-native/svelte@0.0.92 \
@craft-native/ts-maps@0.0.92 @craft-native/vue@0.0.92
tar -tzf craft-native-react-0.0.92.tgz
tar -tzf craft-native-ts-maps-0.0.92.tgzThe React tarball contains only package metadata/docs/license; the ts-maps tarball contains source but no dist. Equivalent omissions affect the other four packages above.
Root cause
.github/workflows/release.yml npm job currently does:
bun installpantry publish --npm --access public
It does not run package builds or verify:packages. The root SDK survives because packages/typescript/package.json alone defines prepublishOnly: bun run build.
Expected
- Build every publishable npm workspace before publishing (including ts-maps, which is currently absent from root
build:all). - Pack each workspace and fail if any declared
main,module,types,bin, or concreteexportstarget is absent. - Run an import/type-resolution smoke test against the packed artifacts before registry mutation.
- Republish corrected packages under a new version; npm 0.0.92 is already immutable.
Separate package-local defects remain after a build and are tracked in #286 (mobile declarations) and #287 (Svelte source export). Found during the release-readiness audit alongside #272.