Thu Sep 03 03:43:05 2009: Request 49387 was acted upon.
Transaction: Correspondence added by SMUELLER
       Queue: File-ShareDir-PAR
     Subject: Should File::ShareDir::PAR build-require PAR?
   Broken in: 0.05
    Severity: (no value)
       Owner: Nobody
  Requestors: alex.pet...@strategicdata.com.au
      Status: new
 Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=49387 >


Hi Alex,

I'll include a full copy of your bug report here since I only just added
the PAR mailing list as CC.

On Wed Sep 02 22:50:23 2009, http://alexpeters.net/ wrote:
> Hello Steffen,
> 
> I am working on code that we intend to deploy in two styles:
> 
> 1.  as a standard installation (/usr/share/perl5, etc.)
> 2.  as a stand-alone PAR
> 
> Since this code uses shared files, File::ShareDir::PAR seems to be a
> perfect tool to accommodate for both cases.
> 
> My understanding is that File::ShareDir::PAR intends to be a drop-in
> replacement for File::ShareDir--that is, if one is not operating under
> PAR, File::ShareDir::PAR delegates to File::ShareDir.
> 
> To me, this suggests that File::ShareDir::PAR should be able to operate
> independently of PAR.  However, File::ShareDir::PAR lists PAR as a build
> dependency.
> 
> I understand that when File::ShareDir::PAR actually needs to call PAR,
> it requires a minimum PAR version.  Therefore, I think I understand why
> PAR is listed as a build dependency: you want to ensure that
> File::ShareDir::PAR does not attempt to operate with an outdated version
> of PAR.
> 
> However, since my code uses File::ShareDir::PAR even when PAR is not in
> use, PAR becomes a dependency for installations where it will never be
> required.
> 
> To work around this, I am continuing to use File::ShareDir and
> dynamically requiring File::ShareDir::PAR when I detect that PAR is in
> use.  Consequently, I am also doing the PAR version checking myself.
> 
> In order to Debian-package File::ShareDir::PAR for internal deployment,
> I am also manually removing the PAR dependency.  This feels like an
> incorrect way to solve the problem, but it is necessary for me to ensure
> that a Debian-packaged standard installation of my code does not depend
> on libpar-perl.
> 
> To cut to the chase: given my use case, do you feel that it could be
> appropriate to change PAR from a required build dependency to a
> conditional dynamic runtime dependency?  This would make
> File::ShareDir::PAR a true drop-in replacement for File::ShareDir, since
> it would work as expected without a PAR installation.
> 
> I don't know whether the attached modification of _par_in_use would be
> sufficient, but your consideration and feedback would be much
> appreciated. :)
> 
> Best wishes from Melbourne, Australia.
> 
> --Alex Peters

I can see where you're coming from and I'd be willing to apply the
patch, but it'll take at least a modification of the test suite to skip
the PAR-related tests if PAR couldn't be loaded. If you could also
provide that, I'll apply both patches and cut a release.

Thanks for feeding your improvements back upstream!

Best regards,
Steffen

Reply via email to