Skip to content

inveniosoftware/cookiecutter-invenio-module

Repository files navigation

Cookiecutter - Invenio Module Template

image

image

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 <https://www.python.org/dev/peps/ 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.