diff --git a/docs/pages/benchmarking.md b/docs/pages/benchmarking.md index 85fac229..3f0a8f0e 100644 --- a/docs/pages/benchmarking.md +++ b/docs/pages/benchmarking.md @@ -5,11 +5,11 @@ layout: default # Benchmarking -| Name | Short description | 🚦 | -| ------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-: | -| [pyinstrument](https://pyinstrument.readthedocs.io/en/stable) | Python profiler. Tells you how long individual lines of code take to run, so you can focus on the slowest part of your program to speed it up. | 🟒 | -| [snakeviz](https://jiffyclub.github.io/snakeviz/) | Browser based graphical viewer for the output of Python’s cProfile module. | 🟒 | -| [asv](https://asv.readthedocs.io/en/stable/) | A tool for benchmarking Python packages over their lifetime. Allows you to write benchmarks and then run them against every commit in the repository, to identify where performance increased or decreased. | 🟒 | -| [memray](https://bloomberg.github.io/memray/) | Memray tracks and reports memory allocations, both in Python code and in compiled extension modules. It also has a [plugin](https://pytest-memray.readthedocs.io/en/latest/) for easy integration with pytest. However, it only works on Linux and MacOS, and cannot be installed on other platforms. | 🟠 | -| [line_profiler](https://pypi.org/project/line-profiler/) | It is a module for doing line-by-line profiling of functions. | 🟠 | -| [memory_profiler](https://pypi.org/project/memory-profiler/) | This package is no longer actively maintained. It is a python module for monitoring memory consumption of a process as well as line-by-line analysis of memory consumption. | πŸ”΄ | +| Name | Short description | 🚦 | Used by | +| ------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --- | :-----: | +| [pyinstrument](https://pyinstrument.readthedocs.io/en/stable) | Python profiler. Tells you how long individual lines of code take to run, so you can focus on the slowest part of your program to speed it up. | 🟒 | | +| [snakeviz](https://jiffyclub.github.io/snakeviz/) | Browser based graphical viewer for the output of Python’s cProfile module. | 🟒 | | +| [asv](https://asv.readthedocs.io/en/stable/) | A tool for benchmarking Python packages over their lifetime. Allows you to write benchmarks and then run them against every commit in the repository, to identify where performance increased or decreased. | 🟒 | | +| [memray](https://bloomberg.github.io/memray/) | Memray tracks and reports memory allocations, both in Python code and in compiled extension modules. It also has a [plugin](https://pytest-memray.readthedocs.io/en/latest/) for easy integration with pytest. However, it only works on Linux and MacOS, and cannot be installed on other platforms. | 🟠 | | +| [line_profiler](https://pypi.org/project/line-profiler/) | It is a module for doing line-by-line profiling of functions. | 🟠 | | +| [memory_profiler](https://pypi.org/project/memory-profiler/) | This package is no longer actively maintained. It is a python module for monitoring memory consumption of a process as well as line-by-line analysis of memory consumption. | πŸ”΄ | | diff --git a/docs/pages/bindings.md b/docs/pages/bindings.md index 1b7ddc65..db1f2002 100644 --- a/docs/pages/bindings.md +++ b/docs/pages/bindings.md @@ -5,10 +5,10 @@ layout: default # Bindings -| Name | Short description | 🚦 | -| --------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | :-: | -| [Cython](https://cython.readthedocs.io/en/latest/src/userguide/wrapping_CPlusPlus.html) | C/C++ binding library with numpy array integration | 🟒 | -| [ctypes](https://docs.python.org/3.8/library/ctypes.html) | Native python method for calling functions in shared C libraries | 🟠 | -| [pybind11](https://github.com/pybind/pybind11) | Bindings to C++ with a steep learning curve | 🟠 | -| [f2py](https://numpy.org/devdocs/f2py/f2py.getting-started.html) | Bindings to Fortran developed by numpy | 🟠 | -| [pyO3](https://github.com/PyO3/pyo3) | Straightforward bindings to rust with support for [packaging](https://github.com/PyO3/maturin) | 🟒 | +| Name | Short description | 🚦 | Used by | +| --------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | --- | :-----: | +| [Cython](https://cython.readthedocs.io/en/latest/src/userguide/wrapping_CPlusPlus.html) | C/C++ binding library with numpy array integration | 🟒 | | +| [ctypes](https://docs.python.org/3.8/library/ctypes.html) | Native python method for calling functions in shared C libraries | 🟠 | | +| [pybind11](https://github.com/pybind/pybind11) | Bindings to C++ with a steep learning curve | 🟠 | | +| [f2py](https://numpy.org/devdocs/f2py/f2py.getting-started.html) | Bindings to Fortran developed by numpy | 🟠 | | +| [pyO3](https://github.com/PyO3/pyo3) | Straightforward bindings to rust with support for [packaging](https://github.com/PyO3/maturin) | 🟒 | | diff --git a/docs/pages/ci.md b/docs/pages/ci.md index f6fd505f..31b139b3 100644 --- a/docs/pages/ci.md +++ b/docs/pages/ci.md @@ -5,12 +5,12 @@ layout: default # Continuous integration -| Name | Short description | 🚦 | -| ------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | :-: | -| [GitHub Actions](https://docs.github.com/en/actions) | Continuous integration and continuous delivery platform (integrated with GitHub). | 🟒 | -| [Travis CI](https://docs.travis-ci.com/) | Continuous integration and continuous delivery platform. | 🟠 | -| [AppVeyor](https://www.appveyor.com/docs/) | Continuous integration and continuous delivery platform. | 🟠 | -| [Bamboo](https://confluence.atlassian.com/bamboo/bamboo-documentation-289276551.html) | Atlassian continuous integration and continuous delivery platform. | 🟠 | +| Name | Short description | 🚦 | Used by | +| ------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [GitHub Actions](https://docs.github.com/en/actions) | Continuous integration and continuous delivery platform (integrated with GitHub). | 🟒 | [Crabs Exploration](https://github.com/SainsburyWellcomeCentre/crabs-exploration), [DiRAC](https://github.com/UCL-ARC/dirac-swift-api), [RRED](https://github.com/UCL-ARC/rred-reports) | +| [Travis CI](https://docs.travis-ci.com/) | Continuous integration and continuous delivery platform. | 🟠 | | +| [AppVeyor](https://www.appveyor.com/docs/) | Continuous integration and continuous delivery platform. | 🟠 | | +| [Bamboo](https://confluence.atlassian.com/bamboo/bamboo-documentation-289276551.html) | Atlassian continuous integration and continuous delivery platform. | 🟠 | |
🟒 explanation @@ -19,7 +19,7 @@ We have many projects using github CI, it's both convenient and works well. It's # Coverage monitoring -| Name | Short description | 🚦 | -| ---------------------------------------- | ----------------------------------------------- | :-: | -| [Codecov](https://docs.codecov.com/docs) | Hosted service to report code coverage metrics. | 🟒 | -| [Coveralls](https://docs.coveralls.io/) | Hosted service to report code coverage metrics. | 🟠 | +| Name | Short description | 🚦 | Used by | +| ---------------------------------------- | ----------------------------------------------- | --- | :-----: | +| [Codecov](https://docs.codecov.com/docs) | Hosted service to report code coverage metrics. | 🟒 | | +| [Coveralls](https://docs.coveralls.io/) | Hosted service to report code coverage metrics. | 🟠 | | diff --git a/docs/pages/dev.md b/docs/pages/dev.md index 0eb064ea..da702a89 100644 --- a/docs/pages/dev.md +++ b/docs/pages/dev.md @@ -5,27 +5,27 @@ layout: default # Integrated Development Environments (IDEs) -| Name | Short description | 🚦 | -| -------------------------------------------------------- | ----------------------------------- | :-: | -| [Visual Studio Code](https://code.visualstudio.com/docs) | A light-weight general-purpose IDE. | 🟠 | -| [PyCharm](https://www.jetbrains.com/pycharm/) | A Python IDE by JetBrains. | 🟠 | +| Name | Short description | 🚦 | Used by | +| -------------------------------------------------------- | ----------------------------------- | --- | :-----: | +| [Visual Studio Code](https://code.visualstudio.com/docs) | A light-weight general-purpose IDE. | 🟠 | | +| [PyCharm](https://www.jetbrains.com/pycharm/) | A Python IDE by JetBrains. | 🟠 | | # Virtual environments -| Name | Short description | 🚦 | -| --------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | :-: | -| [mamba](https://mamba.readthedocs.io/en/latest/user_guide/mamba.html) | A tool to manage conda environments. Faster than conda for installing dependencies. | 🟒 | -| [conda](https://conda.io/projects/conda/en/latest/) | Conda quickly installs, runs, and updates packages and their dependencies. | 🟠 | -| [pipenv](https://pipenv.pypa.io/en/latest/) | A tool that automatically creates and manages a virtualenv for your projects. | 🟠 | -| [venv](https://docs.python.org/3/library/venv.html) | A tool to create isolated Python environments. | πŸ”΄ | -| [virtualenv](https://virtualenv.pypa.io/en/latest/) | A tool to create isolated Python environments which offers more features than venv. | 🟠 | -| [pyenv](https://github.com/pyenv/pyenv) | A tool that lets you easily switch between multiple versions of Python. | 🟠 | +| Name | Short description | 🚦 | Used by | +| --------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | --- | :-----: | +| [mamba](https://mamba.readthedocs.io/en/latest/user_guide/mamba.html) | A tool to manage conda environments. Faster than conda for installing dependencies. | 🟒 | | +| [conda](https://conda.io/projects/conda/en/latest/) | Conda quickly installs, runs, and updates packages and their dependencies. | 🟠 | | +| [pipenv](https://pipenv.pypa.io/en/latest/) | A tool that automatically creates and manages a virtualenv for your projects. | 🟠 | | +| [venv](https://docs.python.org/3/library/venv.html) | A tool to create isolated Python environments. | πŸ”΄ | | +| [virtualenv](https://virtualenv.pypa.io/en/latest/) | A tool to create isolated Python environments which offers more features than venv. | 🟠 | | +| [pyenv](https://github.com/pyenv/pyenv) | A tool that lets you easily switch between multiple versions of Python. | 🟠 | | # Other -| Name | Short description | 🚦 | -| ----------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | :-: | -| [jedi](https://jedi.readthedocs.io/en/latest/) | Refactoring and autocompletion used in IDEs. | | -| [rope](https://rope.readthedocs.io/en/latest/overview.html) | Refactoring library. | | -| [tqdm](https://pypi.org/project/tqdm/2.2.3/) | Progress bar for loops. | | -| [psutil](https://psutil.readthedocs.io/en/latest/) | System monitoring, profiling, limiting process resources and the management of running processes. | | +| Name | Short description | 🚦 | Used by | +| ----------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | --- | :-------------------------------------------------------------------------------------------------------------------: | +| [jedi](https://jedi.readthedocs.io/en/latest/) | Refactoring and autocompletion used in IDEs. | 🟒 | | +| [rope](https://rope.readthedocs.io/en/latest/overview.html) | Refactoring library. | | | +| [tqdm](https://pypi.org/project/tqdm/2.2.3/) | Progress bar for loops. | 🟒 | [RRED](https://github.com/UCL-ARC/rred-reports) | +| [psutil](https://psutil.readthedocs.io/en/latest/) | System monitoring, profiling, limiting process resources and the management of running processes. | 🟒 | [Puppet Submitty](https://github.com/UCL-ARC/puppet-submitty), [Quality Workflow tool](https://github.com/UCL-ARC/qw) | diff --git a/docs/pages/docs.md b/docs/pages/docs.md index 4c96a786..cf04bb57 100644 --- a/docs/pages/docs.md +++ b/docs/pages/docs.md @@ -7,12 +7,12 @@ layout: default ## Doc building -| Name | Short description | 🚦 | Used by | -| ----------------------------------------------- | --------------------------------------------------------------- | :-: | ---------------------------------------------------------------------- | -| [sphinx](https://www.sphinx-doc.org/en/master/) | Generates documentation from reStructuredText or Markdown files | 🟒 | [WAZP](https://github.com/SainsburyWellcomeCentre/WAZP/tree/main/docs) | -| [mkdocs](https://www.mkdocs.org/) | Generates documentation from Markdown files | 🟠 | | -| [pdoc](https://pdoc.dev/) | Auto-generates API documentation from docstrings | 🟠 | [sleplet](https://github.com/astro-informatics/sleplet/) | -| [gitbook](https://www.gitbook.com/) | General documentation builder; integrates with GitHub | 🟠 | | +| Name | Short description | 🚦 | Used by | +| ----------------------------------------------- | --------------------------------------------------------------- | :-: | ----------------------------------------------------------------------------------------------------- | +| [sphinx](https://www.sphinx-doc.org/en/master/) | Generates documentation from reStructuredText or Markdown files | 🟒 | [WAZP](https://github.com/SainsburyWellcomeCentre/WAZP/tree/main/docs) | +| [mkdocs](https://www.mkdocs.org/) | Generates documentation from Markdown files | 🟠 | | +| [pdoc](https://pdoc.dev/) | Auto-generates API documentation from docstrings | 🟠 | [sleplet](https://github.com/astro-informatics/sleplet/), [MICI](https://github.com/matt-graham/mici) | +| [gitbook](https://www.gitbook.com/) | General documentation builder; integrates with GitHub | 🟠 | |
🟒 explanation diff --git a/docs/pages/linting.md b/docs/pages/linting.md index ae9edebf..a1be6abd 100644 --- a/docs/pages/linting.md +++ b/docs/pages/linting.md @@ -9,21 +9,21 @@ See [here for example configuration](https://github.com/UCL-ARC/python-tooling/b ## Code formatting -| Name | Short description | 🚦 | -| -------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-: | -| [ruff-format](https://github.com/astral-sh/ruff) | Like `black` but super fast. | 🟒 | -| [isort](https://pycqa.github.io/isort/) | Sorts imports alphabetically, splits into first/third party, works on python & cython code. | 🟒 | -| [pre-commit](https://pre-commit.com/) | Universal tool which performs a git hook on commit, allows you to run linters/formatters on any code. A tool to automatically run many of the tools listed below. | 🟒 | -| [ruff](https://github.com/astral-sh/ruff) | A very fast linter which incorporates a range of other linters. | 🟒 | -| [toml-sort](https://toml-sort.readthedocs.io/en/latest/) | Sorts TOML files which are now part of PEP 8. | 🟒 | -| [black](https://black.readthedocs.io/en/stable/) | Opinionated formatter, defaults to 88 characters per line. | 🟠 | -| [autopep8](https://github.com/hhatto/autopep8) | Formatter which conforms to PEP 8. | 🟠 | -| [pycodestyle](https://pycodestyle.pycqa.org/en/latest/) | Linter which checks for errors. | 🟠 | -| [pyflakes](https://github.com/PyCQA/pyflakes) | Linter which checks for errors. | 🟠 | -| [pylint](https://pylint.readthedocs.io/en/latest/) | Linter which checks for errors. | 🟠 | -| [sourcery](https://sourcery.ai/) | An AI code reviewer which simplifies code, has a free version but can pay for fancier features. | 🟠 | -| [yapf](https://github.com/google/yapf) | Google formatter. | 🟠 | -| [flake8](https://flake8.pycqa.org/en/latest/) | Linter which complains if code doesn't follow a rule. Does not support modern `pyproject.toml` configuration. | πŸ”΄ | +| Name | Short description | 🚦 | Used by | +| -------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | --- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | +| [ruff-format](https://github.com/astral-sh/ruff) | Like `black` but super fast. | 🟒 | | +| [isort](https://pycqa.github.io/isort/) | Sorts imports alphabetically, splits into first/third party, works on python & cython code. | 🟒 | | +| [pre-commit](https://pre-commit.com/) | Universal tool which performs a git hook on commit, allows you to run linters/formatters on any code. A tool to automatically run many of the tools listed below. | 🟒 | [DiRAC](https://github.com/UCL-ARC/dirac-swift-api), [RRED](https://github.com/UCL-ARC/rred-reports), [Crabs Exploration](https://github.com/SainsburyWellcomeCentre/crabs-exploration) | +| [ruff](https://github.com/astral-sh/ruff) | A very fast linter which incorporates a range of other linters. | 🟒 | [DiRAC](https://github.com/UCL-ARC/dirac-swift-api), [RRED](https://github.com/UCL-ARC/rred-reports), [Crabs Exploration](https://github.com/SainsburyWellcomeCentre/crabs-exploration) | +| [toml-sort](https://toml-sort.readthedocs.io/en/latest/) | Sorts TOML files which are now part of PEP 8. | 🟒 | | +| [black](https://black.readthedocs.io/en/stable/) | Opinionated formatter, defaults to 88 characters per line. | 🟠 | [DiRAC](https://github.com/UCL-ARC/dirac-swift-api), [Crabs Exploration](https://github.com/SainsburyWellcomeCentre/crabs-exploration), [autodE](https://github.com/duartegroup/autodE) | +| [autopep8](https://github.com/hhatto/autopep8) | Formatter which conforms to PEP 8. | 🟠 | | +| [pycodestyle](https://pycodestyle.pycqa.org/en/latest/) | Linter which checks for errors. | 🟠 | | +| [pyflakes](https://github.com/PyCQA/pyflakes) | Linter which checks for errors. | 🟠 | | +| [pylint](https://pylint.readthedocs.io/en/latest/) | Linter which checks for errors. | 🟠 | | +| [sourcery](https://sourcery.ai/) | An AI code reviewer which simplifies code, has a free version but can pay for fancier features. | 🟠 | | +| [yapf](https://github.com/google/yapf) | Google formatter. | 🟠 | | +| [flake8](https://flake8.pycqa.org/en/latest/) | Linter which complains if code doesn't follow a rule. Does not support modern `pyproject.toml` configuration. | πŸ”΄ | |
🟒 explanation @@ -45,6 +45,6 @@ Flake8 is not recommended because it doesn't support `pyproject.toml` and [seemi ## Type checking -| Name | Short description | 🚦 | -| ---------------------------------------------- | ----------------------------------------------------------------------------- | :-: | -| [mypy](https://mypy.readthedocs.io/en/stable/) | Static type checker, won't fail if no typing but will if typing is incorrect. | 🟒 | +| Name | Short description | 🚦 | Used by | +| ---------------------------------------------- | ----------------------------------------------------------------------------- | --- | :--------------------------------------------------------------------------------------------------------------------------------: | +| [mypy](https://mypy.readthedocs.io/en/stable/) | Static type checker, won't fail if no typing but will if typing is incorrect. | 🟒 | [Crabs Exploration](https://github.com/SainsburyWellcomeCentre/crabs-exploration), [autodE](https://github.com/duartegroup/autodE) | diff --git a/docs/pages/packaging.md b/docs/pages/packaging.md index 130ffa16..a97de7d6 100644 --- a/docs/pages/packaging.md +++ b/docs/pages/packaging.md @@ -5,17 +5,17 @@ layout: default # Packaging -| Name | Short description | Used by | 🚦 | -| --------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------- | :-: | -| [build](https://pypa-build.readthedocs.io/en/stable/) | Straightforward tool to build a Python package. | | 🟒 | -| [setuptools](https://setuptools.pypa.io) | A widely used build backend, used to configure a Python package. | [autodE](https://github.com/duartegroup/autodE) | 🟒 | -| [setuptools-scm](https://github.com/pypa/setuptools_scm/) | Provides automatic versioning Python packages. Also automatically adds all files under source control to the sdist / wheel. | [btrack](https://github.com/quantumjot/btrack) | 🟒 | -| [cibuildwheel](https://cibuildwheel.readthedocs.io) | Builds python wheels for the main operating systems on continuous integration runs (e.g. GitHub actions). | [streamtracer](https://github.com/dstansby/streamtracer) | 🟒 | +| Name | Short description | 🚦 | Used by | +| --------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- | --- | :------------------------------------------------------: | +| [build](https://pypa-build.readthedocs.io/en/stable/) | Straightforward tool to build a Python package. | 🟒 | | +| [setuptools](https://setuptools.pypa.io) | A widely used build backend, used to configure a Python package. | 🟒 | [autodE](https://github.com/duartegroup/autodE) | +| [setuptools-scm](https://github.com/pypa/setuptools_scm/) | Provides automatic versioning Python packages. Also automatically adds all files under source control to the sdist / wheel. | 🟒 | [btrack](https://github.com/quantumjot/btrack) | +| [cibuildwheel](https://cibuildwheel.readthedocs.io) | Builds python wheels for the main operating systems on continuous integration runs (e.g. GitHub actions). | 🟒 | [streamtracer](https://github.com/dstansby/streamtracer) | ## Conda These tools are helpful if you're looking to publish your package on [conda-forge](https://conda-forge.org/), so users can install it through the [conda](https://docs.conda.io/en/latest/) or [mamba](https://mamba.readthedocs.io/en/latest/index.html) package managers. -| Name | Short description | Used by | 🚦 | -| --------------------------------------------------------- | --------------------------------------------------------------------------- | ------- | :-: | -| [GraySkull](https://github.com/conda-incubator/grayskull) | A tool for automatic conda recipe generation (aimed at conda-forge, above). | | 🟒 | +| Name | Short description | 🚦 | Used by | +| --------------------------------------------------------- | --------------------------------------------------------------------------- | --- | :-----: | +| [GraySkull](https://github.com/conda-incubator/grayskull) | A tool for automatic conda recipe generation (aimed at conda-forge, above). | 🟒 | | diff --git a/docs/pages/templates.md b/docs/pages/templates.md index fc290b80..5002c044 100644 --- a/docs/pages/templates.md +++ b/docs/pages/templates.md @@ -29,10 +29,10 @@ If you're making a package within one of these communities, we recommend using t These are packages that can be used for creating your own package template. -| Name | Short description | 🚦 | -| ----------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | :-: | -| [Cookiecutter](https://github.com/cookiecutter/cookiecutter) | Widely-used tool for creating project templates. | 🟒 | -| [Cookieninja](https://github.com/cookieninja-generator/cookieninja) | A fork of Cookiecutter that is not actively maintained. | πŸ”΄ | -| [Cruft](https://github.com/cruft/cruft) | Can be used to create projects from a cookiecutter template and to keep the project configuration in sync with the template. | 🟠 | -| [Copier](https://github.com/copier-org/copier) | A tool to create project templates that are highly configurable. Project configuration can be kept in sync with the templae. | 🟠 | -| [GitHub templates](https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-template-repository) | GitHub repositories can be used as templates, but they are not configurable. | 🟠 | +| Name | Short description | 🚦 | Used by | +| ----------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | --- | :-----: | +| [Cookiecutter](https://github.com/cookiecutter/cookiecutter) | Widely-used tool for creating project templates | 🟒 | | +| [Cruft](https://github.com/cruft/cruft) | Can be used to create projects from a cookiecutter template and to keep the project configuration in sync with the template. | 🟠 | | +| [Copier](https://github.com/copier-org/copier) | A tool to create project templates that are highly configurable. Project configuration can be kept in sync with the templae. | 🟠 | | +| [GitHub templates](https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-template-repository) | GitHub repositories can be used as templates, but they are not configurable. | 🟠 | | +| [Cookieninja](https://github.com/cookieninja-generator/cookieninja) | A fork of Cookiecutter that is not actively maintained. | πŸ”΄ | | diff --git a/docs/pages/testing.md b/docs/pages/testing.md index 8cc5dcce..d2d60a91 100644 --- a/docs/pages/testing.md +++ b/docs/pages/testing.md @@ -7,11 +7,11 @@ layout: default ## Test runners -| Name | Short description | 🚦 | -| ----------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | :-: | -| [pytest](https://docs.pytest.org/en/stable/contents.html) | A framework for writing and running tests. | 🟒 | -| [tox](https://tox.wiki/en/latest/index.html) | A framework that allows running tests and packaging in different environments. | 🟒 | -| [unittest](https://docs.python.org/dev/library/unittest.html#module-unittest) | A framework built in to Python for writing and running tests. | 🟠 | +| Name | Short description | 🚦 | Used by | +| ----------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | --- | :------------------------------------------------------------------------------------------------------------------------------------: | +| [pytest](https://docs.pytest.org/en/stable/contents.html) | A framework for writing and running tests. | 🟒 | [RRED](https://github.com/UCL-ARC/rred-reports), [DiRAC](https://github.com/UCL-ARC/dirac-swift-api) | +| [tox](https://tox.wiki/en/latest/index.html) | A framework that allows running tests and packaging in different environments. | 🟒 | [DiRAC](https://github.com/UCL-ARC/dirac-swift-api), [Crabs Exploration](https://github.com/SainsburyWellcomeCentre/crabs-exploration) | +| [unittest](https://docs.python.org/dev/library/unittest.html#module-unittest) | A framework built in to Python for writing and running tests. | 🟠 | |
🟒 explanation @@ -20,7 +20,7 @@ We recommend `pytest` over `unittest` because `pytest` tends to encourage a clea ## pytest plugins -| Name | Short description | 🚦 | -| ---------------------------------------------------------------------- | ------------------------------------------------------------------------- | :-: | -| [pytest-cov](https://pytest-cov.readthedocs.io/en/latest/index.html) | A framework to generate coverage reports that plays nicely with `pytest`. | 🟒 | -| [pytest-mock](https://pytest-mock.readthedocs.io/en/latest/index.html) | A framework to mock/patch objects that plays nicely with `pytest`. | 🟒 | +| Name | Short description | 🚦 | Used by | +| ---------------------------------------------------------------------- | ------------------------------------------------------------------------- | --- | :-------------------------------------------------: | +| [pytest-cov](https://pytest-cov.readthedocs.io/en/latest/index.html) | A framework to generate coverage reports that plays nicely with `pytest`. | 🟒 | [DiRAC](https://github.com/UCL-ARC/dirac-swift-api) | +| [pytest-mock](https://pytest-mock.readthedocs.io/en/latest/index.html) | A framework to mock/patch objects that plays nicely with `pytest`. | 🟒 | [DiRAC](https://github.com/UCL-ARC/dirac-swift-api) |