Skip to main content

Crate monochange

Crate monochange 

Source
Expand description

§monochange

monochange is the top-level entry point for the workspace.

Reach for this crate when you want one API and CLI surface that discovers packages across Cargo, npm/pnpm/Bun, Deno, Dart/Flutter, Python, and Go workspaces, exposes top-level commands from monochange.toml, and runs configured CLI commands from those definitions.

§Why use it?

  • coordinate one config-defined CLI across several package ecosystems
  • expose discovery, change creation, and release preparation as both commands and library calls
  • connect configuration loading, package discovery, graph propagation, and semver evidence in one place

§Best for

  • shipping the mc CLI in CI or local release tooling
  • embedding the full end-to-end planner instead of wiring the lower-level crates together yourself
  • generating starter config with mc init and then evolving the CLI command surface over time

§Key commands

mc init
mc skill -a pi -y
mc discover --format json
mc change --package monochange --bump patch --reason "describe the change"
mc release --dry-run --format json
mc mcp

§Responsibilities

  • aggregate all supported ecosystem adapters
  • load monochange.toml
  • load config-defined [cli.*] workflow commands from monochange.toml
  • expose binary commands such as init, check, analyze, mcp, help, and version
  • generate immutable mc step:* commands from the built-in step schemas
  • resolve change input files
  • render discovery and release command output in text or JSON
  • execute configured workflow commands plus built-in MCP commands
  • preview or publish provider releases from prepared release data
  • evaluate pull-request changeset policy from CI-supplied changed paths and labels
  • expose JSON-first MCP tools for assistant workflows

Modules§

changelog

Structs§

AddChangeFileRequest
Parameters for creating a .changeset/*.md file through the library API.
PreparedChangelog
Rendered changelog payload produced during release preparation.
PreparedRelease
Structured result returned by release preparation APIs.
ReleaseTarget
Outward release target derived from a prepared release.

Enums§

ChangeBump
Semver bump accepted by mc change and related APIs.
OutputFormat
Output renderer used by CLI commands and preview helpers.
SubagentOutputFormat
Output renderer for mc subagents.
SubagentTarget
Repo-local subagent target understood by mc subagents.

Functions§

add_change_file
Create a changeset markdown file for one or more package or group ids.
affected_packages
Evaluate pull-request changeset coverage for the supplied changed paths.
build_command
Build the top-level Clap command for the monochange binary.
discover_release_record
Discover the durable release record associated with a tag or commit-ish.
discover_workspace
Discover all supported packages, dependency edges, and configured groups.
evaluate_changeset_policy
Backwards-compatible alias for affected_packages.
execute_release_retarget
Execute a previously prepared release-retarget plan.
plan_release
Build a release plan from a single changeset file.
plan_release_retarget
Build a retarget plan for a previously published release.
prepare_release
Prepare a release, update versioned files, and return the structured result.
retarget_release
Plan and execute a release retarget operation in one call.
run_from_env
Run the monochange CLI from the current process environment.
run_with_args
Execute the monochange CLI with an explicit argument iterator.
verify_changesets
Backwards-compatible alias for affected_packages.