Wen I started using Git, I looked around for best practices and found this guide:
http://nvie.com/posts/a-successful-git-branching-model/
The gist of it is to use topic (or feature) branches for developing new features, an integration branch for merging new features once they’re ready but not fully tested yet and hotfix branches for bugs that must get fixed as quickly as possible.
I think overall this is a solid model that works well. There’s one quirk, however. The guide (and thus CAF) never pushes to `master` except for releases. The integration branch is `develop`. This makes `master` essentially superfluous for us since it’s simply the state of the top most release under the release tab on GitHub.
The `master`-is-production-ready philosophy makes sense for company-internal libraries that don’t have regular releases. For CAF, however, I feel like it’s just a quirk at this point and doesn’t work well with GitHub issues and PRs. It’s also confusing potential contributors.
Long story short, I think it’s time to drop the `develop` branch and get rid of the `fixed in develop` label for good. Any objections or comments?
Dominik