Wikimedia Release Engineering Team/CI Futures WG/Meetings/2019-02-26

= Kickstart meeting 2019-02-26 =

On Google Hangouts Meet.


 * Brennen
 * Lars
 * Zeljko

Agenda
The goal of this meeting is to get started, get organised, and have a plan for how to achieve the goal of the working group.


 * Are the participants OK participating in the work group?
 * Brennen: OK
 * Lars: OK.
 * Zeljko: OK


 * What is and isn't in scope of the WG?
 * Evaualute current CI tools (Zuul, Gearman, Jenkins), and possible replacements.
 * Code hosting, code review probably to stay with Gerrit.
 * Brennen: I think I'd like to see this up for discussion eventually, but probably out of scope here.
 * Ticketing probably to stay with Phabricator.
 * In-scope: everything after a change is pushed to Gerrit until software runs in production.
 * Given/assumed:
 * production will run services/sites on containers in Kubernetes
 * builds will ideally do that too


 * Suggestion for plan:
 * Gather requirements
 * Evaluate candidates
 * Discuss, come up with a recommendation
 * Write and publish (short) report
 * What did we consider? What are requirements?
 * Rationale for recommendation.
 * TODO: Lars to check with Greg how much time we should spend on this


 * This week we interview people privately to collect requirements and agree on evaluation method (spreadsheet? reports?).
 * Lars has already inteviewed Greg, Tyler, and asked Jeena about any CI related feedback from the developer interviews.
 * Interview with Antoine scheduled for Wednesday.
 * Anyone else in RelEng or otherwise?
 * Wiki page with results: https://wikitech.wikimedia.org/wiki/Deployment_pipeline#Requirements_for_pipeline_tooling
 * TODO: Z: req: debugging CI (when local works) is super-annoying, this should be made easier
 * TODO: Z: req: we need to store at much artifacts as possible, when a test fails, VM or container should be made available for debugging to the dev


 * Discuss current list of requirements and candidates.
 * Postpone this for a later meeting and offline discussions.
 * Z: Requirements list potentially a good use for voting.


 * This week also start collecting list of possible candidates.
 * Same page as above.
 * Current: Zuul v2.5, Gearman, Jenkins; Antoine says this is untenable in the long run
 * Zuul v3
 * GitLab-CI (not for git hosting?)
 * B: One advantage here would be as a wedge for introducing GitLab itself, if that's worth exploring
 * Go CD
 * Buildbot
 * Jenkins on its own
 * possible list: https://en.wikipedia.org/wiki/Comparison_of_continuous_integration_software
 * others???
 * B: I'm a little curious about https://sourcehut.org/ (probably not, but maybe worth a glance)
 * Circle-CI (license?)
 * https://semaphoreci.com (license?)


 * TODO: Lars to make a weekly blog post with updates of the WG work, for publicity
 * TODO: Lars to ask publically or within WMF for suggestions for candidates
 * TODO: Ask for suggestions within our personal networks


 * Evaluation method? Once we have a list of requirements and a list of candidates, how do we evaluate them?
 * We should have a short list of very hard requirements
 * Serious candidates need a demo / description of the workflow
 * Probably sufficient to build a git repo - if it works with git, we're probably good
 * A huge spreadsheet?
 * Short one-page reports on each candidate?
 * Why is (or is not) each candidate an acceptable choice?
 * How do we divide the evaluation work?
 * Have at least two people look at each thing?


 * TODO: Lars to set up a new meeting for Thursday. One hour before the Docker-SIG meeting.
 * TODO: Lars to create a Super Hard Requirements section
 * TODO: Lars to move list to subpage or its own page

= For the future =


 * Ask Dan if he wants to join the WG as well.
 * Finish list of requirements
 * Divide candidates for evaluation
 * Add list of very hard requirements to Deployment pipeline page