Skip to content

Instantly share code, notes, and snippets.

@miyagawa
Created August 29, 2014 02:31
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save miyagawa/db3542ed11428fb8bce3 to your computer and use it in GitHub Desktop.
Save miyagawa/db3542ed11428fb8bce3 to your computer and use it in GitHub Desktop.

Carton

  • carton install
    • Install modules locally
    • Collects artifacts (metadata)
    • Dumps versions to the snapshot file
  • carton install --deployment
    • Recreate CPAN mirror from the snapshot
    • installs modules with cpanm

Carton 1.0

  • carton install
    • runs cpanm --installdeps ...
    • collects install.json (generated by cpanm)
    • dumps cpanfile.snapshot
  • carton install --deployment
    • generates 02packages.details.txt from cpanfile.snapshot
    • runs cpanm --installdeps --mirror-index ...

Problems

  • install.json generation is fragile
  • relies heavily on cpanm internals
  • incomplete git support
  • incomplete vendor support

Carton 2.0

  • Same command line interface
  • More focused on mirror management (like Pinto, Parcel)
    • with vendor support
  • Extract module resolutions out of cpanm
  • Extract package analyzer out of cpanm
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment