Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Discovery

monochange discovers packages from native manifests and workspace definitions. For a capability-by-capability comparison of each adapter, see Ecosystems.

Supported sources today:

  • Cargo workspaces and standalone crates
  • npm workspaces, pnpm workspaces, Bun workspaces, and standalone package.json packages
  • Deno workspaces and standalone deno.json / deno.jsonc packages
  • Dart and Flutter workspaces plus standalone pubspec.yaml packages
  • Python uv workspaces, Poetry projects, and standalone pyproject.toml packages
  • Go modules discovered from standalone go.mod files

Run discovery:

mc step:validate
mc discover --format json

Key behaviors:

  • native workspace globs are expanded by each ecosystem adapter
  • dependency names are normalized into one graph
  • package ids and manifest paths in CLI output are rendered relative to the repository root for deterministic automation
  • gitignored paths and nested git worktrees are skipped during discovery
  • version-group assignments are attached after discovery
  • unmatched group members (declared in config but not found during discovery) produce warnings
  • unresolvable group members (invalid package IDs in group.packages) produce errors during configuration loading
  • discovery currently scans all supported ecosystems regardless of [ecosystems.*] toggles in monochange.toml