Skip to main content

upgrade projects created from a Cookiecutter template

Project description

Cookiecutter Project Upgrader

https://img.shields.io/pypi/v/cookiecutter_project_upgrader.svg CI Status Documentation Status Code Coverage

Upgrade projects created from a Cookiecutter template.

Features

Cookiecutter Project Upgrader allows upgrading projects that were created using Cookiecutter.

After a project has been created from a Cookiecutter template, changes made to the Cookiecutter template usually have to be applied manually to the project. This tool automates this process.

When run the first time on a project, it creates a new branch from the first commit of the current branch (the oldest one). It then generates the project again using the latest version of the template and creates a new commit that contains the latest cookiecuttered code,

Usage: cookiecutter_project_upgrader [OPTIONS]

Upgrade projects created from a Cookiecutter template

Options:
-c, --context-file PATH

Default: docs/cookiecutter_input.json

-b, --branch TEXT

Default: cookiecutter-template

-i, --interactive

Enter interactive mode. Default behaviour: skip questions, use defaults.

-m, --merge-now BOOLEAN

Execute a git merge after a successful update, default: ask if interactive, otherwise false.

-p, --push-template-branch-changes BOOLEAN

Push changes to the remote Git branch on a successful update, default: ask if interactive, otherwise false.

-e, --exclude TEXT

Git pathspecs to exclude from the update commit, e.g. -e “*.py” -e “tests/”.

-h, --help

Show this message and exit.

Preconditions

The tool requires a JSON file with context that matches the existing service. This file can be created through Cookiecutter with the following contents:

{{ cookiecutter | jsonify }}

You will need a recent version of git for this to work. (it needs –no-checkout on git worktree)

Auto-Completion

The script uses the Click toolkit. Because the script uses Click, you can enable completion for Zsh and Bash.

For Bash, add the following to your .bashrc or some other profile initialization file. eval “$(_COOKIECUTTER_PROJECT_UPGRADER_COMPLETE=source cookiecutter_project_upgrader)”

For Zsh, please read the Click documentation.

Credits

The concept and some code is heavily based on https://github.com/senseyeio/cupper, with some changes to use Click and some flags and default values to ease usage. Also cleanup has been done and automated tests have been added.

This package was created with Cookiecutter and the thomasjahoda/cookiecutter-pypackage project template.

History

1.0.0 (2019-03-22)

  • First release on PyPI.

1.1.0 (2019-03-24)

  • Ask for some options interactively if within interactive shell.

1.2.0 (2020-08-02)

  • Move interactive mode behind -i flag.

  • Add -p flag to push the branch on successful update.

  • Add -e flag to exclude git pathspecs from the update.

  • Do not run pre-commit hooks on the update commit.

  • Expose -h flag in addition to –help.

  • Finish with non-zero exit status if there are no changes to be made (for shell piping).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cookiecutter_project_upgrader-1.2.0.tar.gz (215.9 kB view details)

Uploaded Source

Built Distribution

cookiecutter_project_upgrader-1.2.0-py2.py3-none-any.whl (7.9 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file cookiecutter_project_upgrader-1.2.0.tar.gz.

File metadata

  • Download URL: cookiecutter_project_upgrader-1.2.0.tar.gz
  • Upload date:
  • Size: 215.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.7.5

File hashes

Hashes for cookiecutter_project_upgrader-1.2.0.tar.gz
Algorithm Hash digest
SHA256 3dfb31f4325e2da3500cef1364024f27122d2b9e1afc982b7f18cf2d8f491451
MD5 55b2a3c69f955ef6eee96c57aee35408
BLAKE2b-256 cdeb4bf0e44eb17eb24b466d2366bc12e98f767d8d7db6a4c50de66da268a70b

See more details on using hashes here.

File details

Details for the file cookiecutter_project_upgrader-1.2.0-py2.py3-none-any.whl.

File metadata

  • Download URL: cookiecutter_project_upgrader-1.2.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 7.9 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.7.5

File hashes

Hashes for cookiecutter_project_upgrader-1.2.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 310639ab362305a5fa79822c4852a43eeebafafaae4cdda1207e54f8fbfcb413
MD5 2ef687e9fc96ce165cead61e138367c6
BLAKE2b-256 b07432dab5748dc7b6243c31f9043396f7f8260e87a53cc1589dcb836290b1c5

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page