Spring Boot Multi Module Maven/Gradle Single Git Repository Release Process

37 Views Asked by At

I am stumped on best practice for releasing software artifacts that are part of a multi-module project and part of the same git repository and branch, spring boot is a good example of what I am looking to do:

https://github.com/spring-projects/spring-boot

Here they have a single repo/branch for dozens of sub projects like the spring boot starters, messaging, actuator etc. and instead of putting each of these projects in their own repository they have an Uber repo which is the model I am looking to implement for similar kind of project with many sub-modules, the part I don't understand is as a result of multiple artifacts bundled in the same branch and multi-module project every module must be released at the same time. Can someone help me answer the question in the use case where a new release branch is created say version 2.0 but only 5 of the 60 sub modules were modified and all the other modules were untouched, when version 2.0 is released do all sub modules versions get bumped up to 2.0 despite some modules not having any code changes or are only 5 modified modules released and versions incremented?

If all modules are incremented to version 2.0 then essentially we'd end up with many sub modules part of spring boot or any multi-project where version 1.7,1.8.1.9 etc release artifacts might be the exact same code, is this a bad thing and anti pattern or is this how this style of source code management and release process works? Thanks for any help, I have been looking to understand this for some time now. - Duncan

0

There are 0 best solutions below