-
Notifications
You must be signed in to change notification settings - Fork 248
Expand file tree
/
Copy path.release-plz.toml
More file actions
123 lines (90 loc) · 5.12 KB
/
Copy path.release-plz.toml
File metadata and controls
123 lines (90 loc) · 5.12 KB
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
[workspace]
# Prevent Cargo.lock churn from triggering cascading Release PRs.
# The `home` crate pin (0.5.11) would break if cargo update runs.
dependencies_update = false
# Do not ask release-plz to execute a release on ordinary pushes. Zebra owns all
# post-merge execution in the release workflow.
release_always = false
# release-plz only creates and updates Release PRs. After merge,
# ZcashFoundation/cargo-release reconciles crates, tags, and the public
# `zebrad` GitHub Release in .github/workflows/release.yml.
git_release_enable = false
# Source PRs author curated `[Unreleased]` entries. Release PRs finalize those
# entries under versioned headings and add dependency-only release notes.
changelog_update = true
# Breaking-change detection runs per PR via ziff, not in the release-pr job.
semver_check = false
# These commits trigger version bumps. Other commits can still cascade through
# dependency bumps, but do not trigger a release by themselves.
release_commits = "^(feat|fix|perf|refactor|build)"
# Release PR metadata. Keep the generated long-lived PR out of the urgent queue
# until maintainers are ready to publish.
pr_labels = ["A-release"]
pr_name = "chore: release{% if package and version %} v{{ version }}{% endif %}"
pr_body = """
## Release summary
{% for release in releases %}
- `{{ release.package }}`: {% if release.previous_version and release.previous_version != release.next_version %}{{ release.previous_version }} → {% endif %}{{ release.next_version }}
{%- endfor %}
> [!IMPORTANT]
> After every required check passes, complete every checkbox for the latest commit.
> Then approve and merge that commit.
## Release checklist
Checking a box records a maintainer's validation. For a conditional item, check it after validating the condition or confirming that it does not apply. Checklist edits rerun the standard PR Gate. A release-plz update replaces this body, resets the checklist, and requires the new release plan to be reviewed.
### Release prerequisites
- [ ] No unintended prerelease dependency versions remain.
For releases that include `zebrad`:
- [ ] A full sync completed after the latest state change, or no new full sync is required.
- [ ] Mainnet and Testnet checkpoints are current for this release.
### Release contents
- [ ] If `zebrad` is included, the root changelog covers every operator-visible change since the previous `zebrad` release.
- [ ] Each crate changelog covers every consumer-visible change since that crate's previous release.
- [ ] Changelog entries describe the final behavior, use the correct category, and link the relevant pull requests.
### Versions
- [ ] If `zebrad` is included, its proposed version follows the release policy, and its stable or prerelease status is correct.
- [ ] Each crate version follows Cargo SemVer for its API and behavior changes, and dependency-only releases use the smallest required bump.
### Release data and documentation
For releases that include `zebrad`:
- [ ] The end-of-support height matches the intended release date.
- [ ] Network-upgrade activation heights and the minimum network protocol version are correct, when applicable.
- [ ] README, installation, compatibility, and operational documentation match the release.
### Publish
- [ ] `PR Gate / Release readiness` and every other required check pass for the latest commit.
- [ ] Every checklist item above is complete and this commit is ready to publish.
After checking the boxes, approve and merge the latest commit.
## If automation fails
- If Release readiness fails, open its job summary and fix the reported issue.
- If no automatic readiness run is available after rerunning the PR checks, run `gh workflow run release.yml --ref main -f operation=check -f release_pr_number=<PR>`.
- If publication stops after merge, run `gh workflow run release.yml --ref main -f operation=resume -f release_pr_number=<PR>`.
- If published crates, tags, or release channels conflict with the plan, stop and ask a maintainer to investigate.
See the [release process](https://github.com/ZcashFoundation/zebra/blob/main/book/src/dev/release-process.md#release-candidate--release-process) for workflow details and recovery guidance.
---
This PR was generated with [release-plz](https://github.com/release-plz/release-plz/).
"""
# Repository URL.
repo_url = "https://github.com/ZcashFoundation/zebra"
[changelog]
# Keep source-authored entries authoritative. The exact pinned release-plz
# version represents dependency-only releases as commits with this sentinel ID.
body = """
{% if package == "zebrad" %}
## [Zebra {{ version }}](https://github.com/ZcashFoundation/zebra/releases/tag/v{{ version }}) - {{ timestamp | date(format="%Y-%m-%d") }}
{% else %}
## [{{ version }}] - {{ timestamp | date(format="%Y-%m-%d") }}
{% endif %}
{% for commit in commits %}
{% if commit.id == "0000000" %}
### Changed
- {{ commit.message | upper_first }}
{% endif %}
{% endfor %}
"""
# Normalize template whitespace before prepending source-authored entries.
postprocessors = [
{ pattern = '\n{3,}', replace = "\n\n" },
{ pattern = '\n{2,}$', replace = "\n" },
]
[[package]]
name = "zebrad"
changelog_path = "CHANGELOG.md"
git_tag_name = "v{{ version }}"