wiki:CommitQueue

Version 30 (modified by aakash_jain@apple.com, 5 months ago) (diff)

--

WebKit's commit-queue is part of EWS EarlyWarningSystem and provides a way for contributors without commit privileges to get their changes into WebKit, as well as for everyone to have their patches tested and landed.

Commit Queue Process

  1. Contributer set "commit-queue=?" on their patch.
  2. Committer sets "commit-queue=+" in response.
  3. commit-queue polls bugzilla for the list of cq+'d patches, verifies that it can build with the patch, run macOS webkit2 layout tests on it. If the build and tests passes, it commits the patch to the repository.

Commit Queue FAQ

Q: What do the commit-queue states mean?

  • commit-queue=+ Patch is 100% ready for commit, the commit bot should land it.
  • commit-queue=- Patch is not ready for committing or needs manual landing (set this when you don't want any chance of auto-commit).
  • commit-queue=? Set by non-committers to ask someone to approve their patch for auto-commit.

Q: Who can set commit-queue+?

Only a committer or reviewer that has an entry in the following file can set the commit-queue flag on a bug: https://github.com/WebKit/WebKit/blob/main/Tools/Scripts/webkitpy/common/config/contributors.json

Q: How long until a patch lands after I set commit-queue+?

2-30 minutes. Depends on whether the patch has already passed mac-wk2 queue and depending on incremental build speed. The commit-queue will not commit when the macOS build is broken.

Q: My patch was rejected by the commit queue, what should I do!?

First, read the comment the commit queue added to the bug. If the message is not clear, feel free to email admin@webkit.org.

Sometimes the commit-queue rejects patches due to flakey tests. Don't worry, whoever is running the commit queue should add your patch back to the queue if it was wrongly rejected.

Q: How can I see what's in the commit-queue?

commit queue status or the list of commit-queue+ bugs

webkit-patch bugs-to-commit will also print out any pending bugs.

Q: What checks does commit-queue do before landing?

build-webkit (on Mac) and then run-webkit-tests.

Q: When I review a patch, should I set commit-queue+?

If you would like the commit bot to land the patch, yes.

Q: Help! The commit queue broke the tree! Who do I blame?

Setting commit-queue+ on a patch is the moral equivalent of typing "svn commit" on the command line. That means whoever set the flag to + is responsible for watching the tree and cleaning up if disaster strikes. The proper response is normally to just roll out the change which broke the tree -- webkit-patch rollout can assist with this.

Q: When does the commit queue fix up the svn author?

If you are a committer, and you use the commit queue, the server should fix up the author of the commit automatically, when you use your svn username in the ChangeLog. If you are not a committer, or the server can not find a vaild svn username in the commit message, commit-queue@webkit.org will be used as author.

Q: When I don't want my patch to be auto-landed, what should I do?

You don't need to do anything. Only commit-queue+ patches are auto-landed. Setting commit-queue- will make extra-sure.

Q: If I want my patch landed, and I'm not a committer, what do I do?

Set "commit-queue=?". A committer can set it to commit-queue+

Q: What does cq+ mean?

Some of us have been shortening commit-queue to "cq" when typing, so cq+ is "commit-queue=+". Similar to how r+ is "review=+".

Q: Can I run the commit-queue myself?

No.

Q: Does the commit-queue fix the "Reviewed by NOBODY" in any ChangeLogs in the patch?

Yes webkit-patch calls svn-apply which does. It sets the reviewer based on who marked the patch as r+. It also updates the date for the changelog entry.