Skip to content

Conversation

@ErichDonGubler
Copy link
Member

@ErichDonGubler ErichDonGubler commented Oct 14, 2025

We've had recurring issues with PRs' CHANGELOG.md entries going stale, particularly when PRs are filed close to a regular release date. This PR tries to make this by creating a CI check that fails when a PR modifies the changelog and it detects changes outside the ## Unreleased section header.

This is an MVP that is not yet suitable as a required check, because there is no escape hatch for cases where we do want to change released changelog content. The intent is to enable this once some follow-up to add such an escape hatch has achieved consensus and is implemented.

@ErichDonGubler ErichDonGubler force-pushed the erichdongubler-push-glitchy-unique-tambourine branch 7 times, most recently from 58ba751 to 8b3d6ff Compare October 14, 2025 20:41
@ErichDonGubler
Copy link
Member Author

Recent violators of the check I'm adding here that I had to fix in #8407:

@ErichDonGubler
Copy link
Member Author

Sigh, this check is running into issues with GitHub's default checkout action machinery wanting to be as shallow as possible. The "easy" fix here is not to use shallow repository checkouts. We'll want follow-up to see if there's a way to only check out what's necessary, but that's sort of a catch-22 unless we use the GitHub API (which I'd strongly prefer to avoid, so folks can run things locally offline).

@ErichDonGubler ErichDonGubler force-pushed the erichdongubler-push-glitchy-unique-tambourine branch 5 times, most recently from 556a765 to e686fa7 Compare October 22, 2025 19:23
@ErichDonGubler
Copy link
Member Author

I have several PRs demonstrating that core logic works here:

These are present in the check's unit tests in xtask, so I'm not worried about regressions in the future. 😁

There are some questions that are still open for this, but none are blocking until we make this check required:

  • What escape hatch should we use when we need this, i.e., our typos database is updated, and we correct an old CHANGELOG entry, and we want the PR to land? It's pretty easy to use a label, i.e., changelog: released entry changed, to control this. I suggest we do that.

    We don't need to resolve this right now, because it's only important if we make this a required check. I don't see that as necessary for a first iteration.

  • What fancy GitHub integration do we want? I can see several things that look interesting:

    • Step summary
    • Warning/error messages on end file contents of the PR

@ErichDonGubler ErichDonGubler force-pushed the erichdongubler-push-glitchy-unique-tambourine branch 6 times, most recently from c13a16a to 8f102f2 Compare October 22, 2025 19:53
@@ -0,0 +1,42 @@
name: Check `CHANGELOG.md`
Copy link
Member Author

@ErichDonGubler ErichDonGubler Oct 22, 2025

Choose a reason for hiding this comment

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

Bikeshedding for the file's name welcome welcome!

changelog:
timeout-minutes: 1

name: Check `CHANGELOG` for errors
Copy link
Member Author

@ErichDonGubler ErichDonGubler Oct 22, 2025

Choose a reason for hiding this comment

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

Bikeshedding for the job's name welcome!

@ErichDonGubler ErichDonGubler force-pushed the erichdongubler-push-glitchy-unique-tambourine branch 2 times, most recently from 2335cc5 to 06acbe0 Compare October 22, 2025 21:21
@ErichDonGubler ErichDonGubler force-pushed the erichdongubler-push-glitchy-unique-tambourine branch from 06acbe0 to 7ea2757 Compare October 22, 2025 21:48
Comment on lines +318 to +322
#[test]
fn change_in_unreleased_not_rejected() {}

#[test]
fn change_above_unreleased_not_rejected() {}
Copy link
Member Author

Choose a reason for hiding this comment

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

todo: Finish these tests. 😅

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.

1 participant