fix(pack): add missing download and host packages to Linux INTERNAL_PACKAGES#2837
Conversation
β¦ACKAGES The native (non-containerized) Linux AppImage build fails with npm 404 errors because @open-design/download and @open-design/host β runtime dependencies of @open-design/desktop and @open-design/web β were not included in the INTERNAL_PACKAGES list. Without tarballs for these two packages, npm install in the assembled app directory tries to resolve them from the public registry where they don't exist. Add both packages to INTERNAL_PACKAGES and their build steps to buildWorkspaceArtifacts. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
lefarcen
left a comment
There was a problem hiding this comment.
Hi @Echo9k! Thanks for writing up the Linux AppImage packaging failure so clearly β the npm 404 and workspace-only package context make the scope easy to understand.
One quick PR-template cleanup before pool review picks this up: could you add the Surface area checklist and a Validation section? You can move the existing Linux build/install checks into Validation; the important bit is making the packaging surface and verification path easy to scan during release review.
Appreciate the focused fix here. π
nettee
left a comment
There was a problem hiding this comment.
Thanks for fixing the Linux AppImage 404 path. I found one follow-up that would make this packaging seam less likely to drift again.
π Powered by Looper Β· runner=reviewer Β· agent=opencode Β· An autonomous AI dev team for your GitHub repos.β¦ression test 1. Extend the INTERNAL_PACKAGES fix to mac/constants.ts, mac/workspace.ts, win/constants.ts, and win/app.ts so all three pack lanes produce tarballs for @open-design/download and @open-design/host. 2. Add internal-packages-coverage.test.ts that derives required workspace runtime deps from apps/desktop and apps/web package.json files and asserts every pack lane's INTERNAL_PACKAGES includes them. This prevents the same drift from recurring when a new workspace dependency is added. 3. Update win-app.test.ts and workspace-build.test.ts mock directory lists to include the two new packages.
lefarcen
left a comment
There was a problem hiding this comment.
Hey @Echo9k, thanks for the quick cleanup here β the updated Surface area and Validation sections make the cross-platform packaging scope much easier to scan.
One last body-detail ask for the bugfix template: could you add a short Bug fix verification note that calls out the redβgreen seam? For example, note that the new internal-packages coverage would fail when a runtime workspace:* dependency is missing from a pack lane, and now passes across linux/mac/win.
That should make the regression story clear for release review. π
|
Thanks for the review feedback! @lefarcen β Added Surface area checklist and Validation section to the PR description. @nettee β Great catch. I've extended the fix to all three pack lanes (mac/constants.ts, mac/workspace.ts, win/constants.ts, win/app.ts) and added a regression test ( All 132 tests in |
|
Heads-up: PR #2845 is also open against this same Linux AppImage packaging blocker. Both PRs touch You and @youcefzemmar may want to compare approaches; the maintainer team will decide which path lands. Sharing this so neither effort gets wasted. |
|
@Echo9k friendly reminder: this PR has been waiting on an author response for more than 3 days after reviewer or maintainer feedback. When you have a chance, please reply here or push an update. To keep the queue manageable, PRs with no author activity for more than 5 days after feedback may be closed automatically, but they can be reopened when work resumes. |
|
Addressed the blocking workspace-build cache follow-up and pushed What changed:
Validation run locally on Node 24:
GitHub still shows |
nettee
left a comment
There was a problem hiding this comment.
@Echo9k I verified the cross-platform packaging follow-up on this head: the missing @open-design/download / @open-design/host tarball coverage is now wired through the linux/mac/win internal package lists, the shared mac/win workspace-build cache manifest was expanded for the new package outputs, and the regression tests cover both lane inclusion and cache-hit restoration for the added artifacts. Thanks for closing the cache-path follow-up as well; this looks ready from the implementation side.
|
Fixed the CI failure from Cause: after the earlier fix, mac/win standalone prebundle installs included Fix:
Validation run locally on Node 24:
|
π π‘ You just leveled up to Giotto
π Your contributions send a clear signal across the network: you care about making Open Design better. π Thanks for helping Open Design move forward. Keep building in the open. π π Rank #198 among 198 contributors. |
|
π Merged, @Echo9k! The Linux AppImage npm 404 is fixed and the coverage landed cleanly across all three pack lanes. The |
Summary
@open-design/downloadand@open-design/hosttoINTERNAL_PACKAGESin all three pack lanes (linux, mac, win)buildWorkspaceArtifactsso tarballs are produced before the assembled app npm installinternal-packages-coverage.test.tsregression test that derives required workspace deps from app manifests and asserts all pack lanes include themWhy
The native
tools-pack linux build --to appimagefails with:@open-design/desktopdeclares@open-design/downloadand@open-design/hostas runtime dependencies, and@open-design/webalso depends on@open-design/host. Since these packages are not published to npm (workspace-only), the assembled app npm install step needs local tarballs β but they were not being generated because both packages were absent fromINTERNAL_PACKAGES.The same omission existed in the mac and win lanes.
What users will see
pnpm tools-pack linux build --to appimage(without--containerized) now completes successfully and produces a working AppImage. Mac and win lanes are also corrected proactively.Surface area
tools/pack/src/linux.tsβ INTERNAL_PACKAGES + buildWorkspaceArtifactstools/pack/src/mac/constants.tsβ INTERNAL_PACKAGEStools/pack/src/mac/workspace.tsβ buildWorkspaceArtifactstools/pack/src/win/constants.tsβ INTERNAL_PACKAGEStools/pack/src/win/app.tsβ buildWorkspaceArtifactstools/pack/tests/internal-packages-coverage.test.tsβ new regression testtools/pack/tests/win-app.test.tsβ updated mock dirstools/pack/tests/workspace-build.test.tsβ updated mock dirs + output filesValidation
pnpm tools-pack linux build --to appimageon aarch64 Linux β produced 265MB AppImagepnpm tools-pack linux installβ installed to ~/.local/bin/ with desktop entry and iconnpx vitest runintools/pack/β 21 test files, 132 tests all passinternal-packages-coverage.test.tspasses for all three lanes (linux, mac, win)build_linuxjob (whenENABLE_STABLE_LINUXis set) should passBug fix verification
Red-spec test:
tools/pack/tests/internal-packages-coverage.test.tsThis test reads the runtime
dependenciesfromapps/desktop/package.json,apps/web/package.json,apps/daemon/package.json, andapps/packaged/package.json, collects every@open-design/*workspace dependency, then asserts that each pack lane (linux, mac, win) declares all of them in itsINTERNAL_PACKAGESlist.@open-design/downloador@open-design/hostfrom any lane causes the test to fail with a message likelinux INTERNAL_PACKAGES is missing: @open-design/download, @open-design/host. This matches the pre-fix state of all three lanes.The test also guards against future drift: the next time someone adds a
workspace:*runtime dependency to any of the packaged apps without updating the pack lanes, this test will go red immediately.