Shortbread
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:
- Added support for Jinja2 extension support, thanks to @hackebrot (#617).
- Now raises an error if Cookiecutter tries to render a template that contains an undefined variable. Makes generation more robust and secure (#586). Work done by @hackebrot (#111, #586, #592)
- Uses strict Jinja2 env in prompt, thanks to @hackebrot (#598, #613)
- Switched from pyyaml/ruamel.yaml libraries that were problematic across platforms to the pure Python poyo library, thanks to @hackebrot (#557, #569, #621)
- User config values for
cookiecutters_dir
andreplay_dir
now support environment variable and user home expansion, thanks to @nfarrar for the suggestion and @hackebrot for the PR (#640, #642) - Add jinja2-time as default extension for dates and times in templates via
{% now 'utc' %}
, thanks to @hackebrot (#653)
Bug Fixes:
- Provided way to define options that have no defaults, thanks to @johtso (#587, #588)
- Make sure that
replay.dump()
andreplay.load()
use the correct user config, thanks to @hackebrot (#590, #594) - Added correct CA bundle for Git on Appveyor, thanks to @maiksensi (#599, #602)
- Open
HISTORY.rst
withutf-8
encoding when reading the changelog, thanks to @0-wiz-0 for submitting the issue and @hackebrot for the fix (#638, #639) - Fix repository indicators for private repository urls, thanks to @habnabit for the fix (#595) and @hackebrot for the tests (#655)
Other Changes:
- Set path before running tox, thanks to @maiksensi (#615, #620)
- Removed xfail in test_cookiecutters, thanks to @hackebrot (#618)
- Removed django-cms-plugin on account of 404 error, thanks to @mativs and @pydanny (#593)
- Fixed docs/usage.rst, thanks to @macrotim (#604)
- Update .gitignore to latest Python.gitignore and ignore PyCharm files, thanks to @audreyr
- Use open context manager to read context_file in generate() function, thanks to @hackebrot (#607, #608)
- Added documentation for choice variables, thanks to @maiksensi (#611)
- Set up Scrutinizer to check code quality, thanks to @audreyr
- Drop distutils support in setup.py, thanks to @hackebrot (#606, #609)
- Change cookiecutter-pypackage-minimal link, thanks to @kragniz (#614)
- Fix typo in one of the template's description, thanks to @ryanfreckleton (#643)
- Fix broken link to _copy_without_render in troubleshooting.rst, thanks to @ptim (#647)
- Added more cookiecutter templates to the mix:
- cookiecutter-pipproject by @wdm0006 (#624)
- cookiecutter-flask-2 by @wdm0006 (#624)
- cookiecutter-kotlin-gradle by @thomaslee (#622)
- cookiecutter-tryton_ by @cedk (#631)
- django-starter by @tkjone (#635)
- django-docker-bootstrap by @legios89 (#636)
- cookiecutter-mediawiki-extension by @JonasGroeger (#645)
- cookiecutter-django-gulp by @valerymelou (#648)