Deployments/Train vs backport

From Wikitech
Deployments

There are types of changes that should be deployed via the train, types of changes that should be deployed via backport windows, and types of changes that should be deployed via dedicated deployment windows. This document is an attempt to codify the criteria used to determine the method by which a change should be deployed.

This change deployment criteria uses IETF RFC 2119 keywords.

Train

  • New extensions MUST be deployed via the train (before they are enabled)
  • Changes to l10n SHOULD be deployed via the train
  • Changes requiring library upgrades in mediawiki/vendor SHOULD be deployed via the train
  • Changes requiring several commits across many branched repositories SHOULD be deployed via the train
  • Any change to MediaWiki core, extensions, or skins MAY be deployed via the train
    • NOTE: For many types of changes it is often more appropriate to deploy these changes via backports and that SHOULD be the default choice.

Backports or Dedicated windows

  • Changes to operations/mediawiki-config MUST be deployed via backport or a dedicated deployment window
  • Changes meeting the criteria for dedicated windows MUST NOT be deployed via the train and SHOULD be deployed via dedicated windows
    • Justification: train conductors don't usually understand the aspect or subsystem being changed, and having people who do understand it in dedicated deployment windows means it's less likely to break things badly, and any breakages are more likely to be noticed as breakages.
  • Risky changes SHOULD be deployed in dedicated windows but MAY ride the train provided that the developer comments on the train task
  • Fixes for critical regressions SHOULD be deployed as soon as possible via a dedicated window or a backport window.
  • Changes that are incompatible between wikiversions, such as changes to job serialization format SHOULD be deployed via dedicated windows rather than deployed via that train
  • Non-trivial changes to CSS, JavaScript, PHP, or configuration of MediaWiki core, extensions, or skins that does not require PHP library upgrades SHOULD be deployed via backport or dedicated window
  • Trivial changes to CSS, JavaScript, PHP, or configuration of MediaWiki core, extensions, or skins that does not require PHP library upgrades MAY be deployed in backport windows (provided the backport deployer is comfortable deploying the change)