You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .github/workflows/template-check-version.yml
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -49,6 +49,6 @@ jobs:
49
49
run: |
50
50
gh issue --repo ${{ github.repository }} \
51
51
create --title "Template update" \
52
-
--body "A new version of the template has been published. Please update this project using \`copier update --skip-answered --defaults\` and review changes. If you need help, refer to the \`clio\` documentation or reach out to the calliope project team."
52
+
--body "A new version of the template has been published. Please update this project using \`copier update --skip-answered --defaults\` and review changes. If you need help, refer to the Modelblocks documentation or reach out to the project team."
Copy file name to clipboardExpand all lines: README.md
+39-35Lines changed: 39 additions & 35 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,18 +1,48 @@
1
-
# Data module template
1
+
# Modelblocks data module template
2
2
3
-
A template for modular data workflows using [`snakemake`](https://snakemake.readthedocs.io/en/stable/), part of the [`clio`](https://clio.readthedocs.io/) toolset.
3
+
A template for modular data workflows using [`snakemake`](https://snakemake.readthedocs.io/en/stable/) workflows, part of the [Modelblocks](https://www.modelblocks.org/) toolset.
4
+
5
+
> [!TIP]
6
+
> Looking for general information on Modelblocks?
7
+
> Check the [Modelblocks](https://www.modelblocks.org/) website and our [documentation and guidelines](https://modelblocks.readthedocs.io/en).
4
8
5
9
## Resources
6
10
7
-
To familiarise yourself with `clio` data modules:
11
+
To familiarise yourself with Modelblocks data modules:
8
12
9
13
- Check the auto-generated minimal example. You can find it in `tests/integration/Snakefile`.
10
-
- Read about the `clio` approach in [our documentation](https://clio.readthedocs.io/).
11
14
- Read about `snakemake` modularisation in [their documentation](https://snakemake.readthedocs.io/en/stable/snakefiles/modularization.html#modules).
12
15
16
+
## Features
17
+
18
+
- Standardised layout compliant with the [snakemake workflow catalogue's](https://snakemake.github.io/snakemake-workflow-catalog/#) listing requirements, enabling them to be automatically included in their listings once published. Read more about those requirements [here](https://snakemake.github.io/snakemake-workflow-catalog/docs/catalog.html#standardized-usage-workflows).
19
+
- Standardised input-output structure across modules:
20
+
-`resources/`: files needed for the module's processes.
21
+
-`user/`: files that should be provided by users. Document them well!
22
+
-`automatic/`: files that the module downloads or prepares in intermediate steps.
23
+
-`results/`: files generated by the module's algorithms that are relevant to the user.
24
+
- Pre-made integration setup for your module.
25
+
- Continuous Integration (CI) settings, ready for [pre-commit.ci](https://pre-commit.ci/).
26
+
- GitHub actions to automate chores during pull requests and releases.
27
+
- Premade `pytest` setup.
28
+
29
+
> [!IMPORTANT]
30
+
>
31
+
> A few things to be aware of.
32
+
>
33
+
> -**Modules do not work like regular snakemake workflows**
34
+
> - The primary way to test them should be external (calling `module:`, passing resources, and requesting results). Check the pre-made example in `tests/integration` for more info.
35
+
> - Internal access (e.g., calling the `all:` rule) may not work, as the module may not have the necessary `resources/` to execute properly.
36
+
> -**Please be sure to maintain the following files to ensure Modelblocks compatibility**
37
+
> -`INTERFACE.yaml`: a simple description of the module's input/output structure.
38
+
> -`config/config.yaml`: a basic functioning example of how to configure this module.
39
+
> -`workflow/internal/config.schema.yaml`: the module's configuration schema, used by `snakemake` for [validation](https://snakemake.readthedocs.io/en/stable/snakefiles/configuration.html).
40
+
> -`AUTHORS` / `CITATION.cff` / `LICENSE`: licensing and attribution of this module's code and methods.
41
+
42
+
13
43
## How to use this template
14
44
15
-
We recommend using [`pixi`](https://pixi.sh/) as your package manager. Once installed, do the following:
45
+
We require [`pixi`](https://pixi.sh/) as a package manager. Once installed, do the following:
16
46
17
47
1. Install the templater tool [`copier`](https://copier.readthedocs.io/en/stable/).
18
48
@@ -25,16 +55,17 @@ We recommend using [`pixi`](https://pixi.sh/) as your package manager. Once inst
25
55
We recommend you use the module name as the directory name.
If your terminal does not have access to `copier` then you may need to update your `PATH` variable to include `~/.pixi/bin`.
61
+
> [!TIP]
62
+
> If your terminal does not have access to `copier` then you may need to update your `PATH` variable to include `~/.pixi/bin`.
32
63
33
64
3. Answer some questions so can we pre-fill licensing, citation files, etc...
34
65
4. Initialise the `pixi` project environment of your new module.
35
66
36
67
```shell
37
-
cd ./path/to/<module_name># navigate to the new project
68
+
cd ./<module_name># navigate to the new project
38
69
pixi install --all # install the project environment
39
70
```
40
71
@@ -44,30 +75,3 @@ We recommend using [`pixi`](https://pixi.sh/) as your package manager. Once inst
44
75
cd tests/integration # go to the integration test...
45
76
pixi run snakemake --use-conda # run it!
46
77
```
47
-
48
-
## Features
49
-
50
-
- Standardised layout compliant with the [snakemake workflow catalogue's](https://snakemake.github.io/snakemake-workflow-catalog/#) listing requirements, enabling them to be automatically included in their listings once published. Read more about those requirements [here](https://snakemake.github.io/snakemake-workflow-catalog/docs/catalog.html#standardized-usage-workflows).
51
-
- Standardised input/output structure across modules:
52
-
-`resources/`: files needed for the module's processes.
53
-
-`user/`: files that should be provided by users. Document them well!
54
-
-`automatic/`: files that the module downloads or prepares in intermediate steps.
55
-
-`results/`: files generated by the module's algorithms that are relevant to the user.
56
-
- Pre-made integration setup for your module.
57
-
- Continuous Integration (CI) settings, ready for [pre-commit.ci](https://pre-commit.ci/).
58
-
- GitHub actions to automate chores during pull requests and releases.
59
-
- Premade `pytest` setup.
60
-
61
-
> [!IMPORTANT]
62
-
>
63
-
> A few things to be aware of.
64
-
>
65
-
> -**Modules do not work like regular snakemake workflows**
66
-
> - The primary way to test them should be external (calling `module:`, passing resources, and requesting results). Check the pre-made example in `tests/integration` for more info.
67
-
> - Internal access (e.g., calling the `all:` rule) may not work, as the module may not have the necessary `resources/` to execute properly.
68
-
> -**Please be sure to maintain the following files to ensure `clio` compatibility**
69
-
> - These are:
70
-
> -`INTERFACE.yaml`: a simple description of the module's input/output structure.
71
-
> -`config/config.yaml`: a basic functioning example of how to configure this module.
72
-
> -`workflow/internal/config.schema.yaml`: the module's configuration schema, used by `snakemake` for [validation](https://snakemake.readthedocs.io/en/stable/snakefiles/configuration.html).
73
-
> -`AUTHORS` / `CITATION.cff` / `LICENSE`: licensing and attribution of this module's code and methods.
0 commit comments