Liking cljdoc? Tell your friends :D

bb-depsolve

Monorepo dependency management for Clojure/Babashka workspaces.

Sync internal git deps, upgrade mvn versions, and visualize dependency drift — all from one CLI.

Install

Via bbin

bbin install io.github.hive-agi/bb-depsolve

As a workspace dependency

Add to your bb.edn:

{:deps {io.github.hive-agi/bb-depsolve {:local/root "bb-depsolve"}}
 :tasks
 {sync {:task (exec 'bb-depsolve.cli/-main) :extra-args ["sync" "--org" "your-org"]}
  upgrade {:task (exec 'bb-depsolve.cli/-main) :extra-args ["upgrade"]}
  lint {:task (exec 'bb-depsolve.cli/-main) :extra-args ["lint"]}
  bump {:task (exec 'bb-depsolve.cli/-main) :extra-args ["bump"]}
  deps-report {:task (exec 'bb-depsolve.cli/-main) :extra-args ["report"]}}}

Commands

sync — Sync internal deps (git + mvn coords)

Finds all io.github.{org}/* deps across your workspace and updates them to the latest tag. Handles both coordinate styles:

  • :git/tag + :git/sha — tag and sha are updated together
  • :mvn/version — version is updated to the latest tag (without the v prefix)
bb -m bb-depsolve.cli sync --root . --org hive-agi
bb -m bb-depsolve.cli sync --root . --org hive-agi --apply  # write changes

upgrade — Upgrade mvn dependencies

Checks Clojars and Maven Central for newer versions of all :mvn/version deps.

bb -m bb-depsolve.cli upgrade --root .
bb -m bb-depsolve.cli upgrade --root . --apply         # interactive selection
bb -m bb-depsolve.cli upgrade --root . --pre-release    # include alpha/beta/rc

lint — Detect dep anti-patterns

Finds :local/root deps that should be converted to :git/tag or :mvn/version before publishing. Optionally auto-fixes by splitting into a local.deps.edn overlay.

bb-depsolve lint --root .
bb-depsolve lint --root . --fix  # auto-split :local/root into local.deps.edn

bump — Bump VERSION, tag, push

Reads a project's VERSION file, increments the version, commits, tags, and pushes. Designed for pre-1.0 semver conventions.

bb-depsolve bump                          # minor (patch): 0.2.1 -> 0.2.2
bb-depsolve bump --major                  # major (minor): 0.2.1 -> 0.3.0
bb-depsolve bump --stable                 # stable (major): 0.2.1 -> 1.0.0
bb-depsolve bump --sync --org hive-agi    # bump + update downstream deps
FlagEffectExample
(default)Bump patch0.2.10.2.2
--minorBump patch0.2.10.2.2
--majorBump minor, zero patch0.2.10.3.0
--stableBump major, zero rest0.2.11.0.0
--sync --org <name>After bump, run sync --apply on workspace

report — Dependency matrix

Shows which libraries are shared across projects and highlights version drift.

bb-depsolve report --root .

Options

FlagDefaultDescription
--root <dir>.Workspace root directory
--org <name>GitHub org for internal deps (required for sync)
--skip-dirs <csv>vendor,node_modules,.git,target,.cpcache,.lspDirectories to skip
--depth <n>1How deep to scan for dep files
--applyfalseWrite changes (default: dry-run)
--fixfalseAuto-fix lint issues (split :local/root into local.deps.edn)
--pre-releasefalseInclude pre-release versions in upgrade
--majorfalseBump minor version (pre-1.0 major)
--minorfalseBump patch version (explicit, same as default)
--stablefalseBump major version (1.0 release)
--syncfalseAfter bump, run sync on workspace

TUI

When running in an interactive terminal with gum available, upgrade --apply shows an interactive multi-select for choosing which deps to upgrade. Falls back to plain text in non-TTY environments.

License

Copyright (c) 2024-2026 hive-agi contributors

EPL-2.0 — see LICENSE.

Can you improve this documentation? These fine people already did:
Pedro Gomes Branquinho & Pedro Branquinho
Edit on GitHub

cljdoc builds & hosts documentation for Clojure/Script libraries

Keyboard shortcuts
Ctrl+kJump to recent docs
Move to previous article
Move to next article
Ctrl+/Jump to the search field
× close