The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Dist::Zilla::Plugin::MetaData::BuiltWith - Report what versions of things your distribution was built against

VERSION

version 1.004005

SYNOPSIS

  [MetaData::BuiltWith]
  include = Some::Module::Thats::Not::In::Preq
  exclude = Some::Module::Youre::Ashamed::Of
  show_uname = 1             ; default is 0
  show_config = 1            ; default is 0
  uname_call = uname         ; the default
  uname_args = -s -r -m -p   ; the default is -a
  use_external_file = only   ; the default is undef

DESCRIPTION

This module provides extra metadata in your distribution, automatically documenting what versions of dependencies the author was using at the time of release.

This allows consumers of said distributions to be able to see a range of versions that are "known good" should they experience problems.

OPTIONS

exclude

Specify modules to exclude from version reporting

    exclude = Foo
    exclude = Bar

include

Specify additional modules to include the version of

    include = Foo
    include = Bar

show_config

Report "interesting" values from %Config::Config

    show_config = 1 ; Boolean

show_uname

Report the output from uname

    show_uname = 1 ; Boolean

uname_call

Specify what the system uname function is called

    uname_call = uname ; String

uname_args

Specify arguments passed to the uname call.

    uname_args = -a ; String

use_external_file

This option regulates the optional output to an isolated file.

An external file will be created as long as this value is a true value.

  use_external_file = 1

If this true value is the string only, then it won't also be exported to META.yml/META.json

  use_external_file = only

NOTE:

This will still leave an x_BuiltWith section in your META.*, however, its much less fragile and will simply be:

   x_BuiltWith: {
      external_file: "your/path/here"
   }

This is mostly a compatibility pointer so any tools traversing a distributions history will know where and when to change behavior.

external_file_name

This option controls what the external file will be called in conjunction with use_external_file

Default value is:

  misc/built_with.json

Extensions:

  .json => JSON is used.
  .yml  => YAML is used (untested)
  .yaml => YAML is used (untested)

METHODS

mvp_multivalue_args

This module can take, as parameters, any volume of 'exclude' or 'include' arguments.

munge_files

This module scrapes together the name of all modules that exist in the "Prereqs" section that Dist::Zilla collects, and then works out what version of things you have, applies the various include/exclude rules, and ships that data back to Dist::Zilla via this method. See Dist::Zilla's MetaProvider role for more details.

EXAMPLE OUTPUT ( META.json )

    "x_BuiltWith" : {
       "modules" : {
          "Dist::Zilla::Role::MetaProvider" : "4.101612",
          "File::Find" : "1.15",
          "File::Temp" : "0.22",
          "Module::Build" : "0.3607",
          "Moose" : "1.07",
          "Test::More" : "0.94"
       },
       "perl" : "5.012000",
       "platform" : "MSWin32"
    },

AUTHOR

Kent Fredric <kentnl@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2017 by Kent Fredric <kentnl@cpan.org>.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.