We're going to use GitHub Flow when developing projects on GitHub. This choice has been made after taking the following into consideration:
Flow provides the ability to deploy often
It won't hinder deployment speed!
Prevents accidental merges/deployments
If github and git aren't connected to production deployments, we can only prod push if we actually want to (Heroku CLI/Dashboard, Mozbot hook)
Friendly to contributors (through documentation or not)
No more "oops I based it on master, not develop!"
All feature branches should be based on the master branch, and can be forked to your own cloned repo or (if you have the permissions) to the parent repo.
Here's how it'll work for a couple of different use cases:
For sites and services that have staging and production environments on Heroku, merging to master can automatically update staging, and production pushes can be controlled manually via the Heroku dashboard, and possibly with some custom mozbot commands in the future.
For sites that use gh-pages, master should still be the base branch, and a deploy should only be triggered by a merge to gh-pages, either by an npm script, command line or github PR.
GitHub Flow
We're going to use GitHub Flow when developing projects on GitHub. This choice has been made after taking the following into consideration:
All feature branches should be based on the master branch, and can be forked to your own cloned repo or (if you have the permissions) to the parent repo.
Here's how it'll work for a couple of different use cases: