ci(plugin-kit): repair the file: dependency bun 1.3 links to itself
ci / web (push) Successful in 57s
ci / docs-site (push) Successful in 1m23s
apple / swift (push) Successful in 5m39s
ci / bench (push) Successful in 5m53s
ci / rust-arm64 (push) Successful in 10m18s
ci / rust (push) Failing after 13m3s
docker / build-push (--build-arg FEDORA_VERSION=44, ci, ci/fedora-rpm.Dockerfile, punktfunk-fedora44-rpm) (push) Successful in 10s
decky / build-publish (push) Successful in 21s
docker / build-push (ci, ci/fedora-rpm.Dockerfile, punktfunk-fedora-rpm) (push) Successful in 17s
docker / build-push (., web/Dockerfile, punktfunk-web) (push) Successful in 53s
docker / build-push (ci, ci/rust-ci-noble.Dockerfile, punktfunk-rust-ci-noble) (push) Successful in 21s
docker / build-push (ci, ci/rust-ci.Dockerfile, punktfunk-rust-ci) (push) Successful in 10s
docker / build-push (docs-site, docs-site/Dockerfile, punktfunk-docs) (push) Successful in 10s
android / android (push) Successful in 16m17s
arch / build-publish (push) Successful in 16m23s
deb / build-publish (push) Successful in 9m14s
deb / build-publish-host (push) Successful in 10m6s
deb / build-publish-client-arm64 (push) Successful in 7m26s
rpm / build-publish (44, fedora-44, punktfunk-fedora44-rpm) (push) Successful in 23m41s
rpm / build-publish (43, bazzite, punktfunk-fedora-rpm) (push) Successful in 23m52s
apple / screenshots (push) Successful in 25m45s
docker / build-push-arm64cross (push) Successful in 15s
docker / deploy-docs (push) Successful in 26s
ci / web (push) Successful in 57s
ci / docs-site (push) Successful in 1m23s
apple / swift (push) Successful in 5m39s
ci / bench (push) Successful in 5m53s
ci / rust-arm64 (push) Successful in 10m18s
ci / rust (push) Failing after 13m3s
docker / build-push (--build-arg FEDORA_VERSION=44, ci, ci/fedora-rpm.Dockerfile, punktfunk-fedora44-rpm) (push) Successful in 10s
decky / build-publish (push) Successful in 21s
docker / build-push (ci, ci/fedora-rpm.Dockerfile, punktfunk-fedora-rpm) (push) Successful in 17s
docker / build-push (., web/Dockerfile, punktfunk-web) (push) Successful in 53s
docker / build-push (ci, ci/rust-ci-noble.Dockerfile, punktfunk-rust-ci-noble) (push) Successful in 21s
docker / build-push (ci, ci/rust-ci.Dockerfile, punktfunk-rust-ci) (push) Successful in 10s
docker / build-push (docs-site, docs-site/Dockerfile, punktfunk-docs) (push) Successful in 10s
android / android (push) Successful in 16m17s
arch / build-publish (push) Successful in 16m23s
deb / build-publish (push) Successful in 9m14s
deb / build-publish-host (push) Successful in 10m6s
deb / build-publish-client-arm64 (push) Successful in 7m26s
rpm / build-publish (44, fedora-44, punktfunk-fedora44-rpm) (push) Successful in 23m41s
rpm / build-publish (43, bazzite, punktfunk-fedora-rpm) (push) Successful in 23m52s
apple / screenshots (push) Successful in 25m45s
docker / build-push-arm64cross (push) Successful in 15s
docker / deploy-docs (push) Successful in 26s
The publish workflow has been failing at Typecheck with "cannot find module '@punktfunk/host'" — every import of the SDK, in a job whose previous step built that very SDK successfully. bun 1.3 installs a `file:` dependency by copying its DIRECTORIES but symlinking each top-level FILE to itself: `node_modules/@punktfunk/host/package.json -> package.json`, a dangling self-reference. So `dist/index.d.ts` arrives intact while the manifest that points at it does not, and resolution dies at the first step it takes. The types were never missing; nothing could find the front door. Replacing that tree with a real copy is the whole fix, and the step no-ops itself the moment bun links `file:` deps correctly again. Not a regression from anything in the kit — it has been broken since bun updated, and went unnoticed because nothing has been published since 0.1.4. Verified from a clean node_modules: install → repair → typecheck → 20 tests → build, all green.
This commit is contained in:
@@ -39,6 +39,25 @@ jobs:
|
||||
working-directory: plugin-kit
|
||||
run: bun install --frozen-lockfile --ignore-scripts
|
||||
|
||||
# bun 1.3 installs a `file:` dependency by copying its DIRECTORIES but symlinking each
|
||||
# top-level FILE to itself — `node_modules/@punktfunk/host/package.json -> package.json`, a
|
||||
# dangling self-reference. `dist/` therefore arrives intact while the manifest that points at
|
||||
# it does not, so module resolution dies at the first step and every `@punktfunk/host` import
|
||||
# reads as "cannot find module". Replacing the tree with a real copy is the whole fix; drop
|
||||
# this step once bun links `file:` deps correctly again.
|
||||
- name: Repair the file: dependency (bun 1.3 self-symlink)
|
||||
working-directory: plugin-kit
|
||||
run: |
|
||||
# -f follows the link, so this is true only when the manifest actually resolves.
|
||||
if test -f node_modules/@punktfunk/host/package.json; then
|
||||
echo "bun linked it correctly — this step can go"
|
||||
else
|
||||
rm -rf node_modules/@punktfunk/host
|
||||
cp -R ../sdk node_modules/@punktfunk/host
|
||||
fi
|
||||
test -f node_modules/@punktfunk/host/package.json
|
||||
test -f node_modules/@punktfunk/host/dist/index.d.ts
|
||||
|
||||
- name: Typecheck
|
||||
working-directory: plugin-kit
|
||||
run: bun run typecheck
|
||||
|
||||
Reference in New Issue
Block a user