[sf-perl] Tools and work flows for developing collections of distributions
dpchrist at holgerdanske.com
Sat Dec 8 10:11:52 PST 2018
> David Christensen <dpchrist at holgerdanske.com> wrote:
>> I use h2xs, ExtUtils::MakeMaker, and make(1) on Unix-like platforms
>> for developing Perl modules and collecting them together into
>> I now have several distributions and would like to develop and test
>> them together (preferably, without installation).
>> How do people on this list develop and test multiple dependent Perl
>> module distributions?
>> p.s. I have posted similar threads to the module-authors and makemaker
>> lists, but haven't found a satisfactory solution:
On 12/7/18 10:37 PM, Brad Lhotsky wrote:
> I've been using Dist::Zilla for my distributions and it makes things
> *so* much
> Here's David Golden's explanation why:
Thank you for replying. :-)
I evaluated Dist::Zilla several years ago. At the time, the complexity
didn't seem to be worth the effort. Perhaps, now it is.
> I still write out my dist.ini's, I should convert this workflow into a
> but I'm too lazy. Here's a sample:
> If you were to clone that, you could:
> $ cpanm Dist::Zilla
> $ dzil authordeps --missing |cpanm
> $ dzil listdeps --missing |cpanm
> Then you could develop, and then `dzil test` to run the test suite, `dzil
> xtest` would run the author tests.
> Dist::Zilla + Pod::Weaver and it's taking care of:
> * Pointing META resources at GitHub
> * Automatically compiling and inserting into POD the Contributors
> * Dependencies
> * Managing the release versioning via git tags so all I need to do to
> release is `dzil release`
> * Generating a Changelog from the repository history
> * Gives me shorthand for POD with things like =method / =attr and
> collects/formats the POD
> And in this instance, it's pulling some of my POD out and injecting it into
> the repository so people on GitHub can view some of the documentation:
> All of that Markdown comes from the POD in the distribution and is
> automatically updated anytime I build/install/release.
Is es-utils available on CPAN?
> If Dist::Zilla is "too big," you can check out
The POD states:
"Minilla has a bold assumption and convention like the followings..."
"Your module is maintained with Git and git ls-files matches with
what you will release"
I would prefer a workflow model whereby the version control system (VCS)
is orthogonal -- e.g. I can use any VCS, including several at the same time.
If the concept of a tool is VCS integration, I would prefer that the
tool do so through VCS plug-in's (and support CVS).
> That's distributions, but if you wanna a mock your own CPAN for your
> distributions, there's Pinto.
I've tried at least one local, private CPAN repository work-around. The
fact that yet another has been created tells me that the root cause
problem(s) have not been completely identified nor addressed.
> Of course, there's a dzil plugin for indexing to your pinto install:
> Now, for testing distributions separately, I've been using/testing Carton:
A work-around for another fundamental problem (dependency hell).
> There's a write-up about using these tools together for micro-services
It's interesting to read about a commercial Perl shop work flow. But,
there are at least two deal breakers for me:
1. Commercial services from GitHub.
2. Where is the code/ what is the license for "sem3 build"?
More information about the SanFrancisco-pm