The project-template feature I wrote is bugged. It was supposed to merge defined jobs with the one defined by a template but it is overwriting them:
Example:
- name: mediawiki/tools/release check-voter:
- mw-tools-release-phplint template:
- name: 'python-lint' prefix: 'mw-tools-release'
That will only generate the jobs from the template and discard the phplint job.
The root cause is in Zuul scheduler:
- Finally merge the expansion with whatever has been already
- defined for this project config_project.update(expanded)
dict.update() does not do a recursive merge. We need a new function that will recursively merge all values being dicts.
Version: wmf-deployment
Severity: normal