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.
  • I can't swear it handles dependencies the way you want, but have you tried the CPAN.pm "autobundle" command?

    $ oldperl -MCPAN -e shell

    cpan> autobundle
    ...
    Wrote bundle file
        /home/david/.cpan/Bundle/Snapshot_2009_08_03_00.pm

    cpan> quit

    $ newperl -MCPAN -e shell

    cpan> install Bundle::Snapshot_2009_03_03_00

    ... wait a long time ...

    -- dagolden [dagolden.com]

    • Autobundle is inadequate for this. It installs the latest version of a distro, not the one you have installed.

      • Actually, I don't have that concern - I want the latest working version. When I upgrade, I bite the bullet and upgrade.

        Of course, CPAN.pm won't give me that; it'll give me the latest version, worky or not. But that's an issue with CPAN.pm, not autobundle.

        autobundle will also install everything that was installed before, even if some of them were installed only because they were dependencies of one of the modules specifically requested before, even though that module no longer depends upon them. I don't t

  • autobundle should be the way to go. Dependencies are resolved in
    two ways: because the old installation already had the
    dependencies resolved, so you have all required modules also in
    the new installation, and because CPAN.pm anyway makes sure that
    dependencies are always resolved.

    But there's one gotcha: it can happen that left-over modules from
    older versions of large distribution may cause the old
    distribution to be installed again. Usually one protects himself
    by using UNINST=1 while installing distributions, b

    • Thank you all who answered. Yes, autobundle is an answer to the basic feature request.

      For my production stuff, installing extra crap is undesired. But that's not what I'm talking about here.

      I'm more focused on my development stuff. Here, I not only want hard dependencies, like CPAN handles, but also soft dependencies.

      For example, Test::Critic, as I mentioned, installs just fine without Test::Deep. So, as I understand autobundle's workings (now that I'm looking at it), it will always install Test::Critic

      • So if I understand you correctly, then you want support for the "recommends" field in META.yml? As far as I know CPAN.pm cannot handle "recommends" (yet). But it shouldn't be to hard to implement it.

        • That is probably accurate, as far as it goes.  :)

          That having been said, I don't see the recommends as 100% synonymous with the concept.  Module A can recommend module B because it is complementary to module A, even though there's no code interactions, and no tests which one can do for the other.  I'm not interested in that kind of a relationship, as far as this rebuilding goes.

          Specifically, what I'm looking for, for a test-happy build, is the ability to install all test dependencies - both ha