On 1/23/20 3:18 PM, Dan Book wrote:
On Thu, Jan 23, 2020 at 3:04 PM James E Keenan <jkee...@pobox.com <mailto:jkee...@pobox.com>> wrote:

    I have been granted COMAINT status by Paul Fenwick on CPAN distribution
    IPC-System-Simple.  This distribution is built and maintained using
    Dist::Zilla and quite a few Dist::Zilla plugins.  I do not, in general,
    use Dist::Zilla in any of my own CPAN distributions.  It's much too
    "auto-magicky" for my needs and taste, so I only use it when, say, I
    have to diagnose a test failure in a "CPAN-River-3000" module.

    But in this case I have to use dzil, so I'd like to get some answers to
    specific questions en route to formulating what (for me, at least) will
    be best practices for maintaining this distribution going forward.

    1.  How do I add a Travis-CI configuration to a distribution maintained
    with Dist::Zilla?

    The IPC-System-Simple repository did not have a .travis.yml
    configuration file when I cloned the repo, so I added one (attached)
    copied from one of my other CPAN distros where it DWIMs.  I made no
    changes in dist.ini.  The only other change I made was to modify a test
    to deal with the github issue that led me to request comaintenance on
    this distro in the first place.  I activated the configuration under my
    Travis account and pushed to github.  However, the Travis build failed,
    here:

    #####
    https://travis-ci.org/jkeenan/ipc-system-simple/jobs/641031415
    #####

    This build failed with this log output:

    #####
    [DZ] attempt to add META.json multiple times; added by: text from
    coderef added by MetaJSON (Dist::Zilla::Plugin::MetaJSON line 91);
    filename set by GatherDir (Dist::Zilla::Plugin::GatherDir line 225);
    encoded_content added by @Basic/GatherDir
    (Dist::Zilla::Plugin::GatherDir line 226)

    [DZ] attempt to add t/author-pod-coverage.t multiple times; added by:
    content added by PodCoverageTests (Dist::Zilla::Plugin::InlineFiles
    line
    33); filename set by ExtraTests (Dist::Zilla::Plugin::ExtraTests line
    54); content set by ExtraTests (Dist::Zilla::Plugin::ExtraTests line
    67); filename set by GatherDir (Dist::Zilla::Plugin::GatherDir line
    225); encoded_content added by @Basic/GatherDir
    (Dist::Zilla::Plugin::GatherDir line 226)

    [DZ] attempt to add t/author-pod-syntax.t multiple times; added by:
    content added by PodSyntaxTests (Dist::Zilla::Plugin::InlineFiles line
    33); filename set by ExtraTests (Dist::Zilla::Plugin::ExtraTests line
    54); content set by ExtraTests (Dist::Zilla::Plugin::ExtraTests line
    67); filename set by GatherDir (Dist::Zilla::Plugin::GatherDir line
    225); encoded_content added by @Basic/GatherDir
    (Dist::Zilla::Plugin::GatherDir line 226)

    [DZ] attempt to add t/author-critic.t multiple times; added by: content
    added by Test::Perl::Critic (Dist::Zilla::Plugin::Test::Perl::Critic
    line 42); filename set by ExtraTests (Dist::Zilla::Plugin::ExtraTests
    line 54); content set by ExtraTests (Dist::Zilla::Plugin::ExtraTests
    line 67); filename set by GatherDir (Dist::Zilla::Plugin::GatherDir
    line
    225); encoded_content added by @Basic/GatherDir
    (Dist::Zilla::Plugin::GatherDir line 226)

    [DZ] attempt to add META.yml multiple times; added by: filename set by
    GatherDir (Dist::Zilla::Plugin::GatherDir line 225); encoded_content
    added by @Basic/GatherDir (Dist::Zilla::Plugin::GatherDir line 226);
    text from coderef added by @Basic/MetaYAML
    (Dist::Zilla::Plugin::MetaYAML line 70)

    [DZ] attempt to add LICENSE multiple times; added by: filename set by
    GatherDir (Dist::Zilla::Plugin::GatherDir line 225); encoded_content
    added by @Basic/GatherDir (Dist::Zilla::Plugin::GatherDir line 226);
    content added by @Basic/License (Dist::Zilla::Plugin::License line 37)

    [DZ] attempt to add README multiple times; added by: filename set by
    GatherDir (Dist::Zilla::Plugin::GatherDir line 225); encoded_content
    added by @Basic/GatherDir (Dist::Zilla::Plugin::GatherDir line 226);
    content added by @Basic/Readme (Dist::Zilla::Plugin::Readme line 44);
    content set by Readme (Dist::Zilla::Plugin::Readme line 61)

    [DZ] attempt to add Makefile.PL multiple times; added by: filename set
    by GatherDir (Dist::Zilla::Plugin::GatherDir line 225); encoded_content
    added by @Basic/GatherDir (Dist::Zilla::Plugin::GatherDir line 226);
    content set by MakeMaker (Dist::Zilla::Plugin::MakeMaker line 329);
    content added by @Basic/MakeMaker (Dist::Zilla::Plugin::MakeMaker
    line 144)

    [DZ] attempt to add MANIFEST multiple times; added by: filename set by
    GatherDir (Dist::Zilla::Plugin::GatherDir line 225); encoded_content
    added by @Basic/GatherDir (Dist::Zilla::Plugin::GatherDir line 226);
    bytes from coderef added by @Basic/Manifest
    (Dist::Zilla::Plugin::Manifest line 55)

    aborting; duplicate files would be produced at
    
/home/travis/perl5/perlbrew/perls/5.30.0/lib/site_perl/5.30.0/Dist/Zilla/App/Command/build.pm
    <http://build.pm>
    line 97.

    The command "build-dist" failed and exited with 255 during .
    #####

    So, what do I need to do to get Dist::Zilla and Travis to play nice
    with
    each other?  (Attached: the Travis config I wrote and the existing
    dist.ini file.)


It appears the dzil build is being run twice, because of the use of the --auto switch to travis-perl-helpers but also custom build commands. travis-perl-helpers gives two example configs, one using --auto and one using the more detailed commands as your config uses, the combination is causing a duplicate build.

https://github.com/travis-perl/helpers

-Dan

Removing '--auto' looks promising.  See:
https://travis-ci.org/jkeenan/ipc-system-simple

(Have to go AFK now; will check progress later.)

Thank you very much.
Jim Keenan

Reply via email to