We need to address this issue as we are locking out people from development versions because of incorrect gem dependencies.
For example that a released gem of gator-as-robotlegs is linking against a develop version of gator and/or gator as3 which is not on RubyGems yet and has to be built and installed manually from source.
We certainly cannot push "release" gems out as we develop, as this will probably lead to even more gem-dependency issues as we are having now.
But we could use the github-flow model on our develop branches, and instantly deploy "pre-release" gems (like "0.1.0.pre") from there.
This would allow us to quickly push pre-releases to ruby gems which are in sync, and will allow other developers to try them out and test them (for us).
Once we have reached a satisfactory state in our develop-branches, we can merge them into the master-branches and make a proper release from there.
To work with this model, we need to stop making changes on the develop branches and fork off into another branch for every feature, even if it is just a line of code that has changed.
This way we can also use the pull-requests on github, to get feedback for upcoming merges of features into the develop branch which is also described in the github-flow blogpost. If you're confident you could just use git-flow to merge right away.
Additionally we can automatically setup builds on jenkins for every feature branch that has started, to have automated tests for them too.
Does this sound like a good combination of both work-flows or am I missing something?
--
Dominic Graefen
Freelance: Interactive Developer / Creative Technologist