Run Nixpkgs diff on nixfmt commits merged into the base branch#241
Merged
Run Nixpkgs diff on nixfmt commits merged into the base branch#241
Conversation
Previously the Nixpkgs diff script would first format the latest base
branch commit, before formatting with each of the PRs commits. This
however causes problems if the PR commits are on top of a much older
commit that has bugs that aren't in the base branch anymore.
More visually, a PR branch graph looks like this:
base: B --- L
\
\
PR: P --- Q
Where
B: Earlier commit on the base branch off of which the PR is branched off (aka merge base)
L: Latest commit on the base branch, fixes a bug
P: First commit of the PR, doesn't contain the bug fix
Q: Second commit of the PR, also doesn't contain the bug fix
Previously CI ran:
- Format with L, with bugfix
- Format with P, without bugfix
- Format with Q, without bugfix
With this change, CI runs:
- Format with L, with bugfix
- Format with (L merged with P), with bugfix
- Format with (L merged with Q), with bugfix
Member
Author
|
I successfully tested this locally on #209 with (insert your own Nixpkgs fork there, it will push the result to its |
dasJ
approved these changes
Aug 28, 2024
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Previously the Nixpkgs diff script would first format the latest base branch commit, before formatting with each of the PRs commits. This however causes problems if the PR commits are on top of a much older commit that has bugs that aren't in the base branch anymore.
More visually, a PR branch graph looks like this:
Where
Previously CI ran:
With this change, CI runs:
This was discovered in #209 Nixpkgs diff check, which failed with problems that were already fixed (such as #217 and some idempotency bug): https://github.com/NixOS/nixfmt/actions/runs/10567042446/job/29275137031?pr=209
This work is sponsored by Antithesis ✨