Repository
How to structure the repositories is an architectural matter. Each repository has its own life cycle. Hence, changes in one repository do not affect changes in another repository, unless of course they are connected (e.g. a web service connection). To learn more about functional architectures and decoupling applications read A maintainable and agile architecture.
Branching
A branching strategy is a plan on how to use branches within the repositories. There is no correct branching strategy, but there will be a branching strategy that fits your Blueriq development and the technical environment best. It is recommended to give it some good thought and choose a strategy together and stick to it. Evaluate the branching strategy and adjust if necessary.
A common branching strategy is Feature branching.
How to choose a branching strategy?
Which (Blueriq) branching strategy fits your application depends on your team, projects, DTAP street and/or technical environment. Sometimes a combination of branching strategies might be best, e.g. feature and release branching. There are some elements that might help choosing the best strategy for your project:
- Do you need a stable trunk or branch? Hence, how important is it to be able to release a stable version at any time?
- Does the DTAP street support the branching strategy? For instance, is it easy to deploy and test a feature branch?
- Are there any other systems or applications dependent of the Blueriq project or the other way around? Is it useful to all use the same strategy?
- Is it uncertain when or if a new features will be implemented? It might be useful to use a feature branch to separate the new feature from existing features.
- How many people/teams have to work in the same projects?
Choose a branching strategy and stick to it across repositories and teams. Evaluate and adjust if necessary.