Cookiecutter Versions Save

A cross-platform command-line utility that creates projects from cookiecutters (project templates), e.g. Python package projects, C projects.

1.7.3

3 years ago
  • Fixed jinja2 and markupsafe dependencies

1.7.2

4 years ago

Changes

Bugfixes

  • Fixed: Jinja2&Six version limits causing build errors with ansible project (#1385) @insspb

1.7.1

4 years ago

1.7.1 (2019-04-21)

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:

  • Added: Added debug messages for get_user_config @ssbarnea (#1357)
  • Multiple templates per one repository feature added. @RomHartmann (#1224, #1063)
  • Update replay.py json.dump indent for easy viewing @nicain (#1293)
  • 'future' library replaced with 'six' as a more lightweight python porting library @asottile (#941)
  • Added extension: Slugify template filter @ppanero (#1336)
  • Added command line option: --skip-if-file-exists, allow to skip the existing files when doing overwrite_if_exists. @chhsiao1981 (#1076)
  • Some packages versions limited to be compatible with python2.7 and python 3.5 @insspb (#1349)

Internal CI/CD and tests changes:

  • Coverage comment in future merge requests disabled @ssbarnea (#1279)
  • Fixed Python 3.8 travis tests and setup.py message @insspb (#1295, #1297)
  • Travis builds extended with Windows setup for all supported python versions @insspb (#1300, #1301)
  • Update .travis.yml to be compatible with latest travis cfg specs @luzfcb (#1346)
  • Added new test to improve tests coverage @amey589 (#1023)
  • Added missed coverage lines highlight to pytest-coverage report @insspb (#1352)
  • pytest-catchlog package removed from test_requirements, as now it is included in pytest @insspb (#1347)
  • Fixed cov-report tox invocation environment @insspb (#1350)
  • Added: Release drafter support and configuration to exclude changelog update work and focus on development @ssbarnea @insspb (#1356, #1362)
  • Added: CI/CD steps for Github actions to speedup CI/CD @insspb (#1360)
  • Removed: Appveyor CI/CD completely removed @insspb @ssbarnea @insspb (#1363, #1367)

Code style and docs changes:

  • Added black formatting verification on lint stage + project files reformatting @ssbarnea @insspb (#1368)
  • Added pep257 docstring for tests/* files @insspb (#1369, #1370, #1371, #1372, #1373, #1374, #1375, #1376, #1377, #1378, #1380, #1381)
  • Added pep257 docstring for tests/conftests.py @kishan (#1272, #1263)
  • Added pep257 docstring for tests/replay/conftest.py @kishan (#1270, #1268)
  • Added pep257 docstring for docs/init.py @kishan (#1273, #1265)
  • Added missing docstring headers to all files @croesnick (#1269, #1283)
  • Gitter links replaced by Slack in README @browniebroke (#1282)
  • flake8-docstrings tests added to CI/CD @ssbarnea (#1284)
  • Activated pydocstyle rule: D401 - First line should be in imperative mood @ssbarnea (#1285)
  • Activated pydocstyle rule: D200 - One-line docstring should fit on one line with quotes @ssbarnea (#1288)
  • Activated pydocstyle rule: D202 - No blank lines allowed after function docstring @ssbarnea (#1288)
  • Activated pydocstyle rule: D205 - 1 blank line required between summary line and description @ssbarnea (#1286, #1287)
  • Activated pydocstyle rule: ABS101 @ssbarnea (#1288)
  • Replaced click documentation links to point to version 7 @igorbasko01 (#1303)
  • Updated submodule link to latest version with documentation links fix @DanBoothDev (#1388)
  • Fixed links in main README file. @insspb (#1342)
  • Fix indentation of .cookiecutterrc in README.md @mhsekhavat (#1322)
  • Changed format of loggers invocation @insspb (#1307)

1.7.0

4 years ago

Important changes

  • Drop support for EOL Python 3.3, 3.4, thanks to @hugovk, @jamescurtin and @insspb (#1024)
  • Prevent click API v7.0 from showing choices when already shown, thanks to @rly and @luzfcb (#1168)
  • Make sure to preserve the order of items in the generated cookiecutter context, thanks to @hackebrot (#1074)
  • Fixed DeprecationWarning for a regular expression on python 3.6, thanks to @reinout (#1124)
  • Use io.open contextmanager when reading hook files, thanks to @jcb91 (#1147)

PEP related changes

  • PEP257 fixing docstrings in exceptions.py. Thanks to @MinchinWeb (#1237)
  • PEP257 fixing docstrings in replay.py. Thanks to @kishan (#1234)
  • PEP257 fixing docstrings in test_unzip.py. Thanks to @tonytheleg and @insspb (#1236, #1262)
  • Update docstrings in cookiecutter/main.py, cookiecutter/__init__.py, and cookiecutter/log.py to follow the PEP 257 style guide, thanks to @meahow (#998, #999, #1000)
  • Update docstrings in cookiecutter/utils.py to follow the PEP 257 style guide, thanks to @dornheimer(#1026)
  • Update prompt.py to match pep257 guidelines, thanks to @jairideout (#1105)

Documentation changes

  • Updates REAMDE.md with svg badge for appveyor. Thanks to @sobolevn (#1254)
  • Add missing {% endif %} to Choice Variables example. Thanks to @mattstibbs (#1249)
  • Core documentation converted to Markdown format thanks to @wagnernegrao, @insspb (#1216)
  • Add a CODE_OF_CONDUCT.md file to the project, thanks to @andreagrandi (#1009)
  • Fix grammar in Choice Variables documentation, thanks to @jubrilissa (#1011)
  • Update installation docs with links to the Windows Subsystem and GNU utilities, thanks to @Nythiennzo for the PR and @BruceEckel for the review (#1016)
  • Update tutorial with explanation for how cookiecutter finds the template file, thanks to @accraze(#1025)
  • Improve user documentation for writing hooks, thanks to @jonathansick (#1057)
  • Document use of cookiecutter-template topic on GitHub, thanks to @ssbarnea (#1189)
  • Update README badge links, thanks to @luzfcb (#1207)
  • Update link to Jinja2 extensions documentation, thanks to @dacog (#1193)

Tests changes

  • Fixed tests sequence for appveyor, to exclude file not found bug. Thanks to @insspb (#1257)
  • Tests update: use sys.executable when invoking python in python 3 only environment thanks to @vincentbernat (#1221)
  • Test the codebase with python3.8 beta on tox and travis-ci (#1206), thanks to @mihrab34
  • Require pip 9.0.0 or newer for tox environments, thanks to @hackebrot (#1215)
  • Upgrade flake8 to version 3.5.0, thanks to @cclauss (#1038)
  • Update CI config files to use TOXENV environment variable, thanks to @asottile (#1019)

Templates list modification

1.6.0

6 years ago

The primary goal of this release was to add support for templates from Zip files or Zip URLs.

New Features

  • Include template path or template URL in cookiecutter context under _template, thanks to @aroig (#774)
  • Add a URL abbreviation for GitLab template projects, thanks to @hackebrot (#963)
  • Add option to use templates from Zip files or Zip URLs, thanks to @freakboy3742 (#961)

Bug Fixes

  • Fix an issue with missing default template abbreviations for when a user defined custom abbreviations, thanks to @noirbizarre for the issue report and @hackebrot for the fix (#966, #967)
  • Preserve existing output directory on project generation failure, thanks to @ionelmc for the report and @michaeljoseph for the fix (#629, #964)
  • Fix Python 3.x error handling for git operation failures, thanks to @jmcarp (#905)

Other Changes

1.5.1

7 years ago

Hotfix release to address an issue with dict variables.

New Features

  • Major update to installation documentation, thanks to @stevepiercy (#880)

Bug Fixes

  • Resolve an issue around default values for dict variables, thanks to @e-kolpakov for raising the issue and @hackebrot for the PR (#882, #884)

Other Changes

1.5.0

7 years ago

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 for DEBUG 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 and post_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 in prompt.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 and post_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)

1.4.0

8 years ago

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 and replay_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() and replay.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 with utf-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:

1.3.0

8 years ago

The goal of this release is to extend the user config feature and to make hook execution more robust.

New Features:

  • Abort project generation if pre_gen_project or post_gen_project hook scripts fail, thanks to @eliasdorneles (#464, #549)
  • Extend user config capabilities with additional cli options --config-file and --default-config and environment variable COOKIECUTTER_CONFIG, thanks to @jhermann, @pfmoore, and @hackebrot (#258, #424, #565)

Bug Fixes:

  • Fixed conditional dependencies for wheels in setup.py, thanks to @hackebrot (#557, #568)
  • Reverted skipif markers to use correct reasons (bug fixed in pytest), thanks to @hackebrot (#574)

Other Changes:

  • Improved path and documentation for rendering the Sphinx documentation, thanks to @eliasdorneles and @hackebrot (#562, #583)
  • Added additional help entrypoints, thanks to @michaeljoseph (#563, #492)
  • Added Two Scoops Academy to the README, thanks to @hackebrot (#576)
  • Now handling trailing slash on URL, thanks to @ramiroluz (#573, #546)
  • Support for testing x86 and x86-64 architectures on appveyor, thanks to @maiksensi (#567)
  • Made tests work without installing Cookiecutter, thanks to @vincentbernat (#550)
  • Encoded the result of the hook template to utf8, thanks to @ionelmc (#577. #578)
  • Added test for _run_hook_from_repo_dir, thanks to @hackebrot (#579, #580)
  • Implemented bumpversion, thanks to @hackebrot (#582)
  • Added more cookiecutter templates to the mix:
  • cookiecutter-octoprint-plugin by @foosel (#560)
  • wagtail-cookiecutter-foundation by @chrisdev, et al. (#566)

1.2.1

8 years ago

Zimtsterne are cinnamon star cookies

New Feature:

  • Returns rendered project dir, thanks to @hackebrot (#553)

Bug Fixes:

  • Factor in choice variables (as introduced in 1.1.0) when using a user config or extra context, thanks to @ionelmc and @hackebrot (#536, #542).

Other Changes:

  • Enable py35 support on Travis by using Python 3.5 as base Python, thanks to @maiksensi (#540)
  • If a filename is empty, do not generate. Log instead (@iljabauer / #444)
  • Fix tests as per last changes in cookiecutter-pypackage, thanks to @eliasdorneles (#555).
  • Removed deprecated cookiecutter-pylibrary-minimal from the list, thanks to @ionelmc (#556)
  • Moved to using 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.