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()],
collapsed: false,
}],
};
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"));Re-exports§
pub use analysis::*;
Modules§
Structs§
- Adapter
Discovery - Change
Signal - Changelog
Section Def - Changelog
Section Thresholds - Changelog
Settings - Top-level
[changelog]configuration combining templates, sections, and types. - Changelog
Target - Changelog
Type - Changeset
Affected Settings - Changeset
Context - Changeset
Policy Evaluation - Changeset
Revision - Changeset
Settings - CliCommand
Definition - CliInput
Definition - Commit
Message - Compatibility
Assessment - Dependency
Edge - Discovery
Path Filter - Discovery
Report - Ecosystem
Registry - Build dependency edges by matching declared dependency names to known packages. A registry of ecosystem adapters used to dispatch ecosystem-specific operations.
- Ecosystem
Settings - Effective
Release Identity - 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
Publication Target - Package
Record - Placeholder
Settings - Planned
Version Group - Prepared
Changeset - Prepared
Changeset Target - Provider
Merge Request Settings - Provider
Release Settings - Publish
Attestation Settings - Publish
Rate Limit Batch - Publish
Rate Limit Report - Publish
Rate Limit Settings - Publish
Settings - Rate
Limit Evidence - Registry
Rate Limit Policy - Registry
Rate Limit Window Plan - Release
Attestation 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
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 - Trusted
Publishing Settings - Version
Group - Versioned
File Definition - Workspace
Configuration - Workspace
Defaults
Enums§
- Bump
Severity - Changelog
Definition - Changelog
Format - Changeset
Policy Status - Changeset
Target Kind - CliInput
Default - 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
Mode - Publish
Registry - Publish
State - Rate
Limit Confidence - Rate
Limit Evidence Kind - Rate
Limit Operation - Registry
Kind - 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_
INITIAL_ CHANGELOG_ HEADER_ KEEP_ A_ CHANGELOG - Default initial changelog header for the
keep_a_changelogchangelog format. - DEFAULT_
INITIAL_ CHANGELOG_ HEADER_ MONOCHANGE - Default initial changelog header for the
monochangechangelog format. - 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 text. - RELEASE_
RECORD_ START_ MARKER - Opening marker for a commit-embedded release record block.
Traits§
Functions§
- all_
step_ variants - Return all built-in step variants except
Command. - default_
cli_ commands - Return the built-in CLI command definitions used when config omits them.
- default_
registry_ kind_ for_ ecosystem - materialize_
dependency_ edges - normalize_
path - Normalize a path to an absolute, canonicalized path when possible.
- parse_
release_ record_ block - parse_
release_ record_ json - 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.