WebKit's commit-queue [wiki:"BugzillaTool" bugzilla-tool] command which is run on the commit server (maintained by Eric Seidel) and is the primary way for contributers without commit privileges to get their changes into WebKit. == Commit Queue Process == 1. Contributers will set "commit-queue=?" on their patches. 1. A committer will set "commit-queue=+" in response. 1. The commit-queue polls bugzilla for the list of cq+'d patches. When it finds one it will run `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, queue 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 tree is currently red or not (http://build.webkit.org). The commit-queue will not commit when the buildbots 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. Eventually the commit-queue will know how to attach its failure logs to the bug: https://bugs.webkit.org/show_bug.cgi?id=28286 The commit-queue is still buggy. Sometimes it rejects patches it shouldn't. Don't worry, whoever is running the commit queue should add your patch back to the queue if it was wrongly rejected. `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+? === Yes. Unless the patch-poster is a committer or you want to commit it yourself. === 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, it sets this based on who marked the patch as r+. It also updates the date for the changelog entry as well.