Giter Club home page Giter Club logo

dist-zilla-chef's Introduction

NAME

Dist::Zilla::Chef - Cook your distributions with Dist::Zilla

VERSION

version 0.003

DESCRIPTION

Dist::Zilla::Chef is a suite of Dist::Zilla commands that help you build & test your dist AND all of its dependencies. The idea is to use Dist::Zilla to establish a workflow for managing and testing dependencies in isolation while your dist grows and evolves.

Dist::Zilla::Chef relies on Pinto to create and manage a local CPAN-like repository containing a snapshot of all the prerequisites that are required by your dist. As your code evolves, you can use the Dist::Zilla::Chef commands to periodically load the repository with any additional prerequisites that your dist needs. At any time, you can build your dist and all of its dependencies in isolation, thus giving you a full test of your entire code stack.

This is alpha code. It is just a proof of concept. It could even be a disproof of concept. You have been warned.

WHY IT IS CALLED CHEF

In some ways, creating a dist is like cooking food, and you are the chef! Your dist has many ingredients (dependencies). We store these ingredients in a pantry (Pinto repository). When we are hungry for some code, we cook (build) our dist by combining it with all of the necessary ingredients.

I know, the cooking metaphor isn't perfect. But I needed a coherent set of names for these command plugins. The cooking metaphor seemed reasonable. Who knows, maybe it will get some traction. Suggestions are welcome.

HOW TO COOK

Here's the general workflow for using the Dist::Zilla::Chef commands. For this example, suppose you are going to make a new distribution called Frobulator. So you use dzil to create the basic distribution structure for you...

$> dzil new Frobulator

Now we write some code. Suppose you've decided that the Frobulator is going to use Dancer. We also add an ABSTRACT, which is required by Dist::Zilla...

# in lib/Frobulator.pm
package Frobulator;

# ABSTRACT: Does stuff

use Dancer;

And after a few minutes of coding, you have a few subroutines and maybe a couple test scripts to accompany Frobulator. Now it is time to cook!

First, you need to gather the "ingredients" for your distribution and "stock" them in the "pantry"...

dzil stock

Dancer (and all of its dependencies) will now be "stocked" in a CPAN-like repository in the pan directory. Now you can "cook" your distribution and all of its dependencies together...

dzil cook

This builds, tests, and installs your distribution into the dlib directory, along with all the dependencies. The result is stashed in the dlib directory.

Now suppose you add a new dependency on Test::More. Once again, we run the stock command to gather any ingredients that are missing from our pantry...

dzil stock

And finally, we cook our distribution again...

dzil cook

But this time, only the new dependencies need to be built, since the dlib directory still has all the dependencies from the last baking.

Over time, the dlib directory may get crufty, or you just might want to cook from scratch again. In that case, you "scrub" your work space to remove the dlib directory...

dzil scrub

Now the next time you cook, Dist::Zilla::Chef will assemble your distribution and all of its dependencies again.

SUPPORT

Perldoc

You can find documentation for this module with the perldoc command.

perldoc Dist::Zilla::Chef

Websites

The following websites have more information about this module, and may be of help to you. As always, in addition to those websites please use your favorite search engine to discover more resources.

  • Search CPAN

The default CPAN search engine, useful to view POD in HTML format.

http://search.cpan.org/dist/Dist-Zilla-Chef

  • CPAN Ratings

The CPAN Ratings is a website that allows community ratings and reviews of Perl modules.

http://cpanratings.perl.org/d/Dist-Zilla-Chef

  • CPAN Testers

The CPAN Testers is a network of smokers who run automated tests on uploaded CPAN distributions.

http://www.cpantesters.org/distro/D/Dist-Zilla-Chef

  • CPAN Testers Matrix

The CPAN Testers Matrix is a website that provides a visual overview of the test results for a distribution on various Perls/platforms.

http://matrix.cpantesters.org/?dist=Dist-Zilla-Chef

  • CPAN Testers Dependencies

The CPAN Testers Dependencies is a website that shows a chart of the test results of all dependencies for a distribution.

http://deps.cpantesters.org/?module=Dist::Zilla::Chef

Bugs / Feature Requests

https://github.com/thaljef/Dist-Zilla-Chef/issues

Source Code

https://github.com/thaljef/Dist-Zilla-Chef

git clone git://github.com/thaljef/Dist-Zilla-Chef.git

AUTHOR

Jeffrey Ryan Thalhammer [email protected]

COPYRIGHT AND LICENSE

This software is copyright (c) 2011 by Imaginative Software Systems.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.

dist-zilla-chef's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.