Dist::Zilla::Plugin::CheckSelfDependency - Check if your distribution declares a dependency on itself


version 0.011


In your dist.ini:



This is a Dist::Zilla plugin that runs in the after build phase, which checks all of your module prerequisites (all phases, all types except develop) to confirm that none of them refer to modules that are provided by this distribution (that is, the metadata declares the module is indexable).

In addition, all modules in the distribution are checked against all module prerequisites (all phases, all types including develop). Thus, it is possible to ship a Dist::Zilla plugin and use (depend on) yourself, but errors such as declaring a dependency on inc::HelperPlugin are still caught.

While some prereq providers (e.g. [AutoPrereqs]) do not inject dependencies found internally, there are many plugins that generate code and also inject the prerequisites needed by that code, without regard to whether some of those modules might be provided by your dist. This problem is particularly acute when packaging low-level toolchain distributions.

If such modules are found, the build fails. To remedy the situation, remove the plugin that adds the prerequisite, or remove the prerequisite itself with [RemovePrereqs]. (Remember that plugin order is significant -- you need to remove the prereq after it has been added.)



This is the name of a FileFinder for finding modules to check. The default value is :InstallModules; this option can be used more than once.

Other predefined finders are listed in "default_finders" in Dist::Zilla::Role::FileFinderUser. You can define your own with the [FileFinder::ByName] and [FileFinder::Filter] plugins.


Bugs may be submitted through the RT bug tracker (or I am also usually active on irc, as 'ether' at


Karen Etheridge <>


This software is copyright (c) 2013 by Karen Etheridge.

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