Expand description
§monochange_core
monochange_core is the shared vocabulary for the monochange workspace.
Reach for this crate when you are building ecosystem adapters, release planners, or custom automation and need one set of types for packages, dependency edges, version groups, change signals, and release plans.
§Why use it?
- avoid redefining package and release domain models in each crate
- share one error and result surface across discovery, planning, and command layers
- pass normalized workspace data between adapters and planners without extra translation
§Best for
- implementing new ecosystem adapters against the shared
EcosystemAdaptercontract - moving normalized package or release data between crates without custom conversion code
- depending on the workspace domain model without pulling in discovery or planning behavior
§What it provides
- normalized package and dependency records
- version-group definitions and planned group outcomes
- change signals and compatibility assessments
- changelog formats, changelog targets, structured release-note types, release-manifest types, source-automation config types, and changeset-policy evaluation types
- shared error and result types
§Example
use monochange_core::render_release_notes;
use monochange_core::ChangelogFormat;
use monochange_core::ReleaseNotesDocument;
use monochange_core::ReleaseNotesSection;
let notes = ReleaseNotesDocument {
title: "1.2.3".to_string(),
summary: vec!["Grouped release for `sdk`.".to_string()],
sections: vec![ReleaseNotesSection {
title: "Features".to_string(),
entries: vec!["- add keep-a-changelog output".to_string()],
}],
};
let rendered = render_release_notes(ChangelogFormat::KeepAChangelog, ¬es);
assert!(rendered.contains("## 1.2.3"));
assert!(rendered.contains("### Features"));
assert!(rendered.contains("- add keep-a-changelog output"));Modules§
Structs§
- Adapter
Discovery - Change
Signal - Changelog
Target - Changeset
Context - Changeset
Policy Evaluation - Changeset
Revision - Changeset
Settings - Changeset
Verification Settings - CliCommand
Definition - CliInput
Definition - Commit
Message - Compatibility
Assessment - Dependency
Edge - Discovery
Path Filter - Discovery
Report - Ecosystem
Settings - Effective
Release Identity - Extra
Changelog Section - Group
Definition - Hosted
Actor Ref - Hosted
Commit Ref - Hosted
Issue Comment Outcome - Hosted
Issue Comment Plan - Hosted
Issue Ref - Hosted
Review Request Ref - Hosted
Source Features - Hosting
Capabilities - Lockfile
Command Definition - Lockfile
Command Execution - Package
Definition - Package
Dependency - Package
Record - Planned
Version Group - Prepared
Changeset - Prepared
Changeset Target - Provider
BotSettings - Provider
Changeset BotSettings - Provider
Merge Request Settings - Provider
Release Settings - Release
Decision - Release
Manifest - Release
Manifest Changelog - Release
Manifest Compatibility Evidence - Release
Manifest Plan - Release
Manifest Plan Decision - Release
Manifest Plan Group - Release
Manifest Target - Release
Notes Document - Release
Notes Section - Release
Notes Settings - Release
Plan - Release
Record - Release
Record Discovery - Release
Record Provider - Release
Record Target - Retarget
Plan - Retarget
Provider Result - Retarget
Result - Retarget
TagResult - Source
Capabilities - Source
Change Request - Source
Change Request Outcome - Source
Configuration - Source
Release Outcome - Source
Release Request - Version
Group - Versioned
File Definition - Workspace
Configuration - Workspace
Defaults
Enums§
- Bump
Severity - Changelog
Definition - Changelog
Format - Changeset
Policy Status - Changeset
Target Kind - CliInput
Kind - CliStep
Definition - Built-in execution units for
[[cli.<command>.steps]]. - CliStep
Input Value - Command
Variable - Dependency
Kind - Dependency
Source Kind - Ecosystem
- Ecosystem
Type - Group
Changelog Include - Hosted
Actor Source Kind - Hosted
Issue Comment Operation - Hosted
Issue Relationship Kind - Hosted
Review Request Kind - Hosting
Provider Kind - Monochange
Error - Package
Type - Provider
Release Notes Source - Publish
State - Release
Owner Kind - Release
Record Error - Retarget
Operation - Retarget
Provider Operation - Shell
Config - Shell configuration for
Commandsteps. - Source
Change Request Operation - Source
Provider - Source
Release Operation - Version
Format
Constants§
- DEFAULT_
CHANGELOG_ VERSION_ TITLE_ NAMESPACED - Default changelog version title for namespaced versioning (markdown-linked when source configured).
- DEFAULT_
CHANGELOG_ VERSION_ TITLE_ PRIMARY - Default changelog version title for primary versioning (markdown-linked when source configured).
- DEFAULT_
RELEASE_ TITLE_ NAMESPACED - Default release title template for namespaced versioning:
my-pkg 1.2.3 (2026-04-06). - DEFAULT_
RELEASE_ TITLE_ PRIMARY - Default release title template for primary versioning:
1.2.3 (2026-04-06). - RELEASE_
RECORD_ END_ MARKER - Closing marker for a commit-embedded release record block.
- RELEASE_
RECORD_ HEADING - Human-readable heading used for commit-embedded release records.
- RELEASE_
RECORD_ KIND - Required
ReleaseRecord.kinddiscriminator. - RELEASE_
RECORD_ SCHEMA_ VERSION - Current supported
ReleaseRecordschema version. - RELEASE_
RECORD_ START_ MARKER - Opening marker for a commit-embedded release record block.
Traits§
Functions§
- default_
cli_ commands - Return the built-in CLI command definitions used when config omits them.
- materialize_
dependency_ edges - Build dependency edges by matching declared dependency names to known packages.
- normalize_
path - Normalize a path to an absolute, canonicalized path when possible.
- parse_
release_ record_ block - Parse a
ReleaseRecordfrom a full commit message body. - relative_
to_ root - Return
pathrelative torootafter normalizing both paths. - release_
record_ release_ tag_ names - Return tag names that correspond to outward hosted releases.
- release_
record_ tag_ names - Return all tag names owned by the release record, deduplicated and sorted.
- render_
release_ notes - Render release notes in the selected changelog format.
- render_
release_ record_ block - Render a
ReleaseRecordinto the reserved commit-message block format. - strip_
json_ comments - Remove
//and/* ... */comments from JSON-like text. - update_
json_ manifest_ text - Update JSON manifest text while preserving most existing formatting.
Type Aliases§
- Monochange
Result - Release
Record Result - Result type used by release-record parsing and rendering helpers.