Wednesday, October 26, 2011
Sunday, October 16, 2011
I'm taking two courses at Stanford this fall. Maybe you know someone else in one of them? There are one hundred thousand people in my AI class. 100,000. Even our largest freshman intro courses at Caltech had fewer than 215 people, so this is three decimal orders of magnitude larger. Wow. I'm not sure how many people are signed up for the Machine Learning class, but it's probably similarly large.
Back to work!
Saturday, October 15, 2011
It's easy to get the minimal pieces installed, so let's get to it.
Basic steps for building/using a Dist::Zilla based module from raw source:
- Check out module source
- install Dist::Zilla:
- install author deps:
dzil authordeps | cpanm
- install module deps:
dzil listdeps | cpanm
- build module with dzil:
1. Check out module sourceFor my example, I'm migrating my own App::PM::Website sources from an old laptop to a new one.
Looking for example code to checkout? Try searching for dist.ini on github to find an interesting perl module. ;)
% git clone email@example.com:spazm/app-pm-website
% cd app-pm-website
Check the code out of the repository and cd into the top level.
2. Install Dist::ZillaOn this relatively clean perl 5.12.3 install,
cpanm Dist::Zillabrought in 81 packages.
% cpan Dist::Zilla [andrew@fred]% cpanm Dist::Zilla 127 (git)-[dev] ~/src/app-pm-website--> Working on Dist::ZillaFetching http://search.cpan.org/CPAN/authors/id/R/RJ/RJBS/Dist-Zilla-4.300002.tar.gz ... OK [... snip ...] Building and testing Dist-Zilla-4.300002 ... OKSuccessfully installed Dist-Zilla-4.30000291 distributions installed
3. Install author dependencies
dzil authordepswill show the modules necessary for Dist::Zilla to build the module from raw source into a built module. Pipe this to
cpanmto install the modules.
% dzil authordeps Dist::Zilla::Plugin::MetaResources Dist::Zilla::Plugin::AutoPrereqs Dist::Zilla::Plugin::Repository Dist::Zilla::Plugin::NextRelease Dist::Zilla::PluginBundle::Basic Dist::Zilla::Plugin::AutoVersion Dist::Zilla::PluginBundle::Git Dist::Zilla::Plugin::PkgVersion Dist::Zilla::Plugin::MetaJSON Dist::Zilla::Plugin::PodWeaver % dzil authordeps | cpanm Dist::Zilla::Plugin::MetaResources is up to date. (4.300002) --> Working on Dist::Zilla::Plugin::Repository [... snip ...] Successfully installed Dist-Zilla-Plugin-PodWeaver-3.101641 11 distributions installed
4. Install module dependenciesInstall the authordeps before module dependencies, in case authordeps are required for dzil to calculate the module dependencies. E.g. I needed PodWeaver installed via authordeps before I could run
dzil listdepsto see the module dependencies.
% dzil listdeps App::Cmd App::Cmd::Command App::Cmd::Tester base Config::YAML Data::Dumper Date::Parse DateTime DateTime::Format::Strptime ExtUtils::MakeMaker HTTP::DAV Net::Netrc POSIX strict Template Test::Class Test::Class::Load Test::More warnings % dzil listdeps | cpanm App::Cmd is up to date. (0.312) base is up to date. (2.15) --> Working on Config::YAML [...snip...] Successfully installed Test-Class-0.36 Test::More is up to date. (0.98) 10 distributions installed
5. Build module
dzil buildwill build the module into a directory and tar it up ready for cpan.
dzil test will build the code and run the tests, you'll use this to verify your changes to the target module.
And now I can get back to the task at hand, improving this module. I'll let you know how that goes too.
% dzil build
[DZ] beginning to build App-PM-Website
[DZ] guessing dist's main_module is lib/App/PM/Website.pm
[DZ] extracting distribution abstract from lib/App/PM/Website.pm
[DZ] writing App-PM-Website in App-PM-Website-0.112890
[DZ] building archive with Archive::Tar; install Archive::Tar::Wrapper for improved speed
[DZ] writing archive to App-PM-Website-0.112890.tar.gz