++ed by:

2 PAUSE users
1 non-PAUSE user.

Carnë Draug
and 1 contributors


Dist::Zilla::PluginBundle::BioPerl - Build your distributions like Bioperl does


version 0.27


  # dist.ini
  name = Dist-Zilla-Plugin-BioPerl



This is the Dist::Zilla configuration for the BioPerl project. It is roughly equivalent to:

  -bundle = @Basic      ; the basic to maintain and release CPAN distros
  -remove = Readme      ; avoid conflict since we already have a README file

  [MetaConfig]          ; summarize Dist::Zilla configuration on distribution
  [MetaJSON]            ; produce a META.json
  [PkgVersion]          ; add a $version to the modules
  [PodSyntaxTests]      ; create a release test for Pod syntax
  [Test::NoTabs]        ; create a release tests making sure hard tabs aren't used
  [Test::Compile]       ; test syntax of all modules
  [PodCoverageTests]    ; create release test for Pod coverage
  [MojibakeTests]       ; create release test for correct encoding
  [AutoPrereqs]         ; automatically find the dependencies

  [AutoMetaResources]   ; automatically fill resources fields on metadata
  repository.github     = user:bioperl
  bugtracker.github     = user:bioperl
  homepage              = https://metacpan.org/release/${dist}

  [MetaResources]       ; fill resources fields on metadata
  bugtracker.mailto     = bioperl-l@bioperl.org

  [Test::EOL]           ; create release tests for correct line endings
  trailing_whitespace = 1

  ;; While data files for the test units are often text files, they
  ;; need to be treated as bytes.  This has the side effect of having
  ;; them ignored by [Test::NoTabs] and [Test::EOL]
  encoding = bytes
  match = ^t/data/

  config_plugin = @BioPerl

  [NextRelease]         ; update release number on Changes file
  [Git::Check]          ; check working path for any uncommitted stuff
  allow_dirty = Changes
  allow_dirty = dist.ini
  [Git::Commit]         ; commit the dzil-generated stuff
  allow_dirty = Changes
  allow_dirty = dist.ini
  [Git::Tag]            ; tag our new release
  tag_format  = %N-v%v
  tag_message = %N-v%v

In addition, this also has two roles, Dist::Zilla::PluginBundle::PluginRemover and Dist::Zilla::PluginBundle::Config::Slice, so one could do something like this for problematic distributions:

  -remove = MojibakeTests
  -remove = PodSyntaxTests

Pushing releases

With this PluginBundle, there's a lot of things happening automatically. It might not be clear what actually needs to be done and what will be done automatically unless you are already familiar with all the plugins being used. Assuming that Changes is up to date (you should be updating Changes as the changes are made and not when preparing a release. If you need to add notes to that file, then do it do it at the same time you bump the version number in dist.ini), the following steps will make a release:

  1. Make sure the working directory is clean with `git status'.

  2. Run `dzil test --all'

  3. Edit dist.ini to bump the version number only.

  4. Run `dzil release'

  5. Run `git push --follow-tags'

These steps will automatically do the following:

  • Modify Changes with the version number and time of release.

  • Make a git commit with the changes to Changes and dist.ini using a standard commit message.

  • Add a lightweight git tag for the release.

  • Run the tests (including a series of new tests for maintainers only) and push release to CPAN.


Use the Dist::Zilla::PluginBundle::Filter to filter any undesired plugin that is part of the default set. This also allows to change those plugins default values. However, the BioPerl bundle already recognizes some of the plugins options and will pass it to the corresponding plugin. If any is missing, please consider patching this bundle.

In some cases, this bundle will also perform some sanity checks before passing the value to the original plugin.


Mailing lists

User feedback is an integral part of the evolution of this and other Bioperl modules. Send your comments and suggestions preferably to the Bioperl mailing list. Your participation is much appreciated.

  bioperl-l@bioperl.org               - General discussion
  https://bioperl.org/Support.html    - About the mailing lists


Please direct usage questions or support issues to the mailing list: bioperl-l@bioperl.org rather than to the module maintainer directly. Many experienced and reponsive experts will be able look at the problem and quickly address it. Please include a thorough description of the problem with code and data examples if at all possible.

Reporting bugs

Report bugs to the Bioperl bug tracking system to help us keep track of the bugs and their resolution. Bug reports can be submitted via the web:



Florian Ragwitz <rafl@debian.org>

Sheena Scroggins

Carnë Draug <carandraug+dev@gmail.com>

Chris Fields <cjfields1@gmail.com>


This software is copyright (c) 2010 by Florian Ragwitz, 2011 by Sheena Scroggins, and 2013-2017 by Carnë Draug.

This software is available under the same terms as the perl 5 programming language system itself.