I have a project. I'm going to use a basic web project as an example. This project is called Website. I could create one huge distribution called Website and put all my modules inside the lib/ directory such that I've got something like this:
Website/Changes Website/lib/ Website/lib/Website/ Website/lib/Website/Article.pm Website/lib/Website/Article/ Website/lib/Website/Article/... Website/lib/Website/Template.pm Website/lib/Website/Template/ Website/lib/Website/Template/... Website/lib/Website/User.pm Website/lib/Website/User/ Website/lib/Website/User/... Website/Makefile.PL Website/README
In this example I've made one distribution and put everything under it. I don't want to do that, though, because it requires that I build all the subcomponents when I might have only made a change to the Website::User code. What I want are sub-distributions. Is this reasonable?
I suspect it might look something like this.
Website/Changes Website/lib/ Website/lib/Website-Article/ Website/lib/Website-Article/lib/ Website/lib/Website-Article/lib/... Website/lib/Website-Article/Makefile.PL Website/lib/Website-Template/ Website/lib/Website-Template/lib/ Website/lib/Website-Template/lib/... Website/lib/Website-Template/Makefile.PL Website/lib/Website-User/ Website/lib/Website-User/lib/ Website/lib/Website-User/lib/... Website/lib/Website-User/Makefile.PL Website/Makefile.PL Website/README
With something like this, I could rebuild part of the project libraries, the Website-User code, for example. At the same time I could rebuild the whole project if I felt like it. What do you think?
Other options might be to go with a structure like what h2xs used to give you. Every module has a Makefile.PL. Is that too far in the other direction?
Opinions solicited, thanks!
Posted from caseywest.com, comment here.