Hello, we're investigating monorepos and pants, and have come across something we're not sure about. Thought we'd ask here:
1. So far, we have a simple python product (say A). We do trunk based development. Commits usually go to main (or very short lived branches before merging to main), github actions kicks off a build, we run tests, build a container, push to repo, deploy to dev, tests run, promotes to staging, tests run, becomes a candidate for release. A human pushes a button and it gets released to prod. The commit that caused his gets tagged with release-2.10.0 or whatever.
2. We're adding another product (say B). We'll pull out functionality from A to make library X. Team A will work on A and X, team B will work on B and X.
3. Say Joe from team A makes changes and pushes. This shouldn't cause a non-prod release of B to happen (or should it? what does good look like?). Similarly if Jane from team B makes changes and pushed, it shouldn't cause a non-prod release of A.
With pants, how do we make sure that Joe and Jane aren't causing some sort of lockstep deployment from happening? Is there some guidance on this? With this setup, our main would look like:
A1[R] -> A2 -> B1 -> A3 -> B2
Where these are commits, and [R] signifies the current prod release tag of A. Now let's say, Jane checks in A4 to main. If we look for changes since A1[R], we get B commits in there as well. How do we keep A and B separate?