1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# 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
[]
# 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.
= "{{ package }}-v{{ version }}"
= true
# Library crate gets a git tag + CHANGELOG entry, not a GitHub Release with assets.
= false
= 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.
= "^(feat|fix|perf|refactor|doc|revert)"
[]
= [
{ = "^chore\\(release\\):", = true },
{ = "^chore: release", = true },
{ = "^feat", = "added" },
{ = "^fix", = "fixed" },
{ = "^perf", = "performance" },
{ = "^refactor", = "other" },
{ = "^doc", = "documentation" },
{ = "^revert", = "other" },
{ = "^style", = true },
{ = "^test", = true },
{ = "^ci", = true },
{ = "^build", = true },
{ = "^chore", = true },
{ = "^.*", = "other" },
]