The only reason to do splits first is because you are worried about getting stuck in a single repo long term: so showing how easy it is to split at any point is a pretty strong argument I think. (It’s also pretty easy to merge repos)
The biggest reason to do splits ever is, I think, that people are using CI tools that have a 1 <-> 1 mapping between repos and test suites. Your CI tool should be able to approve a commit that passes the per-module test suites that it transitively touches.
This mainly a breezy introduction to
git filter-branchand doesn’t delve into why you start with a monorepo and move to submodules.The only reason to do splits first is because you are worried about getting stuck in a single repo long term: so showing how easy it is to split at any point is a pretty strong argument I think. (It’s also pretty easy to merge repos)
The biggest reason to do splits ever is, I think, that people are using CI tools that have a 1 <-> 1 mapping between repos and test suites. Your CI tool should be able to approve a commit that passes the per-module test suites that it transitively touches.