Skip to content

inveniosoftware/cookiecutter-invenio-module

Repository files navigation

Cookiecutter - Invenio Module Template

This Cookiecutter template is designed to help you to bootstrap modules for Invenio. It offers you the following features:

  • Python package: Python package for your module including version submodule.
  • Boilderplate files: README including important badges, AUTHORS and CHANGES file.
  • License: MIT file and headers.
  • Installation: Installation script written as setup.py and a requirements calculator for different levels (min, pypi, dev).
  • Tests: Test setup using pytest and configuration for Tox.
  • Documentation: Documentation generator using Sphinx. Also includes all files required for Read the Docs. Mocking module to simulate not-installed requirements for faster documentation building.
  • Continuous integration: Support for GitHub Actions.
  • Your toolchain: Ignores a decent set of files when working with GIT and Docker. Gets your editor to adapt project guidelines by providing a EditorConfig file.

Configuration

To generate correct files, please provide the following input to Cookiecutter:

project_name Full project name, might contain spaces.
project_shortname Project shortname, no spaces allowed, use - as a separator.
package_name Package/Module name for Python, must follow PEP 0008.
github_repo GitHub repository of the project in form of USER/REPO, not the full GitHub URL.
description A short description of the functionality of the module, its length should not extend one line.
author_name The name of the primary author of the project, not necessarily the same as the copyright holder.
author_email E-Mail address of the primary author.
year Current year.
copyright_holder Name of the person or organization who acts as the copyright holder of this project.
copyright_by_intergovernmental Boolean flag that indicates that the copyright holder is an Intergovernmental Organization.
superproject Project that contains the newly created Invenio module, or, in other words, the super project of this module, e.g. Invenio itself.
transifex_project Name of the project on transifex translation platform.
extension_class Name of the class that will be exported as setuptools entrypoint and loaded by invenio main app.
config_prefix Prefix for the configuration keys that the main app will use for this extension.