This is an automated email from the git hooks/post-receive script.
kanashiro-guest pushed a commit to branch master
in repository carton.
Author: Tatsuhiko Miyagawa <miyag...@bulknews.net>
Date: Fri May 31 07:47:35 2013 +0900
lib/Carton/Doc/FAQ.pod | 63 +++++++++++++++++--------------------------------
lib/Carton/Doc/List.pod | 24 +------------------
2 files changed, 22 insertions(+), 65 deletions(-)
diff --git a/lib/Carton/Doc/FAQ.pod b/lib/Carton/Doc/FAQ.pod
index 80f2695..177f8c6 100644
@@ -8,12 +8,12 @@ Carton::Doc::FAQ - Frequently Asked Questions
The particular problem that carton is trying to address is this:
-You develop a Perl web application with dozens of CPAN module
-dependencies. You install these modules on your development machine,
-and describe these dependencies in your I<Makefile.PL> or some other
+You develop a Perl-based application, possibly but not limited to
+webapps, with dozens of CPAN module dependencies. You install these
+modules on your development machine, and describe these dependencies
+in your I<cpanfile>.
-Now you get a produciton environment on Cloud PaaS provider or some
+Now you get a produciton environment, either on PaaS provider or some
VPS, you install the dependencies using C<cpanm --installdeps .> and
it will pull all the latest releases from CPAN as of today and
everything just works.
@@ -34,50 +34,29 @@ controlled system, so that every time you deploy from a
is guaranteed that all the same versions are installed into the local
-=head2 How is this different from DPAN or CPAN::Mini::Inject?
-First of all, if you currently use L<DPAN|MyCPAN::App::DPAN>,
-L<CPAN::Mini::Inject>, L<Shipwright> or any other similar tools
-successfully, then that's totally fine. You don't need to switch to
-If you experience difficulties with these tools, or are interested in
-what could be better in carton, keep on reading.
+=head2 How is this different from Pinto or CPAN::Mini::Inject?
carton definitely shares the goal with these private CPAN repository
-Manage the dependencies tree locally
-Take snapshots/lock the versions
-Inject private modules into the repository
+management tool. But the main difference is that rather than creating
+an actual CPAN-like repository that works with any CPAN clients,
+Carton provides a way to install specific versions of distributions
+from CPAN, or any CPAN-like mirrors, as well as git repositories.
-Existing tools are designed to work with existing CPAN clients such as
+Existing tools are designed to work I<with> CPAN clients such as
L<CPAN> or L<CPANPLUS>, and have accomplished that by working around
the CPAN mirror structure.
-carton internally does the same thing, but its user interface is
+carton I<internally> does the same thing, but its user interface is
centerd around the installer, by implementing a wrapper for
L<cpanm|App::cpanminus>, so you can use the same commands in the
development mode and deployment mode.
Carton automatically maintains the L<carton.lock> file, which is meant
to be version controlled, inside your application directory. You don't
-need a separate database or a directory to maintain tarballs outside
-your application. The I<carton.lock> file can always be generated out
-of the local library path, and carton can reproduce the tree using the
-lock file on other machines.
+need a separate database, a directory or a web server to maintain
+tarballs outside your application. The I<carton.lock> file can always
+be generated with C<carton install> command, and C<carton install> on
+another machine can use the version in the lock.
=head2 I'm already using perlbrew and local::lib. Can I use carton with this?
@@ -94,8 +73,8 @@ be this:
-Install fresh perl using perlbrew. The version should be the same
-against the version you'll run on the production environment (if any).
+Install fresh perl using perlbrew. The version must be the same
+against the version you'll run on the production environment.
@@ -111,11 +90,11 @@ possible.
When you build a new project that you want to manage dependencies via
Carton, turn off the I<devel> local::lib and create a new one, like
-I<carton>. Install L<Carton> and all of its dependencies to the
-I<carton> local::lib path. Then run C<carton install> like you
+I<myapp>. Install L<Carton> and all of its dependencies to the
+I<myapp> local::lib path. Then run C<carton install> like you
-Becuase I<devel> and I<carton> are isolated, the modules you installed
+Becuase I<devel> and I<myapp> are isolated, the modules you installed
into I<devel> doesn't affect the process when carton builds the
dependency tree for your new project at all. This could often be
critical when you have a conditional dependency in your tree, like
diff --git a/lib/Carton/Doc/List.pod b/lib/Carton/Doc/List.pod
index 6db01b2..8c0f36e 100644
@@ -4,32 +4,10 @@ Carton::Doc::List - List dependencies tracked in the
- carton list [--tree]
+ carton list
List the dependencies and version information tracked in the
I<carton.lock> file. This command by default displays the name of the
distribution (e.g. I<Foo-Bar-0.01>) in a flat list.
-Displays the dependencies as a nicely formatted tree structure, for example:
- $ carton list --tree
Alioth's /usr/local/bin/git-commit-notice on
Pkg-perl-cvs-commits mailing list