Cookiecutter - Invenio Module Template¶
- Python package: Python package for your module including version submodule.
- Boilderplate files: README including important badges, AUTHORS and CHANGES file.
- License: GPL 2 file and headers. Headers optionally include a special paragraph for Intergovernmental Organizations like CERN. Provides these headers as reusable files for Python and reStructuredText.
- 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 Travis which tests all three requirement levels and adds coverage tests using Coveralls.
- 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.
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.|
|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.|