Fundraising tech

Jump to: navigation, search

This document should explain or link to everything needed for fundraising tech development.


Manage the incoming donation pipeline from Extension:CentralNotice and emails through the Extension:DonationInterface, SmashPig, CRM and reporting modules.

We do not write banners or run tests, we support the people and software that run them.

Fundraising Tech[edit]

Technical work supporting the Wikimedia Foundation's fundraising efforts.

Metrics May 2017 +/- from April 2016
Donation Count 332,900 36,900
Average Donation Rate $1.53/second $0.38
Peak Donation Rate $21.80 -$5.31
Country Count 111 -79
Country Count, > $1000 USD 131 12
Distinct Campaign Sources 273 182
Donation Source Breakdown (by USD amount, > 1% of total)
sitenotice 46.22% -14.76%
email 47.55% 18.36%
sidebar 2.33% -0.36%
Waystogive 1.94% -0.34%
civicrm 1.05% -2.83%
Updated 5/18/17


Fiscal Year 2016-2017



fr-tech's detailed Roadmap

Rhythm and code freeze[edit]

We have a special yearly window of not deploying major changes to some critical systems starting in the fall, in preparation for the Big English drive.  Game on again in mid-January, assuming we haven't emitted a puff of smoke in early December.

This code freeze gives our development an annual cadence, with each season seeing similar types and intensities of work, year-over-year.  Any long-running FR-tech project should take this into account.


Installing the software stack[edit]

Much of our toolchain is provided by MediaWiki-Vagrant, here's how to provision and enjoy a new installation. Be aware that this requires about 2GB of memory and lots of processor. Please follow setup instructions at the main MediaWiki-Vagrant page above, but enable the following role before provisioning for the first time:

   vagrant enable-role fundraising

Also note that the fundraising role assumes that the vagrant repo is in /vagrant and that drush is in /usr/local/bin/drush.

Assuming your box builds without error, visit and the wiki's main page will have links to help you get started. Please note that the subdomain is actually a wildcard DNS that resolves to, so if you are running vagrant on a different host than you're browsing from, or if you're offline, you'll need to add hosts entries yourself.

This role also installs CiviCRM, at

If you wish to forsake Vagrant and try to do it all the hard way, see Fundraising Tech/Donation Pipeline Setup

Running PHPUnit tests under vagrant[edit]

The fundraising role checks out a separate branch of mediawiki core into /vagrant/mediawiki-fr. Some slight of hand is required to run the tests from that directory and not the primary wiki. From the vagrant directory, do:

FIXME: not working.

   vagrant ssh
   cd /vagrant/mediawiki-fr/tests/phpunit
   export MW_INSTALL_PATH=/vagrant/mediawiki-fr
   php phpunit.php --wiki paymentswiki --group DonationInterface

Testing queue operations under vagrant[edit]

Please see Fundraising tech/Queue testing.


You can find our engineering team on the #wikimedia-fundraising irc channel. Include "fr-tech" in your message to make sure we see it.

See also[edit]