-
Notifications
You must be signed in to change notification settings - Fork 791
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add mergify
merge queue configuration file
#4917
Conversation
59a57a7
to
9d9d82b
Compare
…bs don't require modification to mergify configuration on stable branch.
9d9d82b
to
c316de0
Compare
# Conflicts: # .github/workflows/test-suite.yml
Done!
Happy to do this after Mergify is working (I assume we need to do manual merges to get it working in the first place). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
I cross-checked the config against https://docs.mergify.com/configuration/file-format/#queue-rules
I was a bit confused that some of the options there don't seem to have defaults. Some things I noticed:
commit_message_template
doesn't have a default but I think this is probably fine, so long as it's something like{PR_TITLE} ({PR_NUMBER})
.allow_inplace_checks
is set totrue
by default but seems kind of unnecessary as it treats single-PR batches differently from others. I would kind of prefer consistency, and immutability of the original branch (i.e.allow_inplace_checks: false
).branch_protection_injection_mode
doesn't have a default listed and I'm not sure which setting is better. Probablymerge
so that the checks only apply when merging and not while queuing? Maybe we can leave it unset as we havequeue_conditions
instead? And/or we don't have branch protection rules?
@michaelsproul thanks for the review!
|
I've done another round of testing on my fork:
|
Nice, looks good! |
Let's merge! 🎉 |
Issue Addressed
With
bors
decommissioned, we need an alternative tool to handle our pull request merging.The key features that we need are:
unstable
.bors
to ensure a smooth transition.Proposed Changes
This PR proposes using Mergify merge queue as a replacement and adds a
mergify.yml
configuration file with some queue rules similar to our existingbors
rules as a starting point.I've also stolen @michaelsproul's changes on success checks from #4254, so that changes in CI jobs don't require modification to mergify configuration on the stable branch.
In addition to this PR, we'd also need:
stable
(mergify
only reads the config file fromstable
branch)Once the above in done, we would be able to add PRs to the merge queue by this command:
@mergify queue
(instead of bors+) - note that this need to be in it's own comment, unlikebors r+
where it could be embeded in a comment.The default setting waits for 30s before starting a batch (if batch isn't filled), and we could configure this if needed.
Additional Info
I have done some testing on my fork and have verified the following rules:
Testbase=unstable
queue condition (we could remove thetarget-branch-check
)Testlabel=ready-for-bors
queue condition#approved-reviews-by >= 1
queue conditioncheck-success
queue conditions (except forlicense/cla
as I don't have it set up)check-success
merge conditionsQuestions
ready-for-bors
after approving PR, perhapsready-for-merge
?ready-for-merge