I am starting a new project and would like to use Release Flow http://releaseflow.org/
I would have a "main" (master/production) branch, which will represent latest project state. To make a releases I would use tags.
Situation: Let's say in Jira 2 developers will work on 2 different tasks. Developer A working on medium priority task A, developer B on high priority task B. Developer A finishes his big task first, merges it to "main", then same does dev. B.
Then main branch wil look like:
Now, since task B is more important, it is being tested first, and now ready to be deployed to prod. But task A is not yet fully tested, so not ready to be deployed.
The question is: how would I make a deployment tag to include only task B, not task A?
Updated:
One way to restate your question could be:
After merging multiple undeployed features into
main
, how can I release some of those features but not all of them?
The following concepts come to mind:
release
branch and revert the feature(s) you don't wish to release (yet).next
which is where you do preliminary integration testing to work out the kinks, and then you merge only the features you like into a long lived shared branch. The key here is that you periodically reset next
(perhaps to main
) to remove all of the throwaway test code.next
branch (as described in option 2) to do preliminary testing so that by the time you merge into main
you decrease the chances that you'll need to revert any features from a release. Note this option is similar to Ôrel's comment. You may be able to skip having a next
branch and instead build and fully test the feature branch before it's merged anywhere.