pplu / aws-sdk-perl

A community AWS SDK for Perl Programmers
Other
171 stars 94 forks source link

Split the SDK into N different CPAN packages #48

Open pplu opened 9 years ago

pplu commented 9 years ago

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

pplu commented 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

timbunce commented 9 years ago

:+1:

pplu commented 7 years ago

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)

pplu commented 2 years ago

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.

oalders commented 2 years ago

@pplu if you'd like some help doing this, I can help to get the word out.