What (all) it would need to do:
Deployment calendar
- Have a config somewhere for "what does the basic week skeleton look like"
- This can live in code or on wiki, I don't care
- Add that skeleton for two weeks out on Friday
- eg: on Fri Oct 2nd 2015, add the skeleton for the week of Oct 12th
- Archive previous weeks on Sunday night
- eg: archive content for the week of Sept 28th, 2015 on October 4th
- Archive layout currently is: wikitech:Deployments/Archive/YYYY/MM (with each week keeping it's heading level (===) on that month)
Deployment Blockers
Batch creation / editing of the task series which we use for tracking release-blocker bugs with each weekly deployment train. These tasks can be seen in the Train Deployments project and they are annoying to maintain manually. Automation will enable the following conveniences:
- Batch creation and editing of these tasks instead of spending 10 minutes on manual copy/paste every couple of weeks.
- Generate standardized markup for the task descriptions from a text file with template markup plus a few variables which are computed dynamically for each weekly deployment
- Compute the week beginning day for "The week of $date"
- Link each task to the previous and next task within a series which is difficult to do currently due to a circular dependency: you have to know the task ID of next week's task before you can link to it. So we currently are forced to edit each task twice in order to get them all linked up properly. Automation will eliminate this problem.
Tags and Milestones
We have at least two more periodic objects in phabricator which are managed somewhat manually:
MediaWiki Release Notes
These are series' of tags and milestones that also represent each weekly mediawiki train iteration and are grouped within each major mediawiki version, e.g. MW-1.30-release-notes. AFAIK these are manually created by @Jdforrester-WMF
Phabricator Release Notes
These are milestones within the Phabricator project which are used to track merges from upstream phabricator when they are deployed to Wikimedia's fork of Phabricator. An example can be seen in Phabricator (2017-06-01). These are maintained by myself (@mmodell) and I have already automated their creation using the same code which I intend to apply to the other processes mentioned above.