Project setup
Here we provide some details about the project setup. Most of the choices are explained in the Turing Way: Guide for Reproducible Research.
Repository structure
The repository has the following structure:
├── .github/ # GitHub specific files such as workflows
├── docs/ # Documentation source files
├── my_package/ # Main package code
├── tests/ # Test code
├── .gitignore # Git ignore file
├── CITATION.cff # Citation file
├── LICENSE # License file
├── README.md # User documentation
├── pyproject.toml # Project configuration file and dependencies
├── mkdocs.yml # MkDocs configuration file
Package management and dependencies
You can use pip for installing dependencies and package management.
- Runtime dependencies should be added to
pyproject.tomlin thedependencieslist under[project]. - Development dependencies, such as for testing or documentation, should be
added to
pyproject.tomlin one of the lists under[project.optional-dependencies].
Packaging/One command install
You can distribute your code using PyPI. This can be done automatically using
GitHub workflows, see .github/.
Package version number
- We recommend using semantic versioning.
- For convenience, the package version is stored in a single place:
pyproject.toml. - Don't forget to update the version number before making a release! Also, update
__version__variable indiffwofost/__init__.pyto the same version.
CITATION.cff
- To allow others to cite your software, add a
CITATION.cfffile - It only makes sense to do this once there is something to cite (e.g., a software release with a DOI).
- Follow the Software Citation with CITATION.cff section in the Turing Way guide.
CODE_OF_CONDUCT.md
- Information about how to behave professionally
- To know more, read Turing Way guide on Code of Conduct
CONTRIBUTING.md
- Information about how to contribute to this software package
- To know more, read Turing Way guide on Contributing