Dist::Zilla::App::Command::regenerate - Write content into your source tree from your release staging


version 0.001002


  # Have approprite dist.ini
  dzil regenerate  # Source tree updated!


Dist::Zilla::App::Command::regenerate provides a regenerate command to Dist::Zilla that allows some simple tooling to update your source tree when you choose to.

This works by producing a new synthetic target like the release target, which happens after the build stage, but does not produce a release.

In conjunction with appropriate plugins performing -Regenerator, This means that:

  • You won't be frustrated with dzil build constantly tweaking your source tree

  • You won't be forced to ship a release just to update the state of some files that are generated by plugins

  • You won't even have to update your source tree ever if you don't want to.

When calling dzil regenerate, a full copy of the distribution is built in a temporary directory like it does when you call dzil test.

Then after dzil regenerate has written your built distribution out to the temporary directory, any plugin's that perform the -Regenerator role are called and told where your source tree is, and where the build tree is, and they are expected to do the required work.

In effect, dzil regenerate is a lot like:

  dzil build --not && \
    DO_STUFF_WITH .build/latest/  && \
    MAYBECOPY .build/latest/stuff ./stuff

Where those last 2 lines are done with plugins.


  • dzil update

    This command invokes only the dzil build parts of the equation and rely dzil build itself doing your source tree modification.

    A goal of dzil regenerate is to avoid dzil build doing source tree modification.


Kent Fredric <>


This software is copyright (c) 2016-2017 by Kent Fredric <>.

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