CommitFest Checklist

= CommitFest Checklist and Timeline =
This page contains a list of things to do and when to do them for the CommitFest Manager (CFM). (It's currently in flux and is being rewritten to reflect modern practice.)
== Volunteer ==
Several weeks prior to the beginning of the commitfest (and after a quick check to see whether the job is already filled), send an email to pgsql-hackers to volunteer for the CFM position. It's essentially first-come, first-served.
== Three to Four Weeks before CF ==
With luck, you will know at least this far out that you are going to be CommitFest Manager. If so, do the following things:
* attempt to recruit an Assistant CFM from -hackers and other places. This is optional, but recommended if you're new to the position, or if the CF is large.
* begin saving all pgsql-hackers email in your local mail store for searching, if you don't already do this regularly.
* check that you have administrative permissions on the CF. (You should see an administration link in the top bar.) If not, request permissions fix from pgsql-www.
== 5 to 7 days before CF ==
* Post a reminder to pgsql-hackers (and your blog?) that the CF is beginning on the date, and that they should get their patches registered/submitted.
* Do a patch sweep (see below).
* Go over the pending patches and assign them categories or change their categories if they're wrong.
* Check each and every patch in the CF, and find/update:
** patches which are marked Waiting on Author, and change their status to Needs Review if the author has since responded to the feedback
** patches which have been already committed/rejected/returned before the CF, and update their status accordingly
** patches which no longer apply according to the cfbot CI, and remind the author to send in a rebased version before the CF starts
Patch Sweep: search the pgsql-hackers archives for messages with patch attachments that were sent after the start of the prior commitfest. (This is usually a two-month stretch of time, but sometimes it's as long as four.) Make sure that all patches submitted to -hackers are in the CommitFest (or in the prior CommitFest). If they are not, email the patch author asking if they want to submit their patch to the CF (see template below). New contributors should probably be added to the CF even if they are slow to respond, but veteran contributors should not be.
== 2 days before CF ==
* Send reminder to -hackers that the CF is beginning in 2 days.
== First day of CF ==
* Change CommitFest status from "Open" to "In Progress"
* Change status of next CommitFest if needed.
* Announce that the CF has begun on -hackers and that any new patches will need to be put on the next commitfest.
* Send a reminder to all patch submitters that they have a patch in the commitfest, and that they will be expected to review patches of equivalent complexity by other people.
== Each 5 to 7 days of the CF ==
* Check patches marked "waiting on author".
** If the author has responded to feedback and is once again waiting for review, switch the status to "needs review".
* Check patches that are marked "waiting for review" and have a review assigned.
** If a review has been made and found stuff to fix, and the author has not yet responded, mark the patch as "waiting on author". For really huge patches, you may wish to wait a little longer than 5-7 days.
** If the review says it's "ready for committer", change it to that status.
** If a prior conversation appears to have died out, consider asking for a status update on the list.
* Check patches marked "ready for committer".
** Check cfbot for these patches. Consider nudging the authors of patchsets that need to be rebased, if there's a danger that a committer won't be able to apply the set by the time they get to it. (If the author is also a committer, this reminder is probably not necessary.)
== 5 to 7 days before end of CF ==
* For any open patches:
** If there hasn't been recent discussion, send an email to the reviewer reminding them CF is almost over and asking if they're doing ok or could use some help.
** If there is recent discussion, post to the discussion thread asking if it'll likely be ready by the end of CF.
== 3 days before end of CF ==
* Post to -hackers with a reminder of what will happen to open patches on the last day of CF.
== Last day of CF ==
* For patches marked "Waiting for Author" and having at least one review, set to "Returned with Feedback" and send the appropriate email.
* For patches marked "Needs review"
** If it received at least one good review, move it to the next CF (removing the current reviewer reservation)
** Otherwise, leave them pending
== Sudden Death Overtime ==
Once the closure date for the CF has passed, how patches get dealt with changes:
* As soon as a patch gets a solid review, if it needs any changes at all it's marked "returned with feedback".
* Patches which were marked "ready for committer" and turn out to need further work also get "returned" instead of going to "waiting on author"
* Patches which require further spec discussion, performance testing, etc., get "returned" immediately.
* Patches from submitters who have not, themselves, done any review, and are still "needs review" get pushed to the next Commitfest.
The goal is to close out the CF as soon as possible, without skipping review for any patch which still deserves a review.
== After CF ==
* Close CF in app (but make sure all patches are moved first; otherwise build machinery like cfbot will drop them)
* Make the next CF current
* Send reminder email to authors with patches that were Returned with Feedback reminding them to add their patch to the next CF if they plan to continue working on it.
* Send "thank you" email to reviewers, reminding them they are more than welcome review in the next CF even if they haven't submitted a patch.
* Assemble two lists of reviewers for the eventual release notes:
** Reviewers who did substantial work on the patch (usually code work) to make it go in and the patches they worked on, and
** Reviewers who did a regular review, as one big group
* Have a beer or three - you've earned it. :-)
= Email Templates =
=== Patch Sweep ===
For new contributors:
 [contributor name]:
 You sent in your patch, [name of patch file] to pgsql-hackers on [date posted]. 
 You may not be aware, but in order for your patch to be included in PostgreSQL, 
 it needs to be part of the next CommitFest. Accordingly, I have added your 
 patch to the list here [link to CF entry]. If you want to withdraw your patch, 
 or if you simply won't be around to answer questions during the 30 days of 
 this CommitFest, please let me know and I'll remove it. Thanks!
For experienced contributors:
 [contributor name]:
 You sent in your patch, [name of patch file] to pgsql-hackers on [date posted], 
 but you did not post it to the next CommitFest [link to CF page]. If this was 
 intentional, then you need take no action. However, if you want your patch to 
 be reviewed as part of the upcoming CommitFest, then you need to add it yourself
 before [start date]. Thanks for your contributions.
=== Patch Reminder ===
 [contributor name]:
 As a reminder, you have the following patches in the current CommitFest:
 [list of links to their patches]
 If you are not prepared to follow up on review to these patches during this 
 CommitFest, please let me know and I will remove them now. I also remind
 you that each patch submitter is expected to review at least one patch from
 another submitter during the CommitFest, so please pick someone else's
 patch to review as soon as you can. 
 Thanks for your contributions to PostgreSQL!
=== Reviewer Clear ===
 [reviewer name]:
 Since you haven't had time to write a review of [patch] in the last 5 days, 
 we've taken your name off the reviewer list for this patch. Of course, you 
 are still very welcome to review it if you can find time. We're just removing 
 your name so that other reviewers know the patch still needs attention. 
 We understand that day jobs and other things get in the way of doing patch review 
 when you want to, so please come back and review a patch or two later 
 when you have more time. 
 Thanks!
=== Returned with Feedback ===
 [author name]:
 [patch], which you submitted to this CommitFest, has been awaiting your attention 
 for more than five days. As such, we have moved it to "Returned with Feedback" 
 and removed it from the reviewing queue. Depending on timing, this may be reversable, 
 so let us know if there are extenuating circumstances. In any case, you are welcome 
 to address the feedback you have received, and resubmit the patch to the next CommitFest. 
 Thank you for contributing to PostgreSQL.
=== List of Non-Reviewing Submitters ===
 Subject: Submitters who have not reviewed
 Per the Developer Meeting of 2012, each patch submitter is required 
 to do at least one patch review for each submitted patch. The following
 people have submitted one or more patches to this CommitFest, and have 
 neither claimed any patch for review, nor responded to a private reminder
 to do so. This list is being posted in hopes that these submitters will 
 see it and do a review soon. Without each submitter doing a review, 
 the PostgreSQL project cannot promise to review all patches.
 [list of names]
Category:CommitFest
Category:Getting a patch accepted