Skip to main content

Create Plone projects, addons, documentation with ease!

Project description

Plone Logo

Cookieplone 🍪

PyPI PyPI - Python Version PyPI - Wheel PyPI - License PyPI - Status

Tests

GitHub contributors GitHub Repo stars

Welcome to Cookieplone, a powerful wrapper around Cookiecutter designed to streamline the development of Plone codebases. Whether you're building a backend add-on, a new Volto add-on, a full project with both backend and frontend, Cookieplone simplifies the process using robust Cookiecutter templates.

Key features 🌟

Cookieplone offers the following key features for each audience.

For users

  • One stop for all Plone templates: Cookieplone helps you find the correct template to start your new Plone project.
  • Simplified usage: Cookieplone provides an enhanced experience over standard Cookiecutter usage by offering predefined sane defaults and a unified approach to generating various Plone projects.
  • Batteries included: No need to install lots of dependencies. Run pipx run cookieplone, and you will quickly generate your codebase.

For template creators

  • Built-in validators: Includes built-in validators to ensure user inputs are correct.
  • Jinja2 filters: Includes Jinja2 filters for advanced template control.
  • Sub-templates: Mechanism to easily instantiate "sub templates" within cookiecutter hooks -- i.e. post_gen_hook -- , facilitating greater code reuse.

Installation 💾

First, ensure you have Python, pip, and pipx installed on your system.

Then install Cookieplone using pipx:

# pipx is strongly recommended.
pipx install cookieplone

Or, if pipx is not an option, you can install Cookieplone in your Python user directory.

python -m pip install --user cookieplone

Usage 🛠️

To see all available template options, run:

pipx run cookieplone

Cookieplone will walk you through the necessary steps, using sensible defaults and offering customization options where needed.

Use options to avoid prompts

Cookieplone will ask a lot of questions. You can use some of its options to avoid repeatedly entering the same values.

--no-input

You can use the --no-input option to make Cookieplone not prompt for parameters and only use cookiecutter.json file content.

--replay and --replay-file

You can use the options --replay and --replay-file to not prompt for parameters and only use information entered previously or from a specified file. See Replay Project Generation in the cookiecutter documentation for more information.

Specify a template

You can also specify other templates.

Template Description Command
backend_addon Create a Plone add-on to be used with the backend. pipx run cookieplone backend_addon
frontend_addon Create a Plone add-on to be used with the frontend. pipx run cookieplone frontend_addon

The updated list of templates can be found at the cookieplone-templates repository.

Configure Cookieplone

Environment Variable Description Example
COOKIEPLONE_REPOSITORY Where to look for templates to be used. COOKIEPLONE_REPOSITORY=/home/plone/cookiecutter-plone/ pipx run cookieplone
COOKIEPLONE_REPOSITORY_TAG Which tag/branch to use from a remote repository. COOKIEPLONE_REPOSITORY_TAG=experimental pipx run cookieplone
COOKIEPLONE_REPO_PASSWORD Password to use when using a remote repository that is password protected. COOKIEPLONE_REPO_PASSWORD=very-secure pipx run cookieplone

Contribute 🤝

We welcome contributions to Cookieplone.

You can create an issue in the issue tracker, or contact a maintainer.

Development requirements

  • Python 3.10 or later
  • Hatch

Setup

Install all development dependencies, including Hatch, and create a local virtual environment with the following command.

make install

Check and format the codebase

make check

Run tests

pytest is this package's test runner.

Run all tests with the following command.

make test

Run all tests, but stop on the first error and open a pdb session with the following command.

hatch run test -x --pdb

Run only tests that match test_run_sanity_checks_fail with the following command.

hatch run test -k test_run_sanity_checks_fail

Run only tests that match test_run_sanity_checks_fail, but stop on the first error and open a pdb session with the following command.

hatch run test -k test_run_sanity_checks_fail -x --pdb

Support 📢

For support, questions, or more detailed documentation, visit the official Cookieplone repository.

Thank you for choosing Cookieplone for your Plone development needs!

This project is supported by

Plone Foundation Logo

License

The project is released under the MIT License.

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

cookieplone-0.8.1.tar.gz (29.8 kB view details)

Uploaded Source

Built Distribution

cookieplone-0.8.1-py3-none-any.whl (26.4 kB view details)

Uploaded Python 3

File details

Details for the file cookieplone-0.8.1.tar.gz.

File metadata

  • Download URL: cookieplone-0.8.1.tar.gz
  • Upload date:
  • Size: 29.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for cookieplone-0.8.1.tar.gz
Algorithm Hash digest
SHA256 64dd4645f303bebd3920cede48107e1f405e9df2ccdabd4de48cd33d2ff75871
MD5 5d64a6b61f29b0e65ac170eff19e0ee0
BLAKE2b-256 f0c9f3c65f4985bd192df1df36d33edbdeca3d882524f2f007243e25bc808211

See more details on using hashes here.

File details

Details for the file cookieplone-0.8.1-py3-none-any.whl.

File metadata

  • Download URL: cookieplone-0.8.1-py3-none-any.whl
  • Upload date:
  • Size: 26.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for cookieplone-0.8.1-py3-none-any.whl
Algorithm Hash digest
SHA256 24877affb7ba82d7e3d5fc26a259b2e3602d4273c907eae3b4226bd09867a255
MD5 3e0631470ee782755074a6e439f19f08
BLAKE2b-256 c1b3e46b0e0c6a1e0a7c0a6f90bd6fdf8bc95e5215dad43464c98212fc9cf77a

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