Features

Works with Python 2.6, 2.7, 3.3, 3.4, and PyPy. (But you don’t have to know/write Python
code to use Cookiecutter.)

Project templates can be in any programming language or markup format:
Python, JavaScript, Ruby, CoffeeScript, RST, Markdown, CSS, HTML, you name
it. You can use multiple languages in the same project template.

Simple command line usage:

# Create project from the cookiecutter-pypackage.git repo template
# You'll be prompted to enter values.
# Then it'll create your Python package in the current working directory,
# based on those values.
$ cookiecutter https://github.com/audreyr/cookiecutter-pypackage
# For the sake of brevity, repos on GitHub can just use the 'gh' prefix
$ cookiecutter gh:audreyr/cookiecutter-pypackage

Can also use it at the command line with a local template:

# Create project in the current working directory, from the local
# cookiecutter-pypackage/ template
$ cookiecutter cookiecutter-pypackage/

You are strongly encouraged to file an issue about the problem, even if
it’s just “I can’t get it to work on this cookiecutter” with a link to your
cookiecutter. Don’t worry about naming/pinpointing the issue properly.

Ask for help in #cookiecutter if you must (but please try one of the other
options first, so that others can benefit from the discussion)

Development on Cookiecutter is community-driven:

Huge thanks to all the contributors who have pitched in to help make
Cookiecutter an even better tool.

File an issue so that Cookiecutter can be improved. Be friendly
and constructive about what could be better. Make detailed suggestions.

Keep us in the loop so that we can help. For example, if you are
discussing problems with Cookiecutter on a mailing list, file an issue
where you link to the discussion thread and/or cc at least 1 core committer on
the email.

Be encouraging. A comment like “This function ought to be rewritten like
this” is much more likely to result in action than a comment like “Eww, look
how bad this function is.”

Waiting for a response to an issue/question?

Be patient and persistent. All issues are on the core committer team’s radar and
will be considered thoughtfully, but we have a lot of issues to work through. If
urgent, it’s fine to ping a core committer in the issue with a reminder.

Ask others to comment, discuss, review, etc.

Search the Cookiecutter repo for issues related to yours.

Need a fix/feature/release/help urgently, and can’t wait? @audreyr is
available for hire for consultation or custom development.

History

1.0.0 (2015-01-13) Chocolate Chip

The goals of this release was to formally remove support for Python 2.6 and continue the move to using py.test.

0.7.2 (2014-08-05)

The goal of this release was to fix cross-platform compatibility, primarily
Windows bugs that had crept in during the addition of new features. As of this
release, Windows is a first-class citizen again, now complete with continuous
integration.

Bug Fixes:

Fixed the contributing file so it displays nicely in Github, thanks to @pydanny.

When a cookiecutter contains invalid Jinja2 syntax, you get a better message
that shows the location of the TemplateSyntaxError. Thanks to @benjixx.

Can now prompt the user to enter values during generation from a local
cookiecutter, thanks to @ThomasChiroux. This is now always the default
behavior. Prompts can also be supressed with –no-input.

Your cloned cookiecutters are stored by default in your ~/.cookiecutters/
directory (or Windows equivalent). The location is configurable. (This is a
major change from the pre-0.7.0 behavior, where cloned cookiecutters were
deleted at the end of project generation.) Thanks @raphigaziano.

User config in a ~/.cookiecutterrc file, thanks to @raphigaziano.
Configurable settings are cookiecutters_dir and default_context.

File permissions are now preserved during project generation, thanks to
@benjixx.

Bug fixes:

Unicode issues with prompts and answers are fixed, thanks to @s-m-i-t-a.

The test suite now runs on Windows, which was a major effort. Thanks to
@pydanny, who collaborated on this with me.