Skip to content

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.toml in the dependencies list under [project].
  • Development dependencies, such as for testing or documentation, should be added to pyproject.toml in 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 in diffwofost/__init__.py to the same version.

CITATION.cff

  • 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 Software Citation with CITATION.cff section in the Turing Way guide.

CODE_OF_CONDUCT.md

CONTRIBUTING.md