All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.1.5 - 2026-03-30
- cargo-changeset: Add code quality badges (security audit, coverage, MSRV) to README
- cargo-changeset: Add integration tests verifying lockfile stays current after release
- cargo-changeset: Use non-root user for Docker image with dynamic UID matching via su-exec
0.1.4 - 2026-03-30
- changeset-operations: Use cargo update --workspace instead of cargo generate-lockfile to preserve external dependency pins during release
- cargo-changeset: Fix Docker build failure by enabling MSRV-aware resolver v3 and decoupling Docker image from MSRV pin
0.1.3 - 2026-03-30
- cargo-changeset: Upgrade cargo-changeset version in workflows from 0.1.0 to 0.1.2 and update outdated action versions (actions/checkout v4 to v6, actions/cache v4 to v5) in README examples
- cargo-changeset: Restructure README with improved organization, installation guide, quick start walkthrough, command reference, configuration reference, CI/CD integration examples, and pre-built agent instructions for seamless integration with AI coding assistants
0.1.2 - 2026-03-29
- changeset-core: Add
NoneBumpBehaviortype for configuring hownonebump types are handled - cargo-changeset: Add
--none-bump-behaviorand--none-bump-promote-message-templateoptions to theinitcommand - cargo-changeset: Add CLI options to
cargo changeset initfor configuring commit templates, changelog templates, and file filtering - cargo-changeset: Add
--base-branchflag to init, prompt for it interactively, and automatically use the configured base branch in verify when--baseis not provided - changeset-manifest: Support configuring a default base branch via the base-branch field in the changeset metadata section
- changeset-manifest: Support reading and writing
none-bump-behaviorandnone-bump-promote-message-templateinCargo.tomlmetadata - changeset-manifest: Support reading and writing
dependency-bump-changelog-templatein changeset init config files - changeset-manifest: Persist commit title, changelog templates, and file filtering configuration to
.changeset/config.toml - changeset-git: Export
DEFAULT_BASE_BRANCHconstant for consistent default base branch usage across crates - changeset-operations: Add filtering settings support to initialization workflow with new
FilteringSettingsInputtype andconfigure_filtering_settings()trait method - changeset-operations: Make the default base branch configurable via
GitSettingsInput, propagated through all init paths into the written config - changeset-operations: Automatically bump packages that depend on a changed package and generate changelog entries for the dependency update
- changeset-operations: Support promoting, allowing, or disallowing
nonebump types in release, status, and verify operations - changeset-project: Expose
base_branchonRootChangesetConfig, falling back toDEFAULT_BASE_BRANCHwhen not set in the manifest - changeset-project: Add
dependency-bump-changelog-templateconfig option to customize the changelog message template for auto-bumped dependency updates - changeset-project: Support
none-bump-behaviorandnone-bump-promote-message-templateconfiguration in workspace metadata
- changeset-core: Internal architectural changes
- cargo-changeset: Internal architectural changes
- cargo-changeset: Use shared
DEFAULT_BASE_BRANCHconstant instead of hardcoded base branch strings - cargo-changeset: Internal code reorganization following canonical file ordering rules
- changeset-version: Improve clarity of zero-version bump calculation logic
- changeset-version: Internal architectural changes
- changeset-manifest: Internal code reorganization following canonical file ordering rules
- changeset-changelog: Internal architectural changes
- changeset-changelog: Changelog entries are now generated for
nonebump changesets when promoted topatch - changeset-changelog: Internal code reorganization following canonical file ordering rules
- changeset-git: Internal architectural changes
- changeset-git: Internal code reorganization following canonical file ordering rules
- changeset-operations: Internal architectural changes
- changeset-operations: Use shared
DEFAULT_BASE_BRANCHconstant instead of hardcoded base branch strings - changeset-operations: Internal code reorganization following canonical file ordering rules
- changeset-parse: Internal architectural changes
- changeset-parse: Parsed changesets with
nonebump types can now be promoted topatchduring release - changeset-parse: Internal code reorganization following canonical file ordering rules
- changeset-project: Internal architectural changes
- changeset-project: Internal code reorganization following canonical file ordering rules
- changeset-project: Unify workspace and package config parsing into a single function and remove redundant serde rename attribute
- changeset-saga: Internal code reorganization following canonical file ordering rules
- cargo-changeset: Auto-bump dependent crates on release
- cargo-changeset: Faster and correct workspace discovery via fixed glob pattern matching
- changeset-operations: Faster and correct workspace discovery via fixed glob pattern matching
- changeset-project: Replace custom recursive directory walker with glob crate for correct and faster pattern matching
0.1.1 - 2026-03-15
- changeset-parse: Support parsing and serializing 'none' as a bump type in changeset files
- cargo-changeset: Warn about transitive workspace dependents not covered by a changeset when running "add"
- cargo-changeset: "verify" now detects uncommitted changes and verifies them against HEAD automatically
- cargo-changeset: Add 'none' bump type option for tracking changes without version increments
- cargo-changeset: Add "none" bump type for changesets that document changes without incrementing the version
- cargo-changeset: Add --exclude-dependents flag and show transitive dependent coverage in add, verify, and status commands
- changeset-project: Add WorkspaceDependencyGraph for resolving transitive workspace member dependencies
- changeset-operations: Add DependencyGraphProvider trait and dependency-aware logic to add, verify, and status operations
- changeset-operations: Warn about transitive workspace dependents not covered by a changeset when running "add"
- changeset-operations: "verify" now detects uncommitted changes and verifies them against HEAD automatically
- changeset-operations: Add "none" bump type for changesets that document changes without incrementing the version
- changeset-operations: Support non-bump changesets in add, status, verify, and release planning operations
- changeset-version: Support BumpType::None to preserve version unchanged during bump calculations
- changeset-git: "verify" now detects uncommitted changes and verifies them against HEAD automatically
- changeset-core: Add BumpType::None variant for tracking changes without version increments
- cargo-changeset: "verify" output now distinguishes directly changed packages from transitive dependents
- changeset-version: Refactor version planner to track effective bump type separately from computed version
- cargo-changeset: Release now regenerates Cargo.lock automatically.
- changeset-operations: Cargo.lock is now automatically regenerated during release. If the release fails, the original lockfile is restored.
- changeset-operations: Add operation types and interaction traits for prerelease and graduation management workflows.
- changeset-operations: Update intra-workspace dependency versions during release
- cargo-changeset: Update intra-workspace dependency versions during release
- changeset-manifest: Update intra-workspace dependency versions during release
- cargo-changeset: Prerelease direct-add output now includes the configured tag name.
- changeset-project: CargoProject fields were made private.
- changeset-operations: Breaking:
Git2Provider::new()now takes aproject_rootargument and returnsResult. The provider validates all operations against this root and reuses the repository handle across calls instead of reopening it. - changeset-operations: Propagate the real error when a remote URL cannot be resolved for comparison links instead of silently swallowing it.
- changeset-operations: Fix root changelog comparison link using the first package's version instead of the maximum version when releasing multiple packages simultaneously
- changeset-operations: Return an error when a changeset file cannot be read during release cleanup or backup instead of silently skipping it.
- changeset-operations: Fix error variant when changelog file read fails during release reporting it as a changeset file error
- changeset-operations: Preserve the full error chain for invalid prerelease tag and graduation constraint validation errors.
- changeset-operations: Use the highest current version across all released packages for the root changelog comparison link instead of whichever package appeared first.
- cargo-changeset: resolve remote tracking refs when resolving refspecs
- cargo-changeset: Fix root changelog comparison link using the first package's version instead of the maximum version when releasing multiple packages simultaneously
- cargo-changeset: Release failures during changeset cleanup now report the underlying cause instead of silently proceeding.
- cargo-changeset: Error messages for prerelease and graduation management are now more precise.
- cargo-changeset: Adapts to breaking API change in
changeset-operations. - cargo-changeset: Changelog comparison links now point to the correct version when releasing multiple packages.
- changeset-git: resolve remote tracking refs when resolving refspecs
- changeset-git: Detect Typechange deltas and error on missing old_path for renamed/copied files
- changeset-changelog: Return a dedicated
MissingHosterror when a remote URL has no host instead of a generic URL parse error. - changeset-changelog: Fix root changelog comparison link using the first package's version instead of the maximum version when releasing multiple packages simultaneously
- cargo-changeset:
--versionparameter on base command now prints version information
- cargo-changeset: Tags created with the crate-prefixed format now use @ as the separator (e.g., my-crate@v1.2.3) instead of - (e.g., my-crate-v1.2.3).
- cargo-changeset: Fix cargo subcommand dispatch by supporting both 'cargo changeset ' and direct 'cargo-changeset ' invocation modes