WebKit's commit-queue is a [wiki:"WebKitPatch" webkit-patch] command which is run on the commit server (maintained by Eric Seidel) and provides a way for contributors without commit privileges to get their changes into WebKit. == Commit Queue Process == 1. Contributer set "commit-queue=?" on their patch. 1. Committer sets "commit-queue=+" in response. 1. commit-queue polls bugzilla for the list of cq+'d patches, finding one it runs `webkit-patch land-from-bug` on the bug in question. == 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 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+ or review+? === `webkit-patch` validates that the flag setters are committers/reviewers using: http://trac.webkit.org/browser/trunk/WebKitTools/Scripts/modules/committers.py === Q: How long until a patch lands after I set commit-queue+? === 10-15 minutes. Depends on if the [http://build.webkit.org/waterfall tree is red or not]. The commit-queue will not commit when buildbots for the [http://trac.webkit.org/browser/trunk/WebKitTools/Scripts/modules/buildbot.py#L48 core platforms] are red. === 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 the WebKit Commit Bot address in the bug. There are [https://bugs.webkit.org/show_bug.cgi?id=28686 outstanding bugs] about making the commit bot's messages more clear. 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. Outstanding bugs: `commit-queue` bugs: https://bugs.webkit.org/buglist.cgi?quicksearch=commit-queue `webkit-patch` bugs: https://bugs.webkit.org/buglist.cgi?quicksearch=webkit-patch === Q: How can I see what's in the commit-queue? === [http://webkit-commit-queue.appspot.com/ commit queue status] or the [https://bugs.webkit.org/buglist.cgi?query_format=advanced&short_desc_type=allwordssubstr&short_desc=&product=WebKit&long_desc_type=substring&long_desc=&bug_file_loc_type=allwordssubstr&bug_file_loc=&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&emailassigned_to1=1&emailtype1=substring&email1=&emailassigned_to2=1&emailreporter2=1&emailcc2=1&emailtype2=substring&email2=&bugidtype=include&bug_id=&votes=&chfieldfrom=&chfieldto=Now&chfieldvalue=&cmdtype=doit&order=Reuse+same+sort+as+last+time&field0-0-0=attachments.ispatch&type0-0-0=equals&value0-0-0=1&field0-1-0=flagtypes.name&type0-1-0=equals&value0-1-0=commit-queue%2B list of commit-queue+ bugs] `webkit-patch bugs-to-commit` is how the commit-queue checks. That will print out any pending bugs. === Q: What checks does commit-queue do before landing? === Everything `webkit-patch land-from-bug` does. Which is `build-webkit` (on Mac) and then `run-webkit-tests`. The commit-queue also checks http://build.webkit.org/ to make sure that all of the Leopard and Windows builders are green. If you would like it to do more, please file bugs and post patches to `bugzilla-too`l! :) === 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 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? === Yes. Any committer could run the commit queue. `webkit-patch commit-queue` The commit queue is not designed to have more than one copy run at a time though. === 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.