Fix desktop release plugin-tasks build race under parallel pnpm #301
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#301
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?
Problem
Forgejo
release-desktopmacOS/Linux jobs fail intermittently while building@lapis-notes/tasksduringpnpm --filter @lapis-notes/desktop-electron dist:mac:all/dist:linux. The desktop shell'sbuild:workspace-plugin-distscript usedpnpm --filter … run build, whichruns matching workspace packages concurrently.
@lapis-notes/tasksbundles@lapis-notes/markdowndist exports during its production Vite build, sotasks can start before markdown
dist/exists or while markdown prepack isstill running.
Observed failures include:
Failed to resolve entry for package "@lapis-notes/markdown"Rollup failed to resolve import "micromark-util-symbol" from plugin-markdown/dist/...Goal
Desktop release builds must produce bundled first-party plugin dist outputs in
dependency order so
@lapis-notes/tasksnever builds against incompletemarkdown artifacts.
Scope
packages/desktop-electron/package.json(build:workspace-plugin-dist)packages/desktop-electron/spec.mdNon-goals
bundle-size/ownership follow-up)
Acceptance Criteria
build:workspace-plugin-distuses Turborepo so^builddependency orderis enforced for bundled plugins
Implementation Notes
Replace the parallel
pnpm --filter … run buildinvocation withpnpm exec turbo run buildusing the same bundled plugin filters. Turbo alreadydeclares
build.dependsOn = ["^build"], which builds@lapis-notes/markdownbefore
@lapis-notes/tasks.Suggested Files or Specs To Inspect
packages/desktop-electron/package.jsonturbo.jsonpackages/plugins/plugin-tasks/vite.config.tspackages/plugins/plugin-tasks/package.jsonValidation Commands
pnpm --filter @lapis-notes/desktop-electron run build:workspace-plugin-distpnpm --filter @lapis-notes/desktop-electron check:allRelated Issues
Follow-up Tasks
Implementation Summary
Switched desktop build:workspace-plugin-dist from parallel pnpm filters to turbo run build so ^build dependency order builds @lapis-notes/markdown before @lapis-notes/tasks. Updated desktop-electron spec. Validated with three clean plugin-dist runs and one uncached turbo --force build.