Skip to content

Commit 6a9ead0

Browse files
Leftovers. (#282)
Just before I forget: a few minor/trivial things we discussed in person but that I didn't make a ticket for 🤦. I also did a bit of a review of the text in the website's index.html. Mainly adding a mention of our template amongst the discussion of "use the community templates". It's a bit WET from the packaging page, but there's already a bit of duplication there and it's all probably sane from the point of view of a reader. I spotted a line that should have gone with #271 and a post-merging comment on #264. --------- Co-authored-by: Matt Graham <matthew.m.graham@gmail.com>
1 parent f3762b8 commit 6a9ead0

File tree

4 files changed

+56
-39
lines changed

4 files changed

+56
-39
lines changed

docs/index.md

+35-16
Original file line numberDiff line numberDiff line change
@@ -4,30 +4,49 @@ layout: home
44
nav_order: 1
55
---
66

7-
This site documents common tooling we use in Python projects at the [Advanced Research Computing center](https://www.ucl.ac.uk/arc/) (ARC) at [UCL](https://www.ucl.ac.uk).
7+
This site documents common tooling we use in research software Python projects
8+
at the [Centre for Advanced Research Computing](https://www.ucl.ac.uk/arc/)
9+
(ARC) at [UCL](https://www.ucl.ac.uk).
810

9-
It is not comprehensive, but intended as a forum to share knowledge across projects.
10-
Each page contains a table of packages or services that are useful when building a Python package.
11+
These pages started as a forum to share knowledge across projects and have now
12+
grown into a list of our default recommendations. Each page contains a table of
13+
packages, tools, or services that are useful when building a Python package.
1114
Each entry has
1215

13-
- a link to the package or service
14-
- a short summary of what it does
15-
- traffic lights
16-
- a link to a package developed by someone in ARC that uses it
16+
- a link to the package or service,
17+
- a short summary of what it does,
18+
- and traffic light!
1719

1820
## Choosing tools
1921

20-
If you are working within a larger community, always start with the same tools they recommend.
21-
For example, the [`napari`](https://napari.org/) community have [`cookiecutter-napari-plugin`](https://github.com/napari/cookiecutter-napari-plugin) and the [SciKit-Surgery](https://scikit-surgery.github.io/scikit-surgery/) community have [PythonTemplate](https://github.com/SciKit-Surgery/PythonTemplate), both used to create new Python-based libraries.
22-
This makes it easier for others in the community to contribute to your package, and once you get used to the structure makes it easier for you to contribute back to other packages.
23-
24-
Otherwise, each page on this site highlights recommended packages or services for each area.
25-
These should not be taken as set in stone for every project, but are a good place to start.
22+
If you are working within a larger community, always start with the same tools
23+
they recommend. For example, the [napari](https://napari.org/) community have a
24+
[`cookiecutter-napari-plugin`](https://github.com/napari/cookiecutter-napari-plugin)
25+
template and the
26+
[SciKit-Surgery](https://scikit-surgery.github.io/scikit-surgery/) community
27+
have [PythonTemplate](https://github.com/SciKit-Surgery/PythonTemplate), both
28+
used to create new Python-based libraries. Using common tooling and structure
29+
makes it easier for others in the community to contribute to your package. Once
30+
_you_ get used to the structure makes it easier for you to contribute back to
31+
other packages.
32+
33+
🍪 If you just want to get started with our recommendations, we have our own
34+
[template](https://github.com/UCL-ARC/python-tooling#using-this-template) that
35+
lives in the same repository as these pages.
36+
37+
Otherwise, each page on this site highlights recommended packages or services
38+
for each area. These should not be taken as set in stone for every project, but
39+
are a good place to start.
2640

2741
### Traffic lights
2842

2943
Each item has an (opinionated) traffic light. The meaning of these is:
3044

31-
- 🟢 At least one person in ARC uses this. We actively recommend using it above other tools. It is the single recommended package for a given purpose.
32-
- 🟠 We don't discourage using this, but it may duplicate functionality of a green tool.
33-
- 🔴 We actively discourage using this. This could be because it's no longer maintained, not open source, or difficult to use. Consider moving to alternatives if you're currently using something that's red. A reason for not using this is given.
45+
- 🟢 At least one person in ARC uses this. We actively recommend using it above
46+
other tools. It is the single recommended tool for a given purpose.
47+
- 🟠 We don't discourage using this, but it may duplicate functionality of a
48+
green tool.
49+
- 🔴 We actively discourage using this. This could be because it's no longer
50+
maintained, not open source, or difficult to use. Consider moving to
51+
alternatives if you're currently using something that's red. A reason for not
52+
using this is given.

docs/pages/jupyter-notebooks.md

+5-5
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@ Notebooks can also be a valid alternative to Python scripts for running and reco
1111

1212
## Live executable environments
1313

14-
| Name | Short description | 🚦 |
15-
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-: |
16-
| [binder](https://mybinder.org/) | Turns a Git repository into a collection of interactive notebooks | 🟢 |
17-
| [Google Colab](https://colab.google/) | Colab is a hosted Jupyter Notebook service that requires no setup to use and provides free access to computing resources, including GPUs and TPUs. | 🟢 |
18-
| [GitHub codespace with JupyterLab](https://docs.github.com/en/codespaces/developing-in-a-codespace/getting-started-with-github-codespaces-for-machine-learning#opening-your-codespace-in-jupyterlab) | A codespace is a development environment that is hosted in the cloud and can run [Python and Jupyter notebooks](https://github.com/github/codespaces-jupyter) | 🟠 |
14+
| Name | Short description | 🚦 |
15+
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-: |
16+
| [binder](https://mybinder.org/) | Turns a Git repository into a collection of interactive notebooks | 🟢 |
17+
| [Google Colab](https://colab.google/) | Colab is a hosted Jupyter Notebook service that requires no setup to use and provides free access to computing resources, including GPUs and TPUs. | 🟢 |
18+
| [GitHub codespaces with JupyterLab](https://docs.github.com/en/codespaces/developing-in-a-codespace/getting-started-with-github-codespaces-for-machine-learning#opening-your-codespace-in-jupyterlab) | A codespace is a development environment that is hosted in the cloud and can run [Python and Jupyter notebooks](https://github.com/github/codespaces-jupyter) | 🟠 |
1919

2020
## Linting
2121

docs/pages/templates.md

+11-8
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,23 @@ layout: default
44
nav_order: 2
55
---
66

7-
⚠️ This page is still under construction! ⚠️
8-
97
# Package templates
108

119
## Recommended ARC template
1210

13-
This [UCL-ARC/python-tooling](https://github.com/UCL-ARC/python-tooling) repository contains our recommended package template for new ARC projects.
14-
It pre-configures the recommended tools listed in the other pages of this site.
15-
If you're making a package within one of the communities listed below, we recommend using their template instead.
11+
The [UCL-ARC/python-tooling](https://github.com/UCL-ARC/python-tooling)
12+
repository contains our recommended package template for new ARC projects. It
13+
pre-configures the recommended tools listed in the other pages of this site. If
14+
you are working on a new project, our template should be a good starting point!
15+
16+
If you're making a package for a community that already has a template in
17+
general use (some examples are listed below) we recommend using their template
18+
instead.
1619

1720
## Domain specific templates
1821

19-
These templates are used by specific communities.
20-
If you're making a package within one of these communities, we recommend using their package template.
22+
These templates are used by specific communities. If you're making a package
23+
within one of these communities, we recommend using their package template.
2124

2225
| Name | Short description |
2326
| ------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ |
@@ -27,7 +30,7 @@ If you're making a package within one of these communities, we recommend using t
2730

2831
## Template engines
2932

30-
These are packages that can be used for creating your own package template.
33+
These are tools that can be used for creating your own package template.
3134

3235
| Name | Short description | 🚦 |
3336
| ----------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | :-: |

docs/pages/testing.md

+5-10
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,11 @@ layout: default
77

88
## Test runners
99

10-
| Name | Short description | 🚦 |
11-
| ----------------------------------------------------------------------------- | ------------------------------------------------------------------------------ | :-: |
12-
| [pytest](https://docs.pytest.org/en/stable/contents.html) | A framework for writing and running tests. | 🟢 |
13-
| [tox](https://tox.wiki/en/latest/index.html) | A framework that allows running tests and packaging in different environments. | 🟢 |
14-
| [unittest](https://docs.python.org/dev/library/unittest.html#module-unittest) | A framework built in to Python for writing and running tests. | 🟠 |
15-
16-
<details>
17-
<summary>🟢 explanation</summary>
18-
We recommend `pytest` over `unittest` because `pytest` tends to encourage a cleaner style, there are also extensive plugins and it's in widespread use.
19-
</details>
10+
| Name | Short description | 🚦 |
11+
| ----------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-: |
12+
| [pytest](https://docs.pytest.org/en/stable/contents.html) | A framework for writing and running tests. We recommend `pytest` over `unittest` because `pytest` tends to encourage a cleaner style, there are also extensive plugins and it's in widespread use. | 🟢 |
13+
| [tox](https://tox.wiki/en/latest/index.html) | A framework that allows running tests and packaging in different environments. | 🟢 |
14+
| [unittest](https://docs.python.org/dev/library/unittest.html#module-unittest) | Python's built in framework for writing and running tests. Encourages use of classes as test fixtures. | 🟠 |
2015

2116
## pytest plugins
2217

0 commit comments

Comments
 (0)