Skip to main content
Version: 0.4

Dependency Updates

Bump dependencies across a project (or multiple projects), fix breaking API changes, verify tests pass, and open PRs — all concurrently.

Workflow

runPipeline(
listOutdatedDeps.then(
iterate().map(
withResource({
create: createUpdateBranch,
action: bumpDependency.then(
tryCatch(
(throwError) => runTests.unwrapOr(throwError).drop()
.then(typeCheck.unwrapOr(throwError).drop()),
diagnoseBreakage.then(applyFix),
),
).then(createPR),
dispose: cleanupBranch,
}),
).collect(),
),
);

Stages

  1. List outdated deps — query the package manager for available updates.
  2. For each dependency — process concurrently in isolated branches:
    • Bump — update the dependency version.
    • Test and type-check — run the test suite and type checker. If either fails, diagnose and fix.
    • Open PR — create a pull request with the update.
  3. CleanupwithResource ensures the branch is cleaned up even if the update fails.

Key points

  • Each dependency update runs in its own branch via withResource, so updates don't interfere.
  • tryCatch catches test/type-check failures and routes to a diagnosis step rather than aborting.
  • The diagnosis agent sees only the failure output — it doesn't know about other dependency updates.
  • Combine with the babysitting PRs workflow to monitor the resulting PRs through CI and review.