WebKit's commit-queue [wiki:"BugzillaTool" bugzilla-tool] command which is run on the commit server (maintained by Eric Seidel) and is an easy way for contributers 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 `bugzilla-tool land-patches` 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+? === bugzilla-tool 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 `bugzilla-tool` bugs: https://bugs.webkit.org/buglist.cgi?quicksearch=bugzilla-tool === Q: How can I see what's in the commit-queue? === [https://bugs.webkit.org/buglist.cgi?query_format=advanced&bug_status=UNCONFIRMED&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&field0-0-0=flagtypes.name&type0-0-0=equals&value0-0-0=commit-queue bugzilla query] `bugzilla-tool 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 "bugzilla-tool land-patches" does. Which is build (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-tool! :) === Q: When I review a patch, should I set commit-queue+? === If you would like the commit bot to land the patch, yes. === 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. `bugzilla-tool 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 `bugzilla-tool` 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.