Dist::Zilla status report: awesome

I’m feeling pretty good about progress so far, especially after today taking an axe to the InstallDirs plugin, which was a bug ugly mess. Here’s the big board:

proper logging facility

Done!

reusable testing tools

Done! I’d like to improve the App tester, but it’s still working.

extensive testing of the core

Done! I mean, they’re not providing 100% coverage, but that wasn’t the goal. The goal was to have enough tests that you could see that things were testing, and to prove that the testing tools worked. I think it’s been extremely successful.

improved prerequisite handling

Almost done! I need to tweak the way the FixedPrereq role works, or possibly eliminate it in favor of something else, but all the hard stuff is now done.

core set of well-known FileFinder plugins

Done enough! I’ve created the most important well-known FileFinder and have converted a few core plugins to use them. This makes the tests pass again, and that’s huge. I should probably add one for :TestFiles, though…

improvements for authoring distributions containing XS

Well, we have dzil run now, but I’m not sure that’s enough. This is the “most optional” task for me. I’ve implemented the suggestions I had when I propsed the grant, and now I’d like to see if there are any other benefits. I think this may have been largely addressed, too, by the recent plugins for custom Makefile.PL and Build.PL templates. I might support core-ing that feature, too, soon.

simplification of the command line tool’s code

This hasn’t quite happened yet, but I think this one is going to be close to its estimate. For the most part, I think this one will just be moving code. I could be wrong, though. I might be overcome with the urge to refactor the Dist::Zilla test method or something… but I think it’s unlikely.

event structure for distribution creation

I haven’t really thought much about this yet, but I’m excited. David Golden wrote one of the only distribution-skeleton-creators that I’ve liked, and now he’s gotten onto the Dist::Zilla bandwagon. I’m hoping to work with him to find ways to rework his never-released-to-CPAN tool into Dist::Zilla plugins targeting this new subsystem.

Even if this falls through, I think I will not have a terrible time getting started with a few simple roles for plugins to perform here.

documentation: improved new user’s guide

Well, this is the big one! Once the coding work is done, this is going to be a huge sink of time, and I’m sort of terrified of it. Dist::Zilla is not easy to document in typical “just document each class” fashion, and I really want to get it right. Perl Pub recently published a bit on Dist::Zilla, and I’ll be giving a talk on Dist::Zilla at OSCON, so I have some more experience writing about it, and will be working on writing about it more for the conference. Still, this is going to be a lot of work, and I’m both worried an excited for it.

So, in short: about three weeks in, I think I’m between one third and halfway complete. The remaining code work is, I think, mostly minor work or all about polish. After that, I’m into the documentation phase, and that will be really time-consuming, but hopefully it will pay dividends. I look forward to being able to say, “Jeez, didn’t you read the awesome manual?”

Written on March 23, 2010
distzilla   perl   programming