summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authorTatsuhiko Miyagawa <miyagawa@bulknews.net>2013-03-30 14:52:36 -0700
committerTatsuhiko Miyagawa <miyagawa@bulknews.net>2013-03-30 14:52:36 -0700
commit10a12d50653cf69bfcb7830a2a935f204da85d94 (patch)
treeec7ced61068da17e592f499fabb005c57e309337 /README.md
parent20ed12c30c3143d9a651a9259653f03132924e66 (diff)
downloadcarton-10a12d50653cf69bfcb7830a2a935f204da85d94.tar.gz
convert to Milla
Diffstat (limited to 'README.md')
-rw-r--r--README.md135
1 files changed, 135 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..aad2d20
--- /dev/null
+++ b/README.md
@@ -0,0 +1,135 @@
+# NAME
+
+Carton - Perl module dependency manager (aka Bundler for Perl)
+
+# SYNOPSIS
+
+ # On your development environment
+ > cat cpanfile
+ requires 'Plack', 0.9980;
+ requires 'Starman', 0.2000;
+
+
+ > carton install
+ > git add cpanfile carton.lock
+ > git commit -m "add Plack and Starman"
+
+ # Other developer's machine, or on a deployment box
+ > carton install
+ > carton exec -Ilib -- starman -p 8080 myapp.psgi
+
+# WARNING
+
+__This software is under heavy development and considered ALPHA
+quality till its version hits v1.0.0. Things might be broken, not all
+features have been implemented, and APIs are likely to change. YOU
+HAVE BEEN WARNED.__
+
+# DESCRIPTION
+
+carton is a command line tool to track the Perl module dependencies
+for your Perl application. The managed dependencies are tracked in a
+_carton.lock_ file, which is meant to be version controlled, and the
+lock file allows other developers of your application will have the
+exact same versions of the modules.
+
+# TUTORIAL
+
+## Initializing the environment
+
+carton will use the _.carton_ directory for local configuration and
+the _local_ directory to install modules into. You're recommended to
+exclude these directories from the version control system.
+
+ > echo .carton/ >> .gitignore
+ > echo local/ >> .gitignore
+ > git add carton.lock
+ > git commit -m "Start using carton"
+
+## Tracking the dependencies
+
+You can manage the dependencies of your application via _cpanfile_.
+
+ # cpanfile
+ requires 'Plack', 0.9980;
+ requires 'Starman', 0.2000;
+
+And then you can install these dependencies via:
+
+ > carton install
+
+The modules are installed into your _local_ directory, and the
+dependencies tree and version information are analyzed and saved into
+_carton.lock_ in your directory.
+
+Make sure you add _carton.lock_ to your version controlled repository
+and commit changes as you update dependencies. This will ensure that
+other developers on your app, as well as your deployment environment,
+use exactly the same versions of the modules you just installed.
+
+ > git add cpanfile carton.lock
+ > git commit -m "Added Plack and Starman"
+
+## Deploying your application
+
+Once you've done installing all the dependencies, you can push your
+application directory to a remote machine (excluding _local_ and
+_.carton_) and run the following command:
+
+ > carton install
+
+This will look at the _carton.lock_ and install the exact same
+versions of the dependencies into _local_, and now your application
+is ready to run.
+
+## Bundling modules
+
+carton can bundle all the tarballs for your dependencies into a
+directory so that you can even install dependencies that are not
+available on CPAN, such as internal distribution aka DarkPAN.
+
+ > carton bundle
+
+will bundle these tarballs into _local/cache_ directory, and
+
+ > carton install --cached
+
+will install modules using this local cache. This way you can avoid a
+dependency on CPAN meta DB and search.cpan.org at a deploy time, or
+you can have dependencies onto private CPAN modules aka DarkPAN.
+
+# COMMUNITY
+
+- [https://github.com/miyagawa/carton](https://github.com/miyagawa/carton)
+
+ Code repository, Wiki and Issue Tracker
+
+- [irc://irc.perl.org/\#carton](irc://irc.perl.org/\#carton)
+
+ IRC chat room
+
+# AUTHOR
+
+Tatsuhiko Miyagawa
+
+# COPYRIGHT
+
+Tatsuhiko Miyagawa 2011-
+
+# LICENSE
+
+This software is licensed under the same terms as Perl itself.
+
+# SEE ALSO
+
+[cpanm](http://search.cpan.org/perldoc?cpanm)
+
+[Bundler](http://gembundler.com/)
+
+[pip](http://pypi.python.org/pypi/pip)
+
+[npm](http://npmjs.org/)
+
+[perlrocks](https://github.com/gugod/perlrocks)
+
+[only](http://search.cpan.org/perldoc?only)