Appendix A — FAIR Assessment Cards
You can directly copy-paste the FAIR cards provided below into your repository as issues (without any additional formatting) to help track the implementation of best practices for FAIR research software.
A.1 Version control
_Essential (language-independent)_- [ ] Use Git as a version control system
- [ ] Upload your project on [GitHub](https://github.com/) or [TU Delft GitLab](https://gitlab.tudelft.nl/)
- [ ] Make use of [GitHub issues](https://docs.github.com/en/issues/tracking-your-work-with-issues/about-issues)
_Recommended (language-independent)_ - [ ] Make your repository [public](https://coderefinery.github.io/social-coding/)
- [ ] Use a branching [model and maintain branch hygiene](https://awegroup.github.io/developer-guide/docs/branch-management.html)
- [ ] [Have meaningful commit messages](https://www.git-scm.com/book/en/v2/Distributed-Git-Contributing-to-a-Project#_commit_guidelines)
A.2 Project documentation
_Essential (language-independent)_- [ ] [README](https://awegroup.github.io/developer-guide/docs/documentation.html#how-to-write-a-good-readme)
- [ ] [LICENSE](https://awegroup.github.io/developer-guide/docs/licenses.html#types-of-open-source-licenses) and [WAIVER](https://awegroup.github.io/developer-guide/docs/licenses.html#tu-delft-licensing-policy)
- [ ] [CITATION](https://awegroup.github.io/developer-guide/docs/documentation.html#citation)
A.3 Software documentation
_Essential (language-independent)_- [ ] Source code documentation ([docstrings](https://awegroup.github.io/developer-guide/docs/software-documentation.html#docstrings))
- [ ] Document your project dependencies
- [ ] [Installation instructions](https://awegroup.github.io/developer-guide/docs/documentation.html#installation-and-usage)
- [ ] User documentation
_Recommended (language-independent)_- [ ] Developer documentation and setup
- [ ] Examples and tutorials
- [ ] [Tooling](https://awegroup.github.io/developer-guide/docs/software-documentation.html#tooling) (Sphinx, JupyterBook, Quarto)
_Optional (language-independent)_- [ ] [Hosting](https://awegroup.github.io/developer-guide/docs/software-documentation.html#hosting) (GitHub Pages, Readthedocs)
A.4 Software testing
_Essential (language-independent)_- [ ] User installation testing
_Recommended (language-independent)_- [ ] Write [tests](https://awegroup.github.io/developer-guide/docs/testing.html) for your software
- [ ] Implement these [useful testing concepts](https://awegroup.github.io/developer-guide/docs/testing.html#useful-testing-concepts) in your software
- [ ] Make use of [Continuous Integration](https://the-turing-way.netlify.app/reproducible-research/ci/ci-options.html)
A.5 Software quality
_Essential (language-independent)_- [ ] [Organize](https://awegroup.github.io/developer-guide/docs/development-workflow.html) your project for reproducibility
- [ ] [Record](https://coderefinery.github.io/reproducible-research/dependencies/) and [manage](https://awegroup.github.io/developer-guide/docs/development-workflow.html#dependency-management) your software dependencies
- [ ] Follow [AWE coding style](https://awegroup.github.io/developer-guide/docs/coding-style.html)
_Recommended (language-independent)_- [ ] Implement [refactoring](https://awegroup.github.io/developer-guide/docs/refactoring.html#refactoring) in your workflow
_Recommended for Python_- [ ] Follow [PEP8 guidelines](https://realpython.com/python-pep8/)
- [ ] Use a tool for dependency management (e.g. [poetry](https://the-turing-way.netlify.app/reproducible-research/renv/renv-package.html))
- [ ] Use linter (e.g. [pylint](https://pypi.org/project/pylint/), [flake8](https://pypi.org/project/flake8/))
- [ ] Use a formatter (e.g. [black](https://github.com/psf/black))
A.6 Releases
_Essential (language-independent)_- [ ] Obtain a DOI ([Zenodo](https://zenodo.org/) or [4TU.ResearchData](https://data.4tu.nl/info/about-your-data/getting-started))
_Recommended (language-independent)_- [ ] [Semantic versioning](https://semver.org/)
- [ ] [CHANGELOG](https://keepachangelog.com/en/1.0.0/)
- [ ] Tagged releases ([GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github))
- [ ] [Release guide](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository)
- [ ] Continuous Integration for build and release
_Recommended for Python_- [ ] Upload to registry (e.g. [PyPI](https://realpython.com/pypi-publish-python-package/), [conda](https://conda.io/projects/conda-build/en/latest/user-guide/tutorials/build-pkgs.html))
A.7 Collaboration
_Recommended (language-independent)_- [ ] [Contribution guidelines](hhttps://awegroup.github.io/developer-guide/docs/documentation.html#citation)
- [ ] [Code of conduct](https://docs.github.com/en/communities/setting-up-your-project-for-healthy-contributions/adding-a-code-of-conduct-to-your-project)