Fix desktop release collector resolution under pnpm #284
Labels
No labels
abandoned
active
audit
blocked
data-safety
difficulty:easy
difficulty:hard
difficulty:high
difficulty:medium
docs
done
duplicate
notebook-v0
open
priority:high
ready
release-critical
safe-mode
spec
spec-backlog
subsystem:api
subsystem:backlog
subsystem:bases
subsystem:ci
subsystem:command
subsystem:configuration
subsystem:consolidate
subsystem:dependencies
subsystem:desktop-electron
subsystem:diffmerge
subsystem:docker
subsystem:docs
subsystem:fuzzy
subsystem:graph
subsystem:hotkeys
subsystem:lapis
subsystem:maint
subsystem:maintenance
subsystem:markdown
subsystem:markdown-lint
subsystem:md018
subsystem:notebook
subsystem:notifications
subsystem:opfs
subsystem:package
subsystem:plugin-markdown
subsystem:plugin-tasks
subsystem:plugins
subsystem:registry
subsystem:release
subsystem:renovate
subsystem:restore
subsystem:scripts
subsystem:search
subsystem:settings
subsystem:spec
subsystem:tasks
subsystem:testing
subsystem:ui
subsystem:web
subsystem:workspace
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
lapis-notes/lapis#284
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
pnpm release:desktop:local -- --version 2026.31.5 --skip-checks --skip-smoke --skip-uploadnow gets through the desktop bundle, but Electron Builder dies in the custom pnpm collector patch because the patch file requiresapp-builder-libinternals by package name and pnpm does not expose that transitive dependency from the package root.Problem
The release helper reaches
packages/desktop-electron/scripts/electron-builder-collector-fallback.cjs, then fails withCannot find module 'app-builder-lib/out/node-module-collector/packageManager.js'under the pnpm workspace layout.Goal
Make the Electron Builder fallback collector resolve
app-builder-libin a pnpm-safe way so the local desktop release dry run completes without touching Forgejo.Scope
packages/desktop-electron/scripts/electron-builder-collector-fallback.cjsto resolveapp-builder-libthrough Electron Builder's own package path instead of assuming it is hoisted.Non-goals
Acceptance Criteria
pnpm release:desktop:local -- --version 2026.31.5 --skip-checks --skip-smoke --skip-uploadcompletes locally on macOS.Implementation Notes
app-builder-libload reliably under pnpm.Suggested Files or Specs To Inspect
packages/desktop-electron/scripts/electron-builder-collector-fallback.cjspackages/desktop-electron/scripts/run-electron-builder.mjspackages/desktop-electron/electron-builder.config.cjsspec/src/20-packages/desktop-electron/index.mdValidation Commands
pnpm release:desktop:local -- --version 2026.31.5 --skip-checks --skip-smoke --skip-uploadRelated Issues
Follow-up Tasks
Implementation Summary
electron-builder-collector-fallback.cjs resolves app-builder-lib through createRequire(electron-builder/package.json) so pnpm can load the traversal collector patch. release:desktop:local --allow-dirty now reaches mac packaging with manual node_modules traversal; a later unrelated plugin-history dist ENOENT blocked the full dry run.