This is an approach where the same repository contains independent components (with different release versions).

In general, it is better not to do this: if they are independent, then let them be independent in different repositories.

If you really want to, then you can, but with pain:

  • for components in different folders, version tags are prefixed. For example, component1-1.2.0 and component2-3.5.7. This is usually not a problem, all utilities have a prefix setting.
  • it is necessary to determine whether there were changes in the folder from the last release to the current one. If it wasn’t, then you don’t need to create a release. You can check something like that, but also configure it to accept 2 tags. I note that because of the 2 tags, checks at the CICD level have changed something in the folder or not will not work: we do not need the last commit, but how many of the last ones.
  • it’s kind of tricky to analyze messages in committees, because increasing the second digit in one folder does not mean that you need to do the same in another. I.e., you need to formally describe how they need to be written for this project.