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