Here we provide some details about the project setup. Most of the choices are explained in the guide. Links to the relevant sections are included below. Feel free to remove this text when the development of the software package takes off.
For a quick reference on software development, we refer to the software guide checklist.
You can use either pip or conda for installing dependencies and package management. This repository does not force you to use one or the other, as project requirements differ. For advice on what to use, please check the relevant section of the guide.
- Runtime dependencies should be added to
setup.cfg
in theinstall_requires
list under[options]
. - Development dependencies should be added to
setup.cfg
in one of the lists under[options.extras_require]
.
You can distribute your code using PyPI. The guide can help you decide which tool to use for packaging.
- Tests should be put in the
tests
folder. - The testing framework used is PyTest
- PyTest introduction
- PyTest is listed as a development dependency
- This is configured in
pyproject.toml
- The project uses GitHub action workflows to automatically run tests on GitHub infrastructure against multiple Python versions
- Workflows can be found in
.github/workflows
- Workflows can be found in
- Relevant section in the guide
- Documentation should be put in the
docs/
directory. - We recommend writing the documentation using MkDocs and Google style docstrings.
- Relevant section in the guide
Sonarcloud is used to perform quality analysis and code coverage report
sonar-project.properties
is the SonarCloud configuration file.github/workflows/sonar-cloud.yml
is the GitHub action workflow which performs the SonarCloud analysis
- We recommend using semantic versioning.
- You can update the version using make command, e.g.
make update-version CURRENT_VERSION=0.0.1 NEW_VERSION=0.0.2
. - Don't forget to update the version number before making a release!
- We recommend using the logging module for getting useful information from your module (instead of using print).
- Relevant section in the guide
- Document changes to your software package
- Relevant section in the guide
- To allow others to cite your software, add a
CITATION.cff
file - It only makes sense to do this once there is something to cite (e.g., a software release with a DOI).
- Follow the making software citable section in the guide.
- Information about how to behave professionally
- Relevant section in the guide
- Information about how to contribute to this software package
- Relevant section in the guide
- List non-Python files that should be included in a source distribution
- Relevant section in the guide
- List of attributions of this project and Apache-license dependencies
- Relevant section in the guide