Expose pnpm and bun workspace packages as individual build targets#1689
Draft
Expose pnpm and bun workspace packages as individual build targets#1689
Conversation
Extends workspace build target support to pnpm and bun projects, completing the set for all Node.js lockfile formats (yarn, npm, pnpm, bun). - Adds `resolveImporterPaths` to map package names (build targets) to pnpm lockfile importer paths (e.g. `"."`, `"packages/a"`) - Adds `resolveBunWorkspacePaths` to map package names to bun lockfile workspace keys (uses `""` for root, relative paths for members) - Updates `buildGraph` in `PnpmLock.hs` and `BunLock.hs` to accept an optional filter, scoping analysis to selected workspace members - Preserves the existing v9 environment propagation logic in `PnpmLock.buildGraph`, with filtering applied to the importer list Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Extends workspace build target support to pnpm and bun projects, completing the set for all Node.js lockfile formats (yarn, npm, pnpm, bun). Follow-up to #1643.
resolveImporterPathsto map package names (build targets) to pnpm lockfile importer paths (e.g.".","packages/a")resolveBunWorkspacePathsto map package names to bun lockfile workspace keys (uses""for root, relative paths for members)buildGraphinPnpmLock.hsandBunLock.hsto accept an optional filter, scoping analysis to selected workspace membersPnpmLock.buildGraph, with filtering applied to the importer listCombines and supersedes #1644 and #1654.
Test plan
resolveImporterPathstests: root →".", workspace members → relative paths,NothingforProjectWithoutTargetsresolveBunWorkspacePathstests: root →"", workspace members → relative paths,NothingforProjectWithoutTargetsbuildGraphfiltering tests for pnpm: root-only filter excludes workspace deps, workspace-only filter excludes root depsbuildGraphfiltering tests for bun: root-only filter excludes workspace deps, workspace-only filter excludes root depscabal buildclean🤖 Generated with Claude Code