Git/Conversion/Fundraising

The Fundraising team deploys on a different schedule and to different hardware than the rest of the cluster. As such, they've got their own sets of concerns. This page will serve to outline the current practice and the way forward when moving fundraising infrastructure to Git.

Code we deploy

 * CentralNotice (cluster)
 * ContactPageFundraiser (cluster)
 * ContributionTracking (payments cluster)
 * DonationInterface (payments cluster)
 * DonationInterfaceLangOnly (cluster)
 * FundraiserLandingPage (cluster)
 * LandingCheck (cluster)
 * cldr (we at least care about this one)

How we currently deploy
Since moving to git, we don't.

Back in svn, we had trunk and a production branch. Once commits were code reviewed and ready, we would MFT (via cherry-picking or what-not) to the production branch and then.
 * Since you guys are deploying on a different set of hardware from the cluster, I think it would be pretty easy to set up a branch for you guys to deploy from. Gerrit's permissions are very fine-grained, so we can lock down the fundraising branch so only you guys can review/submit there. Then you guys could cherry pick from master the changes you need.
 * In talking with Jeff, it turns out Gerrit's not so great for this. PCI compliance requires review on a system that "can't be tampered with." Gerrit does not qualify. We suggested perhaps replicating to a payments-owned server and having you guys maintain the branching there. Still a matter to discuss.

Things we like about the current system

 * We can cherry pick revisions to deploy
 * Git has cherry picking. You can easily cherry pick a change from master to your branch :)
 * We can omit directories (e.g. */tests/*) from deployments
 * This is likely to create merge conflicts in the long run--is there a particular reason for omitting this?
 * It works
 * We'll make git work too ;-)

Things that we wish we could change about the current system

 * It is no longer in use?

Hacks in the existing branch
Migration is slowed down by hacks that don't exist in trunk/master. Does the current branch have any such live hacks? If so, what are they?