Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 63 additions & 0 deletions release-plz.toml
Original file line number Diff line number Diff line change
@@ -1,3 +1,66 @@
[workspace]
# The release PR body: release-plz's default layout, except that the
# cargo-semver-checks report is cut down to each failed lint and the items it
# names. The raw report repeats every lint's description and reference links
# and names the temporary checkout the old version was unpacked into. The
# check itself stays on: it also bumps the major version for a breaking
# change no commit declared.
pr_body = '''
{% set changes %}
{%- for release in releases %}
{%- if release.changelog %}{% if releases | length > 1 %}
## `{{ release.package }}`
{% endif %}
<blockquote>

{% if release.title %}## {{ release.title }}
{% endif %}
{{ release.changelog }}
</blockquote>{% endif %}
{% endfor %}
{% endset %}

## 🤖 New release
{% for release in releases %}
* `{{ release.package }}`: {% if release.previous_version and release.previous_version != release.next_version %}{{ release.previous_version }} -> {% endif %}{{ release.next_version }}{% if release.semver_check == "incompatible" %} (⚠ API breaking changes){% elif release.semver_check == "compatible" %} (✓ API compatible changes){% endif %}
{%- endfor %}
{%- for release in releases %}{% if release.breaking_changes %}

### ⚠ `{{ release.package }}` breaking changes

cargo-semver-checks against {{ release.previous_version }}:
{% for line in release.breaking_changes | split(pat="
") %}
{%- if line is starting_with(pat="--- failure ") %}
- {{ line | replace(from="--- failure ", to="") | replace(from=" ---", to="") }}
{%- elif line is starting_with(pat=" ") and line is containing(pat=" in file ") %}
- `{{ line | split(pat=" in file ") | first | trim | replace(from=", previously", to="") }}`
Comment on lines +36 to +37

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Removed feature names disappear

When cargo-semver-checks reports a removed Cargo feature, its item line says in the package's Cargo.toml, not in file. This filter drops the item line, so the release PR flags the breaking change but omits which features were removed. Reviewers must consult the full report to identify them. This loss of review detail does not block merging.

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

Artifacts

Exact Tera rendering test script

  • This is the authored script executed for both captures; it fetches upstream report examples and renders the default and PR templates with Tera 2.

Default template render with compatible and breaking reports

  • The before command exited 0 and displayed both removed feature names in the upstream default release PR body.

PR template render with compatible and breaking reports

  • The after command exited 0 but displayed only the feature-removal lint heading, omitting both removed feature names.

Release rendering test inventory and tracked-file status

  • The command found no tracked release-template rendering test and confirmed that tracked files were unchanged.

View artifacts

T-Rex Ran code and verified through T-Rex

{%- endif %}
{%- endfor %}{% endif %}{% endfor %}
{% if changes %}
<details><summary><i><b>Changelog</b></i></summary><p>
{{ changes }}
</p></details>
{% endif %}
---
This PR was generated with [release-plz](https://github.com/release-plz/release-plz/).'''

[changelog]
# Setting the parsers replaces release-plz's defaults, so they are repeated
# below the one addition.
commit_parsers = [
# The structured-proxy-cli package this commit introduced was never
# released: the binary moved back into structured-proxy before the next
# release, so the entry would describe a change no user sees.
{ sha = "90d746b1b3c879359776adaf4bbbac5b97bf1f38", skip = true },

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Preserve user-visible changes from the skipped commit

When generating the 5.0.0 changelog, this rule drops the entire 90d746b commit rather than only its transient package move. That commit also introduced the still-shipped structured-proxy --version option (src/main.rs:16) and clearer config-path errors, and no later commit adds a replacement changelog entry for --version; users therefore receive a new CLI capability that is absent from the release notes. Reword or replace the misleading package-move entry while retaining the user-visible changes instead of skipping the whole commit.

Useful? React with 👍 / 👎.

{ message = "^feat", group = "added" },
{ message = "^changed", group = "changed" },
{ message = "^deprecated", group = "deprecated" },
{ message = "^fix", group = "fixed" },
{ message = "^security", group = "security" },
{ message = "^.*", group = "other" },
]

[[package]]
name = "structured-proxy"
# Preserve the existing tag scheme (v1.0.0, v1.0.1, ...) instead of the
Expand Down
Loading