Fundraising tech/Deployment

Release tags and branchesEdit

Please note that many repositories include checked-in external libraries. This should only be done on the deployment branches, the master branch is rebuilt by the developer. Do check in composer.lock and similar files for version locking.

Repository Deployment branch
crm deployment
mediawiki/core fundraising/REL1_31 (or current LTS)
DonationInterface deployment
CentralNotice wmf_deploy
SmashPig deployment
tools deploy
dash deployment
all others master or as submodules

ConfigurationEdit

Change paymentswiki configuration files on the frack puppetmaster, frpm1001.

fr-tech doesn't have access to configure some subsystems directly.

Deployment processEdit

Fundraising cluster deployment is always done from frpm1001. Software is deployed using the custom fundraising_code_update and rsync_blaster scripts, configuration is deployed with frpm1001 as the puppetmaster. More information is available about deployment on Collab.

SmashPigEdit

Deploying SmashPig as a composer dep of CRM is very involved. Replace v0.5.11.3 with the next logical version number after the current one, trying to stick to the rules at https://semver.org/ (breaking changes increase the 1st digit, minor changes increase the second digit, bugfixes increase the 3rd digit).

  • commit SmashPig/master
  • git tag v0.5.11.3 HEAD
  • git push origin v0.5.11.3
  • update SmashPig on packagist.org
  • in crm/master, composer update wikimedia/smash-pig
    • if composer doesn't see the new version, try composer clear-cache
  • commit crm/master
  • check out crm/deployment
  • merge crm/master
  • rm -rf vendor # to get rid of dev dependencies
  • git submodule update --init # to get a copy of vendor identical to the repo
  • composer install --no-dev
  • cd vendor
  • git add . && git commit
  • git review and merge to master in the vendor repo
  • update submodule ref for vendor in crm/deployment
  • commit crm/deployment (git commit --amend to squash it in with the merge commit)

CentralNoticeEdit

Please see CentralNotice documentation on Wikitech.