Carmel

 view release on metacpan or  search on metacpan

README  view on Meta::CPAN

      requires 'Starman', '0.2000';
    
      > carmel install
      > echo /.carmel >> .gitignore
      > git add cpanfile cpanfile.snapshot .gitignore
      > git commit -m "add Plack and Starman"
    
      # On a new setup, or another developer's machine
      > git pull
      > carmel install
      > carmel exec starman -p 8080 myapp.psgi
    
      # Add a new dependency
      > echo "requires 'Try::Tiny';" >> cpanfile
      > carmel install
      > git commit -am 'Add Try::Tiny'
    
      # Update Plack to the latest
      > carmel update Plack

 Production Deployments

README  view on Meta::CPAN

    include paths, or to avoid installing Carmel in the production hosts.

    Carmel provides two easy ways to avoid depending on Carmel on the
    deploy target environments. First, carmel rollout rolls out the build
    artifacts into a regular perl5 library path in local. Once the rollout
    is complete, you can include the path just like a regular local::lib
    directory.

      # Production environment: Roll out to ./local
      > carmel rollout
      > perl -Ilocal/lib/perl5 local/bin/starman -p 8080 myapp.psgi

    You can run carmel rollout> in a CI system to create the local
    directory next to your application code for a linux package (e.g. deb
    package), or Docker containers.

    Second, carmel package (similar to carton bundle) creates a directory
    with tarballs and CPAN-style package index files, which you can pass to
    cpanm on a target machine. This way, you only need cpanm, which is
    available as a self-contained single executable, to bootstrap the
    installation on a host with a stock perl.

lib/Carmel.pm  view on Meta::CPAN

  requires 'Starman', '0.2000';

  > carmel install
  > echo /.carmel >> .gitignore
  > git add cpanfile cpanfile.snapshot .gitignore
  > git commit -m "add Plack and Starman"

  # On a new setup, or another developer's machine
  > git pull
  > carmel install
  > carmel exec starman -p 8080 myapp.psgi

  # Add a new dependency
  > echo "requires 'Try::Tiny';" >> cpanfile
  > carmel install
  > git commit -am 'Add Try::Tiny'

  # Update Plack to the latest
  > carmel update Plack

=head2 Production Deployments

lib/Carmel.pm  view on Meta::CPAN

avoid the overhead with large number of include paths, or to avoid installing
Carmel in the production hosts.

Carmel provides two easy ways to avoid depending on Carmel on the deploy target
environments. First, C<carmel rollout> rolls out the build artifacts into a
regular perl5 library path in C<local>. Once the rollout is complete, you can
include the path just like a regular L<local::lib> directory.

  # Production environment: Roll out to ./local
  > carmel rollout
  > perl -Ilocal/lib/perl5 local/bin/starman -p 8080 myapp.psgi

You can run C<carmel rollout>> in a CI system to create the C<local> directory
next to your application code for a linux package (e.g. deb package), or Docker
containers.

Second, C<carmel package> (similar to C<carton bundle>) creates a directory with
tarballs and CPAN-style package index files, which you can pass to L<cpanm> on a
target machine. This way, you only need C<cpanm>, which is available as a
self-contained single executable, to bootstrap the installation on a host with a
stock perl.



( run in 1.452 second using v1.01-cache-2.11-cpan-e93a5daba3e )