Content translation/Deployments/How-to

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

ContentTranslation
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, https://gerrit.wikimedia.org/r/#/admin/projects/mediawiki/extensions/ContentTranslation,branches In case of emergency, note down old hash.
 * 2) Read and follow: https://wikitech.wikimedia.org/wiki/How_to_deploy_code#Updating_the_submodule Make sure you've clean copy of MediaWiki/core for this.
 * 3) You're ready for actual deployment.

config

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

Troubleshooting

 * 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

code
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   This will also update node_module and submit review in Gerrit. If only src (and if only package.json updated node_modules needed), run
 * 4) Merge patch.
 * 5) Once patch is merged, follow the deployment method below.

Troubleshooting

 * 1) Stop if you get new errors not described here!
 * 2) To revert deployment, see: https://wikitech.wikimedia.org/wiki/Services/Deployment#Reverting_a_Deployment
 * 3) Check logs at: https://logstash.wikimedia.org
 * 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.

Debugging
To check health of end-points:

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

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

Troubleshooting

 * 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: