Stories
Slash Boxes
Comments
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More | Login | Reply
Loading... please wait.
  • ... Module::Build doesn't have a method for ensuring users upgrade.
    use Module::Build '0.xx';

    Alternately, stick the dependency in build_requires.

    • use Module::Build '0.xx';

      As far as I'm aware, that doesn't ensure that Module::Build is upgraded, it just crashes the installer with an obscure error message that will be buried somewhere in the middle of 3000 lines of CPAN.pm output.

      If you are doing a one-off install and running Build.PL directly, and you understand error messages, then maybe in that small case it's good enough. but of course almost nobody does that.

      As for the build_requires dependency, the Build.PL needs to be run in order to confirm that

      • I don't have a distribution with a custom Module::Build subclass where the build_requires trick won't work, but if the use line doesn't, how about printing the same error message? M::B and CPAN.pm communicate somehow, so I see no reason why following that protocol won't make this scheme work.

        • The continuing problem is that error messages are of no real use.

          There's a fairly good chance that the user will never see it, being buried deep in a larger installation.

          Any solution which involves wetware (the user having to think) is no solution at all.

          "M::B and CPAN.pm communicate somehow, so I see no reason why following that protocol won't make this scheme work."

          As I said, Module::Build hasn't solved this problem yet.

          The solution, as I've mentioned before, requires CPAN clients to have the capability t
          • You are not paying attention. Let me explain very slowly.

            CPAN.pm and CPANPLUS both somehow detect when a distribution has unfulfilled dependencies. Both offer to install those dependencies.

            Both MakeMaker and Module::Build somehow indicate unfulfilled dependencies to the installer. I don't know if it's screenscraping or an API or whatever. I skimmed CPAN.pm this morning, but couldn't find it in two minutes.

            Now if there's an API or if there's a particular error message being scraped and detected and

            • You are not paying attention. Let me explain very slowly.

              There are three different conceptual code elements involved in a distribution.

              The Installer.

              The Build Process.

              The Installed Module.

              CPAN.pm detects the Installed Module has unfulfilled dependencies, and is informed of them by executing the installer.

              This can theoretically be shortcut for static dependencies in a setset of cases, but in practice nobody ever sets that flag and so the installer MUST be run.

              CPAN.pm detects the Build Process has unfulfilled