Convenience Authoring vs Using Packages
When I author a simple package with only a little bit of functionality, I really like the convenience of creating a single package and putting everything inside it.
When I want to use a simple package I prefer if it is split up into (-lib -doc -test) because that allows me to depend only on the -lib part of the package and thus avoid slow installation because for example the docs are unnecessarily built for that dependency.
These opposing "forces of convenience" irk me about the package system.
It seems silly to have 3+ packages for (-lib -doc -test etc.) +1 that combines those into the suffix-less version.
If I put on my devils advocate hat I would say:
Looking at the package site and package system there is a missing concept, instead of having one standardized way to define and split up packages into nicely usable "chunks", there are different user dependent adhoc ways to work-around that missing piece.
I am aware that it is possible to put those packages in one git repository but it still seems like a lot of work to create and register 4 packages, when you would expect to create 1 package.
Maybe this missing concept is having package variants?
Suppose a package could have N
variants.
If you don't specify variants you want to use with a dependency then all are used.
If you specify them only the specified ones are used.
Maybe there could even be a syntax to say use all except those 2.
When you register a package in "variant-format", the old style multiple packages are implicitly created, for all the variants.
Brainstorming
All of this isn't very thought through my aim is to get the conversation about this going.
I am unsure about what is really needed to improve the situation, maybe the package system can mostly stay like it is and we need a newer package site?
For example if the site allowed to have all the "variants" defined implicitly.
I also would prefer if all those -lib -doc -test etc. would be grouped together.
Another thing is that the package website doesn't understand that -lib or -test aren't supposed to have documentation and displays "This package needs documentation" for those.
Overall I would like to have a discussion about things that could be improved and also concrete ideas how we could go about implementing something. I also propose (And if this is wrong I ask anyone to point it out) that it would probably be welcomed if we were to create some new system or package website that can do something about these things.
I think at first we should have some general discussion to have some common ground about what the problems and possible solutions are (also to allow people to point out previous related discussions). Then we could try to come up with possible prototypes/experiments.