while having the requirements:
- Running Parallel masters
- Running Feature branches, that might / might not be released
- Handling Hot Fixes
- Handling Vulnerability Fixes
Looking at A successful Git branching model
Can we do away with release branch as long as we tag the master branch after every release?
Can we also do away with develop branch?
Release branch can be branched off master at the start of the new sprint and devs can create their features branches off of that. If a hotfix merge to master (current release) happens in the middle of a sprint, the hotfix can also be merged to the current release branch at the same time as feature-branch-hotfix-
Code from feature/develop branches should be deployed to DEV environment
Feature branches by themselves should not be deployed at all.
Prefer my strategy in which a merge request from release-* to master kicks off the jenkins pipeline build via webhook, that will auto merge release-* to master, build from master and tag the merge commit.