A cross-platform command-line utility that creates projects from cookiecutters (project templates), e.g. Python package projects, C projects.
This release was focused on internal code and CI/CD changes. During this release all code was verified to match pep8, pep257 and other code-styling guides.
Project CI/CD was significantly changed, Windows platform checks based on Appveyor engine was replaced by GitHub actions tests. Appveyor was removed. Also our CI/CD was extended with Mac builds, to verify project builds on Apple devices.
Important Changes:
--skip-if-file-exists
, allow to skip the existing files when doing overwrite_if_exists
. @chhsiao1981 (#1076)Internal CI/CD and tests changes:
cov-report
tox invocation environment @insspb (#1350)Code style and docs changes:
click
API v7.0 from showing choices when already shown, thanks to @rly and @luzfcb (#1168)cookiecutter/main.py
, cookiecutter/__init__.py
, and cookiecutter/log.py
to follow the PEP 257 style guide, thanks to @meahow (#998, #999, #1000)cookiecutter/utils.py
to follow the PEP 257 style guide, thanks to @dornheimer(#1026){% endif %}
to Choice Variables example. Thanks to @mattstibbs (#1249)TOXENV
environment variable, thanks to @asottile (#1019)The primary goal of this release was to add support for templates from Zip files or Zip URLs.
_template
, thanks to @aroig (#774)git
operation failures, thanks to @jmcarp (#905)expand_abbreviations()
doc string as per pep257, thanks to @terryjbates (#772)cookiecutter/cli.py
and cookiecutter/config.py
according to pep257, thanks to @terryjbates (#922, #931)is_copy_only_path()
according to pep257, thanks to @mathagician and @terryjbates (#935, #949)cookiecutter/extensions.py
according to pep257, thanks to @meahow (#996)test_requirements.txt
file for easier testing outside of tox, thanks to @ramnes (#945)cookiecutter.json
, thanks to @karantan for the report and fix (#863, #864)Hotfix release to address an issue with dict variables.
The primary goal of this release was to add command-line support for passing extra context, address minor bugs and make a number of improvements.
python -m cookiecutter
or from a checkout/zip file, thanks to @brettcannon (#788).--debug-file PATH
to store a log file on disk. By default no log file is written. Entries for DEBUG
level and higher. Thanks to @hackebrot (#792).cookiecutters_dir
(default is ~/.cookiecutters/
) can now be referenced by directory name, thanks to @michaeljoseph (#825).cookiecutter.json
, thanks to @freakboy3742 and @hackebrot (#815, #858).jsonify
filter to default jinja2 extensions that json.dumps a Python object into a string, thanks to @aroig (#791).pre_gen_project
and post_gen_project
hooks, thanks to @cheungnj (#860)__init__
methods for Environment objects, thanks to @pydanny (#677)ssh
repository examples, thanks to @pokoli (#702)--template
command line option, thanks to @purplediane (#754)environment.py
, thanks to @terryjbates (#759)find.py
, thanks to @terryjbates (#761)generate.py
, thanks to @terryjbates (#764)hooks.py
, thanks to @terryjbates (#766)repository.py
, thanks to @terryjbates (#833)vcs.py
, thanks to @terryjbates (#831)repo_name
in documentation, thanks to @palmerev (#734)no_input
option, thanks to @pokoli (#701)cli_runner
test fixture to simplify CLI tests, thanks to @hackebrot (#790)render_variable
function in prompt.py
, thanks to @pydanny (#678)pre_gen_project
and post_gen_project
hooks, thanks to @hackebrot (#856)The goal of this release is changing to a strict Jinja2 environment, paving the way to more awesome in the future, as well as adding support for Jinja2 extensions.
New Features:
cookiecutters_dir
and replay_dir
now support environment variable and user home expansion, thanks to @nfarrar for the suggestion and @hackebrot for the PR (#640, #642){% now 'utc' %}
, thanks to @hackebrot (#653)Bug Fixes:
replay.dump()
and replay.load()
use the correct user config, thanks to @hackebrot (#590, #594)HISTORY.rst
with utf-8
encoding when reading the changelog, thanks to @0-wiz-0 for submitting the issue and @hackebrot for the fix (#638, #639)Other Changes:
The goal of this release is to extend the user config feature and to make hook execution more robust.
New Features:
pre_gen_project
or post_gen_project
hook scripts fail, thanks to @eliasdorneles (#464, #549)--config-file
and --default-config
and environment variable
COOKIECUTTER_CONFIG
, thanks to @jhermann, @pfmoore, and
@hackebrot (#258, #424, #565)Bug Fixes:
Other Changes:
Zimtsterne are cinnamon star cookies
New Feature:
Bug Fixes:
Other Changes:
rualmel.yaml
instead of PyYAML
, except for Windows users on Python 2.7, thanks to @pydanny (#557)Why 1.2.1 instead of 1.2.0? There was a problem in the distribution that we pushed to PyPI. Since you can't replace previous files uploaded to PyPI, we deleted the files on PyPI and released 1.2.1.