---
name: "Dist::Zilla::Plugin::MetaProvides::Package"
section: "3pm"
platform: "linux"
package: "libdist-zilla-plugin-metaprovides-package-perl"
version: "2.004003-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Dist::Zilla::Plugin::MetaProvides::Package"
---

# Dist::Zilla::Plugin::MetaProvides::Package(3pm)

Extract namespaces/version from traditional packages for provides

## NAME

Dist::Zilla::Plugin::MetaProvides::Package - Extract namespaces/version from traditional packages for provides

## VERSION

version 2.004003

## SYNOPSIS

In your `"dist.ini"`:

```
    [MetaProvides::Package]
    ; This is the (optional) default: This forces any package versions
    ; added in the "provides" metadata to use the 'version'
    ; specified by dzil.
    ;
    ; Set it to 0 to force packages own versions to be respected. ( You probably don't want this )
    inherit_version = 1
    ; This is also the (optional) default: This forces any package without
    ; a version declaration to use the 'version' specified by default.
    ;
    ; Set it to 0 to allow packages to have no versions
    inherit_missing = 1
    ; This is the (optional) default: This being true discovers any [MetaNoIndex]
    ; plugins to also further exclude packages from the provides map.
    ;
    ; Set it to 0 if for some weird reason you don't want this.
    meta_noindex    = 1
    ; This is the (optional) default: Packages named _Foo::Bar or Foo::_Bar are not indexed.
    ; Set this to 1 to enable indexing of similarly named packages.
    include_underscores = 0
```

## DESCRIPTION

This is a `"Dist::Zilla"` Plugin that populates the `"provides"` property of `"META.json"` and `"META.yml"` by absorbing it from your shipped modules, in a manner similar to how `"PAUSE"` itself does it.

This allows you to easily create an authoritative index of what module provides what version in advance of `"PAUSE"` indexing it, which `"PAUSE"` in turn will take verbatim.

## CONSUMED ROLES

### Dist::Zilla::Role::MetaProvider::Provider

## ROLE SATISFYING METHODS

### "provides"

A conformant function to the Dist::Zilla::Role::MetaProvider::Provider Role.

*signature: $plugin-\>****provides()***

*returns: Array of Dist::Zilla::MetaProvides::ProvideRecord*

## ATTRIBUTES

### "include\_underscores"

This attribute controls automatic skipping of packages.

By default, `"MetaProvides::Package"` skips packages matching the following regular expression:

```
  qr/(\A|::)_/
```

Setting this attribute to a `"true"` value will avoid skipping these packages.

This feature was added in `"2.004001-TRIAL"`

### "finder"

This attribute, if specified will

- •

  Override the `"FileFinder"` used to find files containing packages

- •

  Inhibit autovivification of the `".pm"` file finder

This parameter may be specified multiple times to aggregate a list of finders

## OPTIONS INHERITED FROM Dist::Zilla::Role::MetaProvider::Provider

### "inherit\_version"

How do you want existing versions ( Versions hard-coded into files before running this plug-in )to be processed?

- •

  DEFAULT: inherit\_version = 1

  Ignore anything you find in a file, and just probe `"DZIL->version()"` for a value. This is a sane default and most will want this.

- •

  inherit\_version = 0

  Use this option if you actually want to use hard-coded values in your files and use the versions parsed out of them.

### "inherit\_missing"

In the event you are using the aforementioned `""inherit_version" = 0"`, this determines how to behave when encountering a module with no version defined.

- •

  DEFAULT: inherit\_missing = 1

  When a module has no version, probe `"DZIL->version()"` for an answer. This is what you want if you want to have some files with fixed versions, and others to just automatically be maintained by Dist::Zilla.

- •

  inherit\_missing = 0

  When a module has no version, emit a versionless record in the final metadata.

### "meta\_noindex"

This is a utility for people who are also using `"MetaNoIndex"`, so that its settings can be used to eliminate items from the 'provides' list.

- •

  meta\_noindex = 0

  With this set, any `"MetaNoIndex"` plugins are ignored.

- •

  DEFAULT: meta\_noindex = 1

  When a module meets the criteria provided to `"MetaNoIndex"`, eliminate it from the metadata shipped to Dist::Zilla.

## SEE ALSO

- •

  Dist::Zilla::Plugin::MetaProvides

## AUTHOR

Kent Fredric \<kentnl@cpan.org\>

## COPYRIGHT AND LICENSE

This software is copyright (c) 2017 by Kent Fredric \<kentfredric@gmail.com\>.

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