Upgrade to Pro — share decks privately, control downloads, hide ads and more …

What's new in Carton and cpanm at YAPC::Asia 2013

What's new in Carton and cpanm at YAPC::Asia 2013

Tatsuhiko Miyagawa

September 21, 2013
Tweet

More Decks by Tatsuhiko Miyagawa

Other Decks in Technology

Transcript

  1. What's new in Carton & cpanm Tatsuhiko Miyagawa YAPC::Asia 2013

    Keio University Saturday, September 21, 13
  2. Me • Tatsuhiko Miyagawa • Lives in San Francisco •

    {github,twitter,CPAN}/miyagawa Saturday, September 21, 13
  3. Agenda • cpanm 1.6 / 1.7 • Carton 1.0 •

    What's Next Saturday, September 21, 13
  4. vs. other installers Sane defaults. Quiet output. Fast and lightweight.

    One file install. Saturday, September 21, 13
  5. Major changes • Smaller executable size: 350KB -> 230KB •

    ♥ Travis CI • Better prerequisite spec support • Build Args support • Uninstall Saturday, September 21, 13
  6. # cpanfile on develop => sub { requires 'Test::Pod'; recommends

    'Devel::NYTProf'; }; > cpanm --installdeps . \ --with-develop \ --with-recommends Saturday, September 21, 13
  7. # cpanfile feature 'sqlite' => sub { requires 'DBD::SQLite' recommends

    'DBI', 3.1; }; > cpanm --installdeps . \ --with-feature=sqlite Saturday, September 21, 13
  8. cpanfile + cpanm • Simple • Yet powerful and flexible

    way to describe dependencies and version requirements • Version control cpanfile Saturday, September 21, 13
  9. caveats • Locking each dependency with specific version is tedious

    work • Can only lock direct dependencies • MetaCPAN as SPOF • No easy/reliable way to fallback Saturday, September 21, 13
  10. What's new in 1.0 • No Makefile.PL/Build.PL support (cpanfile) •

    cpanfile.snapshot (no carton.lock) • 20x faster tree command • More reliable version extraction • carton update, carton bundle • fatpack executable for bootstrap Saturday, September 21, 13
  11.  @local>  carton  install  @local>  git  commit  cpanfile.snapshot  @local>  git  push

    @remote>  carton  install  -­‐-­‐deployment @remote>  carton  exec  plackup  ... Saturday, September 21, 13
  12. cpanm 1.8 • Rewrite internals • Backend API • Plugin

    support • CPAN Testers support (via plugins) Saturday, September 21, 13
  13. carton 1.1 • configure args/hints support • safe exec on

    development • remember options (--path etc.) Saturday, September 21, 13