CentralNotice

From Wikitech

CentralNotice is the MediaWiki extension that delivers announcements (usually in the form of banners) to WMF wikis. It is used by the Advancement team to solicit donations, and for announcements of interest to Wikimedia communities and users. CentralNotice can target announcements by country, language, project, device and logged-in status.

This page contains information about the CentralNotice setup on the WMF's cluster. For developer information, or to learn how to install CentralNotice on your own wiki, please see Extension:CentralNotice on Mediawiki. For information about how to create and configure CentralNotice campaigns and banners, see Help:CentralNotice on Meta-Wiki.

Deployment

CentralNotice deployments are different from those of most other extensions, since changes merged to the master branch on Gerrit are not automatically included in the weekly train deploys.

Instead, branches for each weekly train deploy are created from the wmf_deploy branch, and those are deployed each week with the train.

Changes to wmf_deploy should be made in such a way that future merges from master are simple and conflict-free. New patches should always be created first on the master branch, and never directly on the wmf_deploy branch.

Since the beta cluster is synced to the master branch of CentralNotice (and of other codebases) and is set up similarly to production, it's an ideal place to smoke-test changes currently in master before deploying them.

Train deploys

To put changes out on the train, merge or cherry-pick them from master to wmf_deploy. To push out all changes that have accumulated in master since the last deploy, just merge master into wmf_deploy.

Since the train starts on Tuesday, it's often a good idea to do this on a Friday or a Monday, to keep wmf_deploy in sync with what is deployed on production.

To see what has accumulated on master and since the last time master was merged to wmf_deploy (other than translation updates) use this command:

git log --pretty=format:"%h%x09%s" --no-merges wmf_deploy..master | grep -v "Localisation updates"

(Note that changes that have already been cherry-picked to wmf_deploy will still show up in that log.)

SWAT deploys

Changes that need to be deployed urgently may be placed on a SWAT deploy. See that page for details on what changes may be placed on a SWAT deploy. To request a SAT deployment, edit the appropriate slot on the Deployments page.

CentralNotice changes to be deployed on a SWAT deploy should be cherry-picked from master to wmf_deploy. The Gerrit change for the merged wmf_deploy patch should be linked on the Deployments page.

When deploying on a SWAT deploy on Tuesday, Wednesday or Thursday, the change will likely be required for both Mediawiki versions currently on production on that day; this should be noted in the request on the Deployments page. For details on what's on production, see the Roadmap for the current Mediawiki version. (The preceding link is only for Mediawiki 1.35.)