Skip to content

feat(deps): sibling-repo dependency updates - #14

Merged
pyramation merged 1 commit into
mainfrom
feat/sibling-deps
Aug 7, 2026
Merged

feat(deps): sibling-repo dependency updates#14
pyramation merged 1 commit into
mainfrom
feat/sibling-deps

Conversation

@pyramation

Copy link
Copy Markdown
Contributor

Summary

Adds makage deps, a local front end over update-deps for the common case where all repos are siblings on disk. A bare name resolves to ../<name> relative to the target workspace root, so from constructive-db:

makage deps constructive        # == update-deps --from ../constructive --in <workspace-root>
makage deps pgsql-parser
makage deps --all --install     # every sibling pnpm workspace, then pnpm install
makage deps --list              # which siblings are pnpm workspaces

which is what the per-repo scripts are meant to look like:

"deps:constructive": "makage deps constructive",
"deps:pgsql-parser": "makage deps pgsql-parser",
"deps:siblings": "makage deps --all"

Mechanics worth knowing:

  • updateDeps({ from, in, dryRun, quiet }) is now the reusable core; runUpdateDeps(args) is the unchanged --from/--in CLI wrapper that still prints the JSON blob to stdout. deps calls the core once per sibling and prints a human-readable consumer: dep old -> new summary to stderr, keeping stdout clean unless --json is passed.
  • Target workspace is findWorkspaceRoot(cwd) (override with --in), so it works from any subdirectory of the repo.
  • Names with a path separator or a leading .// are treated as paths (makage deps ../../other/repo).
  • A named sibling without pnpm-workspace.yaml is a hard error rather than a silent skip; --all only picks up directories that are pnpm workspaces.
  • --install runs pnpm install in the target only when something actually changed and it isn't a dry run.

Tests use a real temp-dir sibling layout (parent/{constructive,pgsql-parser,constructive-db}) rather than fs mocks, covering bare-name resolution, --all, --dry-run, path arguments, --list, and both error paths. README (root + package) and the makage-overview skill document the command.

Link to Devin session: https://app.devin.ai/sessions/b0c68abb52c94c879e90480d7d6d4b80
Requested by: @pyramation

@pyramation pyramation self-assigned this Aug 7, 2026
@devin-ai-integration

Copy link
Copy Markdown
Contributor

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment, CI, and merge conflict monitoring

@pyramation
pyramation merged commit d21b8c6 into main Aug 7, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant