Skip to content

Workspaces

Workspaces

drago supports multi-package workspaces through a root drago.toml file with a [workspace] section.

Declaring members

[workspace]
members = ["apps/api", "apps/cli", "libs/core"]

Each member path must contain its own drago.toml.

Member selection

Commands that support workspaces can target:

  • every workspace member
  • one member selected by -p or --package

The selector matches:

  • the package name from that member’s drago.toml
  • the full member root path
  • the trailing path segment

Commands that work across members

The current drago implementation expands workspace members for:

CommandWorkspace behavior
buildruns for every selected member
checkruns for every selected member
testruns for every selected member
treeprints dependency trees for selected members
whysearches selected members
outdatedchecks selected members
installinstalls for selected members
updateupdates selected members

run behavior

run is stricter:

  • if multiple members match, drago run fails and asks for --package
  • if you are in a workspace root, use drago run --package <name>

Lockfile behavior

The current implementation merges member lock data into a workspace drago.lock and checks consistency when commands are run with --locked or --frozen.

Example

Terminal window
drago build
drago check --package cli
drago test --package core
drago run --package api