Open pplu opened 9 years ago
Another thing to split could be callers. We have the default caller, that uses HTTP::Tiny. LWPCaller (which depends on LWP) and MojoAsyncCaller (which depends on Mojo) don't pull in their dependencies. It'd be nice to have separate packages for each caller, so their dependencies can be pulled in upon installation
:+1:
A layout for the splitting could be something like
Paws: almost everything in lib/Paws
Paws::XML: The callers and response handlers for RestXML and Query services. Will pull in deps on XML parser
Paws::JSON: The callers and response handlers for RestJSON and JSON services.
Then service dists
Paws::EC2: depends on Paws::XML
Paws::SQS: depends on Paws::XML
Paws::DynamoDB: depends on Paws::JSON
...
Some doubts that come across with that layout: If you install Paws, it will not install other services (as happens now. That can be considered breakage, although that can be solved with:
Paws::Core: contains almost everything in lib/Paws
Paws: Just a placeholder package with deps on all service modules
Another doubt: Tests are counting on having some services installed. One idea would be that Paws had a test dependency on those services (Paws::EC2, for example), but I don't know if that will cause problems (I want to install Paws::EC2 that needs Paws::Core that needs Paws::EC2 to test itself)
PAUSE seems to be getting stuck on indexing the lastest release. Past releases got indexed although they could take a long time to get the confirmation email from PAUSE.
The 0.45 release has not been indexed (https://github.com/pplu/aws-sdk-perl/pull/420#issuecomment-1147334175). I've requested modules@perl.org for help (as has been kindly indicated to me).
@karenetheridge @oalders. Splitting the distribution has been on my mind for some time, as you see per the dates of this issue, but never seemed to come through. Unfortunately my dedication to Paws has been going down, since I don't actively use it for $work anymore, so community PRs / basic maintenance has been the focus for the time being (keeping it running).
Now that there is an impending force, I'll see if I can come up with a strategy for splitting that is a bit less involved.
@pplu if you'd like some help doing this, I can help to get the word out.
It would be nice to generate one CPAN dist for every Paws Service. All services could depend on Paws, and a package for JSON services/XML services that pulls in the specific deps (XML::Simple, JSON).
That way tge SDK would be lighter to install