shrinkpath 0.1.2

Smart cross-platform path shortening for CLIs, prompts, and tools
Documentation
# release-plz owns crates.io publishing + changelog + version bumps for the
# shrinkpath crate. It runs on pushes to main (see
# .github/workflows/release-plz.yml):
#   - `release-pr`  opens a human-reviewed version-bump PR (conventional commits)
#   - `release`     publishes the crate when its Cargo.toml version is ahead of
#                   crates.io and creates its git tag

[workspace]
# Package-prefixed tag, e.g. `shrinkpath-v0.1.2`. A single-crate repo's default
# tag would be a bare `v{{ version }}`, which collides with the fleet's binary
# `v[0-9]*` release trigger; the `{{ package }}-v` prefix has a letter (not a digit)
# after the first `v`, so it never matches that glob.
git_tag_name = "{{ package }}-v{{ version }}"
git_tag_enable = true
# Library crate gets a git tag + CHANGELOG entry, not a GitHub Release with assets.
git_release_enable = false
changelog_update = true
# Only prepare a release when a real change exists since the last one. release-plz's
# release detection is file-based, so a changelog-only "chore: release" commit
# otherwise re-triggers a release (the churn loop). This allowlist makes
# feat/fix/perf/refactor/doc/revert the only release triggers; chore/ci/test/style/
# build (incl. release-plz's own release commits) never prepare a release.
release_commits = "^(feat|fix|perf|refactor|doc|revert)"

[changelog]
commit_parsers = [
    { message = "^chore\\(release\\):", skip = true },
    { message = "^chore: release", skip = true },
    { message = "^feat", group = "added" },
    { message = "^fix", group = "fixed" },
    { message = "^perf", group = "performance" },
    { message = "^refactor", group = "other" },
    { message = "^doc", group = "documentation" },
    { message = "^revert", group = "other" },
    { message = "^style", skip = true },
    { message = "^test", skip = true },
    { message = "^ci", skip = true },
    { message = "^build", skip = true },
    { message = "^chore", skip = true },
    { message = "^.*", group = "other" },
]