Alfajor
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.
New Features
- Inject extra context with command-line arguments, thanks to @msabramo and @michaeljoseph (#666).
- Updated conda installation instructions to work with the new conda-forge distribution of Cookiecutter, thanks to @pydanny and especially @bollwyvl (#232, #705).
- Refactor code responsible for interaction with version control systems and raise better error messages, thanks to @michaeljoseph (#778).
- Add support for executing cookiecutter using
python -m cookiecutter
or from a checkout/zip file, thanks to @brettcannon (#788). - New CLI option
--debug-file PATH
to store a log file on disk. By default no log file is written. Entries forDEBUG
level and higher. Thanks to @hackebrot (#792). - Existing templates in a user's
cookiecutters_dir
(default is~/.cookiecutters/
) can now be referenced by directory name, thanks to @michaeljoseph (#825). - Add support for dict values in
cookiecutter.json
, thanks to @freakboy3742 and @hackebrot (#815, #858). - Add a
jsonify
filter to default jinja2 extensions that json.dumps a Python object into a string, thanks to @aroig (#791).
Bug Fixes
- Fix typo in the error logging text for when a hook did not exit successfully, thanks to @luzfcb (#656)
- Fix an issue around replay file names when cookiecutter is used with a relative path to a template, thanks to @eliasdorneles for raising the issue and @hackebrot for the PR (#752, #753)
- Ignore hook files with tilde-suffixes, thanks to @hackebrot (#768)
- Fix a minor issue with the code that generates a name for a template, thanks to @hackebrot (#798)
- Handle empty hook file or other OS errors, thanks to @christianmlong for raising this bug and @jcarbaugh and @hackebrot for the fix (#632, #729, #862)
- Resolve an issue with custom extensions not being loaded for
pre_gen_project
andpost_gen_project
hooks, thanks to @cheungnj (#860)
Other Changes
- Remove external dependencies from tests, so that tests can be run w/o network connection, thanks to @hackebrot (#603)
- Remove execute permissions on Python files, thanks to @mozillazg (#650)
- Report code coverage info from AppVeyor build to codecov, thanks to @ewjoachim (#670)
- Documented functions and methods lacking documentation, thanks to @pydanny (#673)
- Documented
__init__
methods for Environment objects, thanks to @pydanny (#677) - Updated whichcraft to 0.4.0, thanks to @pydanny.
- Updated documentation link to Read the Docs, thanks to @Natim (#687)
- Moved cookiecutter templates and added category links, thanks to @willingc (#674)
- Added Github Issue Template, thanks to @luzfcb (#700)
- Added
ssh
repository examples, thanks to @pokoli (#702) - Fix links to the cookiecutter-data-science template and its documentation, thanks to @tephyr for the PR and @willingc for the review (#711, #714)
- Update link to docs for Django's
--template
command line option, thanks to @purplediane (#754) - Create hook backup files during the tests as opposed to having them as static files in the repository, thanks to @hackebrot (#789)
- Applied PEP 257 docstring conventions to:
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)- Fix link to the Tryton cookiecutter, thanks to @cedk and @nicoe (#697, #698)
- Added PyCon US 2016 sponsorship to README, thanks to @purplediane (#720)
- Added a sprint contributor doc, thanks to @phoebebauer (#727)
- Converted readthedocs links (.org -> .io), thanks to @adamchainz (#718)
- Added Python 3.6 support, thanks to @suledev (#728)
- Update occurrences of
repo_name
in documentation, thanks to @palmerev (#734) - Added case studies document, thanks to @pydanny (#735)
- Added first steps cookiecutter creation tutorial, thanks to @BruceEckel (#736)
- Reorganised tutorials and setup git submodule to external tutorial, thanks to @dot2dotseurat (#740)
- Debian installation instructions, thanks to @ivanlyon (#738)
- Usage documentation typo fix., thanks to @terryjbates (#739)
- Updated documentation copyright date, thanks to @zzzirk (#747)
- Add a make rule to update git submodules, thanks to @hackebrot (#746)
- Split up advanced usage docs, thanks to @zzzirk (#749)
- Documentation for the
no_input
option, thanks to @pokoli (#701) - Remove unnecessary shebangs from python files, thanks to @michaeljoseph (#763)
- Refactor cookiecutter template identification, thanks to @michaeljoseph (#777)
- Add a
cli_runner
test fixture to simplify CLI tests, thanks to @hackebrot (#790) - Add a check to ensure cookiecutter repositories have JSON context, thanks to @michaeljoseph (#782)
- Rename the internal function that determines whether a file should be rendered, thanks to @audreyr for raising the issue and @hackebrot for the PR (#741, #802)
- Fix typo in docs, thanks to @mwarkentin (#828)
- Fix broken link to Invoke docs, thanks to @B3QL (#820)
- Add documentation to
render_variable
function inprompt.py
, thanks to @pydanny (#678) - Fix python3.6 travis-ci and tox configuration, thanks to @luzfcb (#844)
- Add missing encoding declarations to python files, thanks to @andytom (#852)
- Disable poyo logging for tests, thanks to @hackebrot (#855)
- Remove pycache directories in make clean-pyc, thanks to @hackebrot (#849)
- Refactor hook system to only find the requested hook, thanks to @michaeljoseph (#834)
- Add tests for custom extensions in
pre_gen_project
andpost_gen_project
hooks, thanks to @hackebrot (#856) - Make the build reproducible by avoiding nondeterministic keyword arguments, thanks to @lamby and @hackebrot (#800, #861)
- Extend CLI help message and point users to the github project to engage with the community, thanks to @hackebrot (#859)
- Added more cookiecutter templates to the mix:
- cookiecutter-funkload-friendly by @tokibito (#657)
- cookiecutter-reveal.js by @keimlink (#660)
- cookiecutter-python-app by @mdklatt (#659)
- morepath-cookiecutter by @href (#672)
- hovercraft-slides by @jhermann (#665)
- cookiecutter-es6-package by @ratson (#667)
- cookiecutter-webpack by @hzdg (#668)
- cookiecutter-django-herokuapp by @dulaccc (#374)
- cookiecutter-django-aws-eb by @peterlauri (#626)
- wagtail-starter-kit by @tkjone (#658)
- cookiecutter-dpf-effect by @SpotlightKid (#663)
- cookiecutter-dpf-audiotk by @SpotlightKid (#663)
- cookiecutter-template by @eviweb (#664)
- cookiecutter-angular2 by @matheuspoleza (#675)
- cookiecutter-data-science by @pjbull (#680)
- cc-django-ember-app by @nanuxbe (#686)
- cc-project-app-drf by @nanuxbe (#686)
- cc-project-app-full-with-hooks by @nanuxbe (#686)
- beat-generator by @ruflin (#695)
- cookiecutter-scala by @plippe (#751)
- cookiecutter-snakemake-analysis-pipeline by @xguse (#692)
- cookiecutter-py3tkinter by @ivanlyon (#730)
- pyramid-cookiecutter-alchemy by @stevepiercy (#745)
- pyramid-cookiecutter-starter by @stevepiercy (#745)
- pyramid-cookiecutter-zodb by @stevepiercy (#745)
- substanced-cookiecutter by @stevepiercy (#745)
- cookiecutter-simple-django-cn by @shenyushun (#765)
- cookiecutter-pyqt5 by @mandeepbhutani (#797)
- cookiecutter-xontrib by @laerus (#817)
- cookiecutter-reproducible-science by @mkrapp (#826)
- cc-automated-drf-template by @TAMU-CPT (#832)