Content translation/Deployments/How-to

Jump to navigation Jump to search

This document describes deployment procedure for ContentTranslation, cxserver and Apertium.


Content Translation is updated via regular MediaWiki train. In case of manual update needed, follow the steps below.

  1. Update desired branches to desired commit/update using delete and create branches at Gerrit interface,,branches In case of emergency, note down old hash.
  2. Read and follow: Make sure you've clean copy of MediaWiki/core for this.
  3. You're ready for actual deployment.



  1. Submit patch for cxserver configuration in cxserver/deploy repository. We need to change cxserver/deploy/scap/templates/config.yaml.j2
  2. Puppet changes are done in operations/puppet repository
  3. Beta is using in cxserver/deploy repository.
  4. Production is using from cxserver repository (and config from cxserver/deploy).
  5. To only change languages/MT config in Production, use cxserver/config/*.wikimedia.yaml


  1. Test your config change in Labs and Beta Cluster first before deployment in Production.
  2. Check if cxserver is restarted?
  3. Ask in #wikimedia-operations, #wikimedia-releng


cxserver code update is handled via updating cxserver/deploy repository.

  1. Merge patch in cxserver repository.
  2. Once patch is merged, update cxserver/deploy repository as following.
  3. To submit patch for cxserver/deploy, run ./server.js build --deploy-repo --force --review This will also update node_module and submit review in Gerrit. If only src (and if only package.json updated node_modules needed), run ./server.js build --deploy-repo --review
  4. Merge patch.
  5. Once patch is merged, follow the deployment method below.



ssh deployment-deploy01.deployment-prep.eqiad.wmflabs
cd /srv/deployment/cxserver/deploy
git pull
git submodule update --init
scap deploy  'Update cxserver to ...'


ssh deploy1001.eqiad.wmnet
cd /srv/deployment/cxserver/deploy
git pull
git submodule update --init
scap deploy 'Update cxserver to ...'


  1. Stop if you get new errors not described here!
  2. To revert deployment, see:
  3. Check logs at:
  4. While submitting patch for cxserver/deploy, make sure that deploy repo is clean (no diff), else patch submission may stuck forever.
  5. Deployment should also restart cxserver on scb clusters.


To check health of end-points:

ssh scb2001

If there is some error during deployment, logs of canary server can be seen at:

ssh scb2001
tail -f /srv/log/cxserver/main.log


Apertium deployment is done via updating apertium packages through Gerrit change and puppet.


  1. Check if package list are up-to-date in Puppet.
  2. Make sure to ask to restart 'apertium-apy' on scb1001 and scb1002 to any Ops member after adding new languages support for Apertium MT.
  3. Check logs at: /srv/logs/apertium/

See also[edit]

  1. service deployment:
  2. Deployer Quickstart Guide:
  3. cxserver/deploy README:
  4. Issues with updating submodule with git deploy:,
  5. Apertium packaging and service information: