Things that require their own deploy window
Long running tasks
While not strictly a deployment, performing a long running task (more than 1 hour), eg. migration scripts, are required to be scheduled on the calendar. These can encounter issues when code is updated while a script is being run. The window can be short (e.g. 30min), and cover the anticipated start time and mention the estimated length for the task.
Could make the cluster fall over
- Database schema changes.
- Any change altering the databases schema must be asked on the schema changes page prior to deployment.
- Backend/underlying software updates (e.g. PHP, HHVM, MariaDB, etc.)
- Data-center changes (e.g. new DC coming online or datacenter going offline.
Notable production code change
- Out-of-sequence MediaWiki and extension code updates (including wikitech)
- Anything going into BetaFeatures (new features for users)
- Anything going out of BetaFeatures (i.e. will now be user-default, or included in User Preferences)
- Adding a new extension (either cluster-wide or per wiki)
- Anything which introduces a new cookie (or renames an existing one)
- Big default behavior changes
Needs read-only time
Including on a per-wiki basis, like database shard migrations.
Cross-cutting impact or large unknowns
- e.g. changes to deployment system
- changes that affect load characteristics substantially or in unknown ways, e.g. performance
- this section is informed by past breakages, as well
How to add a special deployment window
- Ensure you have the support for deploying you need (e.g., someone to run maintenance scripts, someone to deploy, someone to run sql changes)
- Find a date/time in the Deployment Calendar
- Add a new Deployment calendar event card with the details of your deployment
If in doubt, talk to Release Engineering.