Dist::Zilla::App::Command::self - Build a distribution with a bootstrapped version of itself.


version 0.001003


This is a different approach to using [Bootstrap::lib] that absolves a distribution from needing to forcibly embed bootstrapping logic in dist.ini

  dzil self build

This is largely similar to using

  try_built = 1

and doing

  dzil build && dzil build

And similar again to:

  dzil run bash -c "cd ../; dzil -I$BUILDDIR/lib dzil build"

Or whatever the magic is that @ETHER uses.

This also means that:

  dzil self release

Is something you can do.


The nature of this implies that your distribution will probably need an older generation of itself for the initial bootstrap.

That is to say:

  dzil build

Must work, and use Generation.Previous to build Generation.Build

  dzil self foo

Will call dzil build for you, to build Generation.Build, and then invoke

  dzil foo

To use Generation.Build to build Generation.Next

1. Generation.Previous

A previously installed incarnation of your dist.

2. Generation.Build

The iteration of building the distribution itself from source using Generation.Previous

3. Generation.Next

The iteration of building the distribution itself from source using Generation.Build


Kent Fredric <>


This software is copyright (c) 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.