Skip to content

Commit 650227b

Browse files
Revamp README (#53)
* Revamp README * whitespace * Refine text * How do I use it? * Better wording Co-authored-by: Brigitta Sipőcz <b.sipocz@gmail.com> * Avoid 'click here' vibes * Be specific Co-authored-by: Brigitta Sipőcz <b.sipocz@gmail.com> * Minor edits --------- Co-authored-by: Brigitta Sipőcz <b.sipocz@gmail.com>
1 parent f0199e7 commit 650227b

File tree

4 files changed

+80
-46
lines changed

4 files changed

+80
-46
lines changed

README.md

Lines changed: 48 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,62 @@
11
# Executable Tutorials
22

3-
A repository demonstrating one way to manage and distribute interactive tutorials.
4-
See the [Guide to Contributing](https://scentific-python.org/executable-tutorials/contributing.html)
5-
for a good overview of what this is like to use.
3+
## Use Cases
64

7-
## Demo Links
5+
Many organizations maintain collections of tutorials addressing realistic
6+
problems in a science domain, with runnable code examples written and
7+
kept current by experts in the tools. They are useful as:
88

9-
- **[Tutorials](https://github.com/scientific-python/executable-tutorials/tree/main/tutorials)** are written in MyST Markdown.
10-
- Tutorials can be easily edited as notebooks in JupyterLab.
11-
- Executed tutorials are **[published](https://scientific-python.github.io/exeuctable-tutorials/)** on a GitHub Pages site.
12-
- **[Jupyter Lite (beta)](https://scientific-python.github.io/executable-tutorials/jupyterlite/lab/index.html)** (works only on the basic executable example so far, missing dependencies for others)
13-
- **[Binder](https://mybinder.org/v2/gh/scientific-python/executable-tutorials/notebooks)**
9+
- A trove of working snippets to copy and paste
10+
- A maintained resource for self-guided learning
11+
- A ready-to-use curriculum for hands-on workshops
12+
- A suite of science domain-specific "integration tests" for the showcased libraries
1413

15-
### Notes on the notebook file format
14+
## Key Features
1615

17-
We do use MyST Markdown format for the notebooks, please visit [the upstream documentation](https://mystmd.org/guide/md-vs-ipynb) to learn more about the reasoning behind the choice.
18-
However, we add it here that you can easily have the same user experience in JupyterLab if these two dependencies are installed:
19-
- [jupytext library](https://pypi.org/project/jupytext/)
20-
- [jupyterlab-myst JupyterLab extension](https://pypi.org/project/jupyterlab-myst/)
16+
This repository demonstrates one way to configure a collection of tutorials,
17+
covering some core features:
2118

19+
- Source is in [MyST Markdown][] which is easy for humans to edit and review.
20+
- The executed examples—code and results—are published as a
21+
[static site][static site example].
22+
- The examples can be opened as Jupyter notebooks to run and edit:
23+
- In a user's local environment
24+
- In the cloud using [Binder][binder example]
25+
- (Experimental) In the user's browser via a [Jupyter Lite app][jupyterlite example]
26+
- The examples can be tested using `pytest`, both locally and on CI.
2227

23-
## Goals
28+
## Try It Out
2429

25-
- Make content easy to explore and try in a variety of modes:
26-
- interactive and non-interactive
27-
- local and cloud-based
28-
- Jupyter and not-Jupyter
29-
- Document an accessible development workflow, so that non-experts can contribute.
30-
- Keep the infrastructure as simple as possible.
30+
- Read the [published examples][static site example].
3131

32-
## To Do
32+
- Open it on [Binder][binder example] to run the examples in the cloud.
3333

34-
- Test execution _of changed tutorials only_ in CI on PR.
35-
- Set up devcontainer.
36-
- Add example with additional dependencies.
34+
- Download and run the examples locally.
3735

38-
## Prior Art
36+
```sh
37+
git clone https://github.com/scientific-python/executable-tutorials
38+
```
3939

40-
Examples that this is drawing from:
40+
For users of [pixi][]:
4141

42-
- https://github.com/Caltech-IPAC/irsa-tutorials
43-
- https://github.com/MotherDuck-Open-Source/sql-tutorial
42+
```sh
43+
pixi run start
44+
```
45+
46+
Alternatively, install the requirements with pip and start JupyterLab.
47+
48+
```sh
49+
pip install -r requirements.txt
50+
jupyter lab
51+
```
52+
53+
## Make Your Own
54+
55+
See the [Guide for Maintainers][] to create your own collection of tutorials.
56+
57+
[Myst Markdown]: https://mystmd.org/guide/typography
58+
[static site example]: https://scientific-python.github.io/exeuctable-tutorials/
59+
[binder example]: https://mybinder.org/v2/gh/scientific-python/executable-tutorials/main
60+
[jupyterlite example]: https://scientific-python.github.io/executable-tutorials/jupyterlite/lab/index.html
61+
[pixi]: https://pixi.sh/
62+
[Guide for Maintainers]: https://scientific-python.github.io/executable-tutorials/maintainer-guide.html

index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,5 +24,5 @@ caption: Contributing
2424
---
2525
2626
contributing
27-
maintainers
27+
maintainer-guide
2828
```

maintainer-guide.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# Guide for Maintainers
2+
3+
This guide for configuring and maintaining collection of executable
4+
tutorials.
5+
6+
## Notes on the notebook file format
7+
8+
We do use MyST Markdown format for the notebooks, please visit
9+
[the upstream documentation](https://mystmd.org/guide/md-vs-ipynb)
10+
to learn more about the reasoning behind the choice. To provide a seamless
11+
user experience for users in JupyterLab, we employ some libraries [^1] and a
12+
little special configuration [^2].
13+
14+
## Specialized Patterns
15+
16+
Sometimes it is convenient to disable a job in a GitHub Action on certain Pull
17+
Requests. This may be added to the job to configure it to skip Pull Requests
18+
that have a given label called `LABEL`.
19+
20+
```yaml
21+
jobs:
22+
tests:
23+
if: ${{ !(github.event_name == 'pull_request') || !contains(github.event.pull_request.labels.*.name, 'LABEL') }}
24+
```
25+
26+
[^1]: [jupytext][] and the [jupyterlab-myst JupyterLab extension][]
27+
28+
[^2]: See `.binder/postBuild` and `.binder/overrides.json`.
29+
30+
[jupytext]: https://pypi.org/project/jupytext/
31+
[jupyterlab-myst JupyterLab extension]: https://pypi.org/project/jupyterlab-myst/

maintainers.md

Lines changed: 0 additions & 16 deletions
This file was deleted.

0 commit comments

Comments
 (0)