Page MenuHomePhabricator

[GOAL]: Release process and staging environment
Closed, DeclinedPublic

Description

Subgoals

  • Redirect all development to a development branch.
  • Set up a staging environment that feeds from the development branch and runs tests.
  • Set up a the release process (tech lead merges to master for release, generates changelog and publicly communicates what’s going out the week).

More control over our development and release processes

Why & Current situation

Currently our development process is coupled to our release process, which leads
to code being deployed implicitly, creating unexpected regressions. We have
2 environments mirroring production, one of which is auto-updated from our master
branch, but no staging environment. We don't have anywhere to sign off or test work
in a production-like environment prior to it being merged and released.

See https://phabricator.wikimedia.org/T100296#1325052

Objectives
  • All development from gerrit will be redirected to the *dev* branch.
  • Set up and document a staging environment that auto-updates from *dev*. (automate, test data, etc).
  • Run browser tests against staging on pull. On fail send log since last pull.
  • Set up documentation and process (in Phab) for the tech lead to merge *dev* to *master* if stable enough (We can and should iterate on this to find the optimal strategy).
  • Generate and release a changelog publicly with the changes that are going to prod.
  • Document the whole process and release publicly.
Estimated work

1 sprint

Event Timeline

Jhernandez claimed this task.
Jhernandez raised the priority of this task from to Needs Triage.
Jhernandez updated the task description. (Show Details)
Jhernandez subscribed.
Jhernandez triaged this task as Unbreak Now! priority.Jun 30 2015, 11:24 AM
Jhernandez set Security to None.
phuedx updated the task description. (Show Details)

This task has "Unbreak Now!" priority since four weeks ago. It is blocked by two other tasks which only have high priority and are "epic". Please provide an update and/or set a realistic priority. Thanks.

Jhernandez lowered the priority of this task from Unbreak Now! to High.Jul 31 2015, 10:21 AM

@Aklapper I'll change it to High, but it's been like that because this is a Goal task, composed of Epic s that themselves split into tasks. That's why it's taking so long to close (because it is a quarterly goal).

Do we have a tag for that?

@Aklapper I'll change it to High, but it's been like that because this is a Goal task, composed of Epic s that themselves split into tasks. That's why it's taking so long to close (because it is a quarterly goal).

Do we have a tag for that?

Sounds like a meta- Epic. :) In any case it does not sound like "Unbreak now" priority but IMO the blocking tasks should have higher prio than the epic one (as those need to get resolved first). For tracking quarterly goals planning, see public discussion.

It would really be nice if you involved Release-Engineering-Team on this project. I think I agree with the general objectives I see here, but we need to coordinate our release process.

I don't really like the way we "implicitly" release code each week. I would much rather accept pull requests from other teams instead of branching from master each week. We really just need to figure out how to coordinate this.

Jhernandez renamed this task from Release process and staging environment to [GOAL]: Release process and staging environment.Jul 31 2015, 4:25 PM

@mmodell I agree with you and would love to try other releasing models but we've talked long with Release-Engineering-Team (see T100296 for example, lots of good comments there) and this is what we are trying now to try to ship less bugs / regressions.

Definitely super interested in conversations about improving our release processes, please ping me/us if you kickstart them or propose something!

Also this goal is something we're trying and will retrospect about, and see what advantages and problems it gave us, so that we can decide if we should roll back to do everything in master, stick with what we did, or modify it even more. We'll see.

Jdlrobson subscribed.

Declined after failure of experiment. See https://lists.wikimedia.org/pipermail/wikitech-l/2016-January/084584.html for more information.