Hello all,
------ tl;dr: There's a difference between how the WMF Platform team and Feature Teams commit to master. Why? How can we unify and/or make testing from development branches easier for everyone? ------
Two weeks ago Ops and Platform both had all staff local in SF for a week for a slew of meetings. I took that opportunity to make even more meetings with people/teams regarding our dev and deployment process. (I promise I'll be nicer in the future.)
You can see the fruits of that labor here: https://wikitech.wikimedia.org/wiki/Deployments/Features_Process/General_Fee...
(More info linked from: https://wikitech.wikimedia.org/wiki/Deployments/Features_Process )
One of the things that became apparent is that the Features Teams (eg: E2, E3, Visual Editor) tend to have separate branches that they develop on and only merge to master closer to their deploy windows. There is some variation among them, of course, but the general idea stands.
This contrasts with the way the WMF Platform team develops; we predominately commit to master as we develop with any new features set as disabled in a config until it is ready. The Features Teams also use the "disabled in a config until ready" bit, of course.
What is the reasoning for the use of this development/deployment distinction on the Feature Teams? Mostly it is testing, from what I could tell. Many teams have the development branch running on a test instance that they, well, test against. Then, as things stabilize they merge to master via Gerrit.
(Feature Teams members, please correct me if I'm wrong anywhere above, generally: specifics may differ, of course, but is the overall notion accurate?)
How do we encourage a more unified development, testing, and deployment process across all WMF teams and community members (sometimes they are one and the same)?
This issue should also be looked at with betalabs in mind; how can we utilize betalabs to be the best test environment it can be? What code should be running there and how often should it be updated? What tests should be automatically run against it? These questions are almost out of scope of this thread, but a solution to this thread should also have an eye towards betalabs.
Thanks,
Greg