The goals of this release is to add extra content via the command-line and copy without render.
Features:
- Added copy without render feature, making it much easier for developers of Ansible, Salt Stack, and other recipe-based tools to work with Cookiecutter. Thanks to @osantana and @LucianU for their innovation, as well as @hackebrot for fixing the Windows problems (#132, #184, #425).
- Abort template rendering if the project output directory already exists, thanks to @lgp171188 (#470, #471).
Other Changes:
- Updated click requirement to 4.0, thanks to @pydanny (#473).
- Added landscape.io flair, thanks to @michaeljoseph (#439).
- Descriptions of PEP8 specifications and milestone management, thanks to @michaeljoseph (#440).
- Added alternate installation options in the documentation, thanks to @pydanny (#117, #315).
- The test of the which() function now tests against the date command, thanks to @vincentbernat (#446)
- Ensure file handles in setup.py are closed using with statement, thanks to @svisser (#280).
The goals of this release was to formally remove support for Python 2.6 and continue the move to using py.test.
Features:
- Convert the unittest suite to py.test for the sake of comprehensibility, thanks to @hackebrot (#322, #332, #334, #336, #337, #338, #340, #341, #343, #345, #347, #351, #412, #413, #414).
- Generate pytest coverage, thanks to @michaeljoseph (#326).
- Documenting of Pull Request merging and HISTORY.rst maintenance, thanks to @michaeljoseph (#330).
- Large expansions to the tutorials thanks to @hackebrot (#384)
- Switch to using Click for command-line options, thanks to @michaeljoseph (#391, #393).
- Added support for working with private repos, thanks to @marctc (#265).
- Wheel configuration thanks to @michaeljoseph (#118).
Other Changes:
- Formally removed support for 2.6, thanks to @pydanny (#201).
- Moved to codecov for continuous integration test coverage and badges, thanks to @michaeljoseph (#71, #369).
- Made JSON parsing errors easier to debug, thanks to @rsyring and @mark0978 (#355, #358, #388).
- Updated to Jinja 2.7 or higher in order to control trailing new lines in templates, thanks to @sfermigier (#356).
- Tweaked flake8 to ignore e731, thanks to @michaeljoseph (#390).
- Fixed failing Windows tests and corrected AppVeyor badge link thanks to @msabramo (#403).
- Added more Cookiecutters to the list:
The goals of this release were to add the ability to Jinja2ify the cookiecutter.json default values, and formally launch support for Python 3.4.
Features:
- Python 3.4 is now a first class citizen, thanks to everyone.
- cookiecutter.json values are now rendered Jinja2 templates, thanks to @bollwyvl (#291).
- Move to py.test, thanks to @pfmoore (#319) and @ramiroluz (#310).
- Add PendingDeprecation warning for users of Python 2.6, as support for it is gone in Python 2.7, thanks to @michaeljoseph (#201).
Bug Fixes:
- Corrected typo in Makefile, thanks to @inglesp (#297).
- Raise an exception when users don't have git or hg installed, thanks to @pydanny (#303).
Other changes:
- Creation of gitter account for logged chat, thanks to @michaeljoseph.
- Added ReadTheDocs badge, thanks to @michaeljoseph.
- Added AppVeyor badge, thanks to @pydanny
- Documentation and PyPI trove classifier updates, thanks to @thedrow (#323 and #324)
The goal of this release was to allow for injection of extra context via the Cookiecutter API, and to fix minor bugs.
Features:
- cookiecutter() now takes an optional extra_context parameter, thanks to @michaeljoseph, @fcurella, @aventurella, @emonty, @schacki, @ryanolson, @pfmoore, @pydanny, @audreyr (#260).
- Context is now injected into hooks, thanks to @michaeljoseph and @dinopetrone.
- Moved all Python 2/3 compatability code into cookiecutter.compat, making the eventual move to six easier, thanks to @michaeljoseph (#60, #102).
- Added cookiecutterrc defined aliases for cookiecutters, thanks to @pfmoore (#246)
- Added flake8 to tox to check for pep8 violations, thanks to @natim.
Bug Fixes:
- Newlines at the end of files are no longer stripped, thanks to @treyhunner (#183).
- Cloning prompt suppressed by respecting the no_input flag, thanks to @trustrachel (#285)
- With Python 3, input is no longer converted to bytes, thanks to @uranusjr (#98).
Other Changes:
- Added more Cookiecutters to the list:
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.
- Updates 2.6 requirements to include simplejson, thanks to @saxix.
- Avoid unwanted extra spaces in string literal, thanks to @merwok.
- Fix @unittest.skipIf error on Python 2.6.
- Let sphinx parse :param: properly by inserting newlines #213, thanks to @mineo.
- Fixed Windows test prompt failure by replacing stdin per @cjrh in #195.
- Made rmtree remove readonly files, thanks to @pfmoore.
- Now using tox to run tests on Appveyor, thanks to @pfmoore (#241).
- Fixed tests that assumed the system encoding was utf-8, thanks to @pfmoore (#242, #244).
- Added a tox ini file that uses py.test, thanks to @pfmoore (#245).
Other Changes:
- @audreyr formally accepted position as BDFL of cookiecutter.
- Elevated @pydanny, @michaeljoseph, and @pfmoore to core committer status.
- Added Core Committer guide, by @audreyr.
- Generated apidocs from make docs, by @audreyr.
- Added contributing command to the make docs function, by @pydanny.
- Refactored contributing documentation, included adding core committer instructions, by @pydanny and @audreyr.
- Do not convert input prompt to bytes, thanks to @uranusjr (#192).
- Added troubleshooting info about Python 3.3 tests and tox.
- Added documentation about command line arguments, thanks to @saxix.
- Style cleanups.
- Added environment variable to disable network tests for environments without networking, thanks to @vincentbernat.
- Added Appveyor support to aid Windows integrations, thanks to @pydanny (#215).
- CONTRIBUTING.rst is now generated via make contributing, thanks to @pydanny (#220).
- Removed unnecessary endoing argument to json.load, thanks to @pfmoore (#234).
- Now generating shell hooks dynamically for Unix/Windows portability, thanks to @pfmoore (#236).
- Removed non-portable assumptions about directory structure, thanks to @pfmoore (#238).
- Added a note on portability to the hooks documentation, thanks to @pfmoore (#239).
- Replaced unicode_open with direct use of io.open, thanks to @pfmoore (#229).
- Added more Cookiecutters to the list:
Bug fixes:
- Use the current Python interpreter to run Python hooks, thanks to @coderanger.
- Include tests and documentation in source distribution, thanks to @vincentbernat.
- Fix various warnings and missing things in the docs (#129, #130), thanks to @nedbat.
- Add command line option to get version (#89), thanks to @davedash and @cyberj.
Other changes:
- Add more Cookiecutters to the list:
This is a release with significant improvements and changes. Please read through this list before you upgrade.
New features:
- Support for --checkout argument, thanks to @foobacca.
- Support for pre-generate and post-generate hooks, thanks to @raphigaziano. Hooks are Python or shell scripts that run before and/or after your project is generated.
- Support for absolute paths to cookiecutters, thanks to @krallin.
- Support for Mercurial version control system, thanks to @pokoli.
- 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.
Other changes:
- Quite a bit of refactoring and API changes.
- Lots of documentation improvements. Thanks @sloria, @alex, @pydanny, @freakboy3742, @es128, @rolo.
- Better naming and organization of test suite.
- A CookiecutterCleanSystemTestCase to use for unit tests affected by the user's config and cookiecutters directory.
- Improvements to the project's Makefile.
- Improvements to tests. Thanks @gperetin, @s-m-i-t-a.
- Removal of subprocess32 dependency. Now using non-context manager version of subprocess.Popen for Python 2 compatibility.
- Removal of cookiecutter's cleanup module.
- A bit of setup.py cleanup, thanks to @oubiga.
- Now depends on binaryornot 0.2.0.
- Windows support officially added.
- Fix TemplateNotFound Exception on Windows (#37).
- Fix copying of binary files in nested paths (#41), thanks to @sloria.
- Depend on Jinja2>=2.4 instead of Jinja2==2.7.
- Fix errors on attempt to render binary files. Copy them over from the project template without rendering.
- Fix Python 2.6/2.7 UnicodeDecodeError when values containing Unicode chars are in cookiecutter.json.
- Set encoding in Python 3 unicode_open() to always be utf-8.
- Improved project template finding. Now looks for the occurrence of {{, cookiecutter, and }} in a directory name.
- Fix help message for input_dir arg at command prompt.
- Minor edge cases found and corrected, as a result of improved test coverage.
- Config is now in a single cookiecutter.json instead of in json/.
- When you create a project from a git repo template, Cookiecutter prompts you to enter custom values for the fields defined in cookiecutter.json.
Friendlier, more simplified command line usage:
# Create project from the cookiecutter-pypackage/ template $ cookiecutter cookiecutter-pypackage/ # Create project from the cookiecutter-pypackage.git repo template $ cookiecutter https://github.com/audreyr/cookiecutter-pypackage.git
Can now use Cookiecutter from Python as a package:
from cookiecutter.main import cookiecutter # Create project from the cookiecutter-pypackage/ template cookiecutter('cookiecutter-pypackage/') # Create project from the cookiecutter-pypackage.git repo template cookiecutter('https://github.com/audreyr/cookiecutter-pypackage.git')
Internal refactor to remove any code that changes the working directory.
- Only takes in one argument now: the input directory. The output directory is generated by rendering the name of the input directory.
- Output directory cannot be the same as input directory.
- Takes in command line args for the input and output directories.
- Minor cleanup.
Bumped to "Development Status :: 3 - Alpha".
- Works with any type of text file.
- Directory names and filenames can be templated.
- First release on PyPI.
https://github.com/audreyr/cookiecutter/milestones?direction=desc&sort=due_date&state=open