DEV Community

Dan Book
Dan Book

Posted on • Originally published at

Dist::Zilla - Why you should use @Starter instead of @Basic

I posted previously about a new "starter" bundle for Dist::Zilla, the CPAN author's automation tool. I'd like to briefly try to answer the question: "Why should I care?"

If you're already happily using Dist::Zilla with an extensive configuration or plugin bundle of your own, this bundle isn't for you. But maybe you can get some ideas from the included plugins, I added a few to my author bundle!

If you're looking to get started in Dist::Zilla, the @Starter bundle makes a great starting point. Usage is similar to @Basic and all of the same information in the tutorial applies.

If you're currently using @Basic, there are a few reasons you should consider switching over. @Basic has become somewhat outdated as it needs to maintain compatibility with existing configs; @Starter modernizes the base plugin set. For example, it includes the important [MetaJSON] plugin for generating modern CPAN metadata, and it uses [RunExtraTests] to run xt/ (extra) tests directly, which is now generally preferred over rewriting them into the t/ directory with the [ExtraTests] plugin. It also adds a few popular plugins, such as [Test::ReportPrereqs], which generates a test that lists all distribution prereqs and the currently installed versions, very helpful for debugging test failures.

Even if you're already including all of these improvements yourself on top of @Basic, using @Starter can cut down on the boilerplate in your dist.ini, and you can simply remove any plugins you want to leave out, or configure included plugins directly via config slicing. Plus, it can help incorporate new practices and features; @Starter will include future updates as new revisions, which you can review and switch to by setting the revision number in your dist.ini. This allows it to stay modern without breaking existing configs.

Switching from @Basic to @Starter is generally straightforward. Most minimal configurations can be directly switched over, removing any manually-included plugins that @Starter adds itself. If you are using @Filter, you can instead apply the -remove option directly to @Starter. The "CONFIGURING" section of the documentation goes over the most common ways to configure the bundle.

Feel free to stop by #distzilla on or send me an email (address listed in module documentation) if you have any questions about the bundle, configuration, or Dist::Zilla in general. Happy releasing!

Since the original publication of this post, @Starter has reached revision 5 and the @Starter::Git variant bundle has been added for additional convenience. I will be republishing my other posts on @Starter in the coming week.

Top comments (0)