Request: Blog Post - What is your git workflow/release cycle/development process?
Opened this issue · 2 comments
Hello Artsy Mobile team!
There are a large number of workflows for managing and releasing an app:
over @paperlesspost, we use a "feature branching" model:
- Create a new branch from master
- Do your feature or bug/other development
- When finished get code review from team members
- Once all CR is addressed and signed off on, mark the branch as "ready for QA".
- QA takes a pass and either accepts or rejects it. If accepted it goes to "master". If rejected, it goes back to development.
- At the end of our "sprint", we cut a release branch, "soak it" and QA it for a few days to a week, then eventually submit that branch to the App Store.
I've spoken with a dev from Pinterest who stated a similar workflow, and as of ~2 years ago, Facebook iOS followed a similar model (not sure if they still are).
I've more recently been enlightened to learn about "Git Flow", which we are beginning to trial-run right now. (http://nvie.com/posts/a-successful-git-branching-model/)
It encourages devs to ship smaller branches to the "integration" (or "development") branch after receiving CR, and having nightly builds of that branch be QA'd. This all ties into CI automation of tests, as well as developing new feature behind "feature toggles". It also changes how QA functions, having them test nightly builds, rather than "feature branch" builds
There are some other topics related such as:
- How is code review managed?
- How much automation do you have
- How do you plan out releases/features?
- Do you have product manager, what do they use to help plan releases?
- How does QA tie into your workflow?
I know you have written in the past about Arty's 4(?) week release cycle (not having luck finding it right now if you could cross post!)
I've also read up on an earlier post: https://artsy.github.io/blog/2012/01/29/how-art-dot-sy-uses-github-to-build-art-dot-sy/
and could see this as a part-2 elaborating on it.
What is Arty's workflow for successfully developing and shipping apps?
Thanks as always for working in the open! Incredibly helpful resource for learning
( Sprint planning: artsy/eigen#221 )
A lot of the discussion here is very nascent within Artsy, we've very recently ( last 3-4 weeks ) gone through a big product team re-org from tech focused teams to product verticals.
So this means for a few of our apps, we're not even sure of the answers ourselves. Which is IMO a good space for us to explore, thanks a lot @SRandazzo - some great things to talk about here.