Skip to content

chore: keep CI-only commits out of the changelog - #1931

Merged
NobodyXu merged 1 commit into
rust-lang:mainfrom
cestercian:cursor/changelog-skip-ci-only-bef0
Sep 21, 2026
Merged

NobodyXu merged 1 commit into
rust-lang:mainfrom
cestercian:cursor/changelog-skip-ci-only-bef0

Conversation

@cestercian

Copy link
Copy Markdown
Contributor

Summary

Configure release-plz changelog parsers to skip CI-only subjects (ci:, ci(…):) and Dependabot Actions bumps (chore(deps): bump …). Point Dependabot Actions commits at ci(deps): so they hit the same skip.

User-facing chore: and crate dep updates still land in the changelog.

Fixes #1898

Test plan

  • Parser simulation against 24 historical subjects — 24/24
  • tombi format --check release-plz.toml

Comment thread release-plz.toml
Comment thread .github/dependabot.yml Outdated
interval: "daily"
cooldown:
default-days: 7
# Prefix GHA bumps as ci(deps): so release-plz can skip them (#1898).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

No need to include issue number here

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Dropped the issue number from the Dependabot comment. Prefix is still ci / ci(deps):.

Comment thread release-plz.toml Outdated
{ message = "^changed", group = "changed" },
{ message = "^deprecated", group = "deprecated" },
{ message = "^removed", group = "removed" },
{ message = "^fix", group = "fixed" },

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This will match "fixup! " commits generated by git commit --fixup, which is probably undesirable.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Good catch — narrowed ^fix to ^fix(?:\(.*\))?: so fixup! from git commit --fixup is no longer grouped as “fixed”. No ^fixup! skip parser.

Comment thread release-plz.toml Outdated
@@ -0,0 +1,17 @@
# Changelog generation for release-plz / git-cliff.
# CI-only commits are excluded from the user-facing changelog (#1898).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Please exclude the issue number from the changes.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

done, issue number is out of that comment

@NobodyXu NobodyXu left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Thank you! One nit feedback in additional to xtqqczze's feedback

Comment thread .github/dependabot.yml Outdated
Comment thread .github/dependabot.yml Outdated
interval: "daily"
cooldown:
default-days: 7
# Prefix GHA bumps as `ci(deps):` so release-plz can skip them.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Might be unnecessary to mention release-plz here. We probably want this commit convention anyway.

@cestercian cestercian Sep 20, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

fine by me, dropped the release-plz mention

Comment thread .github/dependabot.yml Outdated
interval: "daily"
cooldown:
default-days: 7
# Prefix GHA bumps as `ci(deps):` so they follow the repo commit convention.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This seems tautological, just remove the comment?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

yep, dropped it

@xtqqczze

Copy link
Copy Markdown
Contributor

@NobodyXu Comparing the changelog for v1.4.7 with the auto-generated changelog shown in #1928, there are quite a few commits that would not be excluded correctly. If we want this to work reliably, we’ll need to follow the Conventional Commits format going forward. It might therefore be worth having a separate PR to document this in CONTRIBUTING.md.

Comment thread release-plz.toml Outdated

@NobodyXu NobodyXu left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Thank you!

If this looks good to @xtqqczze I'll merge it

Comment thread release-plz.toml Outdated
# Match target-info / windows-sys regeneration first so later skip rules
# do not hide those user-facing commits. Then skip CI, chore, and refactor.
commit_parsers = [
{ message = "(?i)^(?:(?:chore|refactor)(?:\\(.*\\))?: )?regenerat(?:e|ion).*(?:target.?info|windows.?sys)", group = "other" },

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I think this is overfitting, we don't have any commits that would match the chore: regenerat case.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

fair, dropped that regenerat exception

@xtqqczze

Copy link
Copy Markdown
Contributor

@NobodyXu As a follow-up, we may want to document in CONTRIBUTING.md that we follow Conventional Commits and add a check to CI to enforce this, what do you think?

Comment thread release-plz.toml Outdated

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

can we tweak this like the others

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

tweaked, feat and security now use the same scoped pattern

Comment thread release-plz.toml Outdated
# Skip CI, chore, and refactor conventional subjects.
commit_parsers = [
{ message = "^ci(?:\\(.*\\))?:", skip = true },
{ message = "^chore\\(deps\\): bump ", skip = true },

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

this one is now redundant, no?

@cestercian cestercian Sep 20, 2026

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

yep, redundant under the broad chore skip, removed

@xtqqczze xtqqczze left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Looks fine to me; this can always be tweaked later. Could you please rebase this to a clean history of commits?

Skip conventional ci/chore/refactor subjects in release-plz.toml
commit parsers. Prefix Dependabot GitHub Actions updates as `ci(deps):`.
@cursor
cursor Bot force-pushed the cursor/changelog-skip-ci-only-bef0 branch from dfff5eb to 21faed6 Compare September 20, 2026 16:54
@cestercian

Copy link
Copy Markdown
Contributor Author

thanks, rebased to a single clean commit on latest main

@NobodyXu
NobodyXu merged commit 55faf4e into rust-lang:main Sep 21, 2026
81 checks passed
@NobodyXu

Copy link
Copy Markdown
Contributor

@NobodyXu As a follow-up, we may want to document in CONTRIBUTING.md that we follow Conventional Commits and add a check to CI to enforce this, what do you think?

That's a good idea, especially on the generated files and changelog, to remind people they don't have to manually write changelog

@xtqqczze

Copy link
Copy Markdown
Contributor

@NobodyXu This might require a change in merge strategy, looks like a squash merge is used currently?

@NobodyXu

Copy link
Copy Markdown
Contributor

Yes we currently use squash merge for a clean history

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Changelog should not include CI-only changes

3 participants