SlideDeck.io – A repository of great HTML presentations
Dist::Zilla For Everyday Code
View Github Repository
Open presentation in a new window
thaljef
See all presentation from thaljef
Dist::Zilla For Everyday Code
0
0
Dzil-Deck
Slides for my Dist::Zilla presentation
On Github
thaljef / Dzil-Deck
Dist::Zilla For Everyday Code
Dist::Zilla Is...
A preprocessor
A workflow framework
Not a build system, per se
Why Use Dist::Zilla?
Reduce boilerplate
Automate dev processes
Enforce consistency
But Why Bother?
Development happens in stages
E.g. author, test, distribute, install, run, etc.
Organize and optimize code for each stage
Divide big things into smaller ones
Dependency management
Enable automation
Reducing Boilerplate
Inject $VERSION
Generate tests
Generate builders
Inject POD
Automate Dev Processes
Check in and tag code
Check that dependencies are indexed
Check that change log has (valid) content
Check that all tests pass
Send emails, update wiki, tweet, etc.
Ship code to CI, QA, or PROD
Enforce Consistency
Automate stuff we forget or dislike
Write once, regenerate everywhere
DEMO
Other Features
Bootstrapping (listdeps, authordeps)
Plugin bundles
Minting
Profiles
Drawbacks
Requires more tools
Is another layer of abstraction
Sometimes too opaque
Requires trust
Alternatives
Module::Starter
Dist::Milla
Minilla
Zilla::Dist
Architecture
Moose
Large collection of Roles
Divided into stages (BeforeBuild, AfterTest, etc.)
Sophisticated configuration language and engine
Excellent study in metaprogramming and extensibility
Additional Resources
http://dzil.org
#dzil on irc.perl.org
Dist::Zilla::PluginBundle::AUTHOR