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.jsonpackages - Deno workspaces and standalone
deno.json/deno.jsoncpackages - Dart and Flutter workspaces plus standalone
pubspec.yamlpackages - Python uv workspaces, Poetry projects, and standalone
pyproject.tomlpackages - Go modules discovered from standalone
go.modfiles
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 inmonochange.toml