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.
  • These failures are legitimate failures, and should remain.

    When you choose your build system, as when you choose ANY dependency, you get its errors and baggage along with its good points.

    Module::Build has an unresolved circular dependency on itself.

    Unlike EVERY other module on CPAN, it says that the rules do not apply to it and that instead of working within the rules, EVERY end user should magically (via the "universal education" clause) know to install it BEFORE they start installing anything else.

    This means that Module::Build doesn't auto-install, and Module::Build doesn't auto-upgrade.

    So in the general case, EVERY user needs to EXPLICITLY make sure they have upgraded Module::Build before EVERY attempt to install a module.

    If Module::Build adds File::ShareDir support, it simply won't work for most people and will break, because that feature only exists in the newest version.

    For some reason I need to keep explaining this to people, over and over again, because they seem to keep forgetting.

    Of all the people that know this problem exists, you should know it better than most.

    In CPAN terms, you may not be responsible for creating the fault in Module::Build, but you ARE responsible for making the choice to start using and continuing to use a package build system in which this fault it known to occur.

    The errors you are seeing are entirely legitimate because they represent the real world situation of what happens when someone tries to install one of your modules.

    The entire reason the configure_requires: features is being added is that the problem is now unrepairable and we need to take more drastic action in order to try and at least mitigate the damage.

    If you want to stop receiving errors caused by your build system being incompatible with the way CPAN works, I suggest switching to a build system that IS compatible with the way CPAN works.

    I hear ExtUtils::MakeMaker works quite nicely.
    • "Module::Build has an unresolved circular dependency on itself." isn't quite correct. Distributions that require Module::Build need Module::Build, but Module::Build will build just fine without anything but it's own tree.

      Yes, that is a problem if the CPAN(PLUS) client can't know that it is fatally out-of-date. Everything is a problem if we have to expect an old tool (which could be easily updated) to do the right thing.

      Requiring a particular *version* of M::B does need configure_requires. But the co

      • Still, I await the day when we apply the final fix.

        There is another alternative to the problem/solution you suggest in that post. For every existing module pointed-to by those indices, set the URL (and checksums) of the distribution release to the location of a distribution release that upgrades the toolchain. Yes, there would be an uproar if preparations were not made by user education via public announcements and a months-ish waiting period, but it would achieve the desired effect. Mandatory upgrade ("if you're using old versions of our tools, so sorr

    • The entire reason the configure_requires: features is being added is that the problem is now unrepairable

      “Now unrepairable”?! Yeah right! It was never a problem before, which is why CPAN::MakeMaker was never invented. Pffft.

      The CPAN toolchain has always had this problem. Module::Build just put the tweezers on tight enough to force a fix.

      Go on, shoot the messenger as much as you want. Won’t change anything about the reality of his message, but hey…

      and we need to take more dr

    • I hear ExtUtils::MakeMaker works quite nicely.

      ... provided that, and I paraphrase your message elsewhere, "EVERY end user should magically (via the "universal education" clause) know to install [a working make utility] BEFORE they start installing anything else."