Cookiecutter Py3-Package


cookiecutter-py3-package

A fork of cookiecutter-pypackage.

Currently, this is being updated to meet my specific needs, and perhaps yours.

Checkout the CHANGELOG to see what has been done so far.

Checkout the Projects page to see what is planned.

We are aiming for your new package to be an automated Continuous Delivery workflow experience.


Project Status: WIP – Initial development is in progress, but there has not yet been a stable, usable release suitable for the public. Updates Project is Maintained Project Open Issues Code Quality pre-commit Documentation Status

A Cookiecutter template for a Python package.

Features

  1. Choose to use a Conventional-Commits specification custom commits message in your built package.

  2. An optional GitHub action to automatically update semantic version and publish assets to your package repository when a pull request merge is closed or manually.

  3. Manual semantic versioning and publishing are also available locally, bypassing the need for a GitHub action if that is your preferred workflow.

  4. An optional GitHub action to generate a package CHANGELOG automatically if you choose to version and publish your package manually.

  5. An optional GitHub action to run your Tox package test suite when a pull request to the main branch starts.

  6. Optional to use to use pre-commit to identuify simple coding issues before submission, with a badge to communicate quickly.

  7. Optional to use to use PyUp.io to scan dependencies and offer updates.

  8. Tox configuration for your package includes an OS and Python test matrix. OS includes Linux, macOS and Windows. Python 3.6 - 3.9. (Uses GitHub actions.)

  9. An optional suite of custom GitHub issue templates. The four custom issue templates prompt users to help provide enough information in a templated format for each issue type.

  10. Documentation is in the process of being refreshed and organised into the Diataxis documentation framework.

  11. Sphinx docs: Documentation ready for generation with, for example, Read the Docs.

  12. Optional to use to use a Read the Docs badge to communicate quickly.

  13. Auto-release to PyPI when you push a new tag to main (optional). Coming soon.

  14. Use commit tags to release to Test-PyPi. Coming soon.

  15. An optional Command line interface using Click or Argparse.

  16. An option to initialise your local git repository, add files and create the first commit automatically. Also if you have opted to use the Conventional-Commits style git commit message template, cookiecutter will simultaneously add it to your local git config file.

  17. Optional to use to use a Repo Status badge to communicate quickly.

Note

Initialise your local git requires Git v2.33.0 or above.

Quickstart

See the cookiecutter-py3-package quickstart.

For more details on getting started, see the cookiecutter-py3-pypackage tutorial.

Contributing

Contributions are very welcome and appreciated!

You can contribute in many ways.

See How-To Contribute to help you get started.

Please take a moment to read our Code of Conduct.

Not Exactly What You Want?

Don’t worry, you have options:

Similar Cookiecutter Templates

Fork This / Create Your Own

If you have differences in your preferred setup, I encourage you to fork this to create your own version. Or create your own; it doesn’t strictly have to be a fork.

  • Once you have your own version working, add it to the Similar Cookiecutter Templates list above with a brief description.

  • It’s up to you whether or not to rename your fork/own version. Do whatever you think sounds good.

Or Submit a Pull Request

I also accept pull requests on this, if they’re small, atomic, and if they make my own packaging experience better.