This Cookiecutter template is designed to help you to bootstrap an Invenio service.
Install the latest Cookiecutter if you haven't installed it yet:
pip install -U cookiecutter
Generate your Invenio instance:
cookiecutter https://github.com/inveniosoftware/cookiecutter-invenio-instance.git -c v3.4
More detailed steps can be found in the https://invenio.readthedocs.io/en/latest/quickstart/quickstart.html
- Python package: Python package for your service.
- Boilerplate files: README including important badges, AUTHORS and CHANGES files.
- License: MIT file and headers.
- Installation: Installation workflow and dependency management using pipenv.
- Tests: Testing setup using pytest.
- 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 an 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. |
project_site | Project website host. |
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. |
transifex_project | Name of the project on transifex translation platform. |
database | The database you are planning to use. PostgreSQL (postgresql) and MySQL (mysql) supported at the moment. |
elasticsearch | The version of ElasticSearch you are planning to use. Versions 6.x (elasticsearch6) and 7.x (elasticsearch7) supported at the moment. |
datamodel | Whether to create a custom model (Custom) or continue without one (None). |
datamodel_extension_class | Name of the class of your custom datamodel. |
datamodel_pid_name | Name of the Persistent IDentifier attribute of the datamodel. |
Further documentation is available on https://invenio.readthedocs.io/