I am trying to split my project up into multiple sub projects, all version managed so others can develop with me and we can easily divide tasks and track time across the project etc blah blah.
I have found myself in a situation where some of these sub projects depend on each other.
In isolation these projects don't do much, in order for them to be run they need to be installed into the main project.
I have a composer.json for each of the sub projects and where a sub project depends on another sub project I include it.
Because my project is getting bigger, whilst developing each of these smaller sub projects I'm finding that composer takes a copy of the dependencies, so each sub project now contains all of the other sub projects.
Not only am I getting sick of typing sub project, I'm sure there is a better way?
So what I'd like (this might not be what I should be doing) is a way to have each of these sub projects version controlled by git and able to find the other sub projects without having composer create a massive amount of duplication and as a bonus not having to composer update each time I make a change in one of the sub projects. Id like a seperate git repo for each sub project. I also don't want to alter my code to include local directories to autoload the classes, Im trying hard to keep composer managing all this.
You could argue that if anyone was actually developing a sub project they would in fact get the main project and update the sub project git repos inside that main project, then push those changes to the master branch for that sub project once they were done.
Have I just answered my own question?
One caveat to this is what if I don't want to give access to the main project to a developer because we have someone who will test the sub projects inside the main project?
How could I achieve this?