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: docs/userguide.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,7 +10,7 @@ See [overview](overview.md)
10
10
11
11
Many software packages have a way of automatically discovering files which they can use. (examples: [pytest](https://docs.pytest.org/en/latest/explanation/goodpractices.html#conventions-for-python-test-discovery)[pylint](https://pylint.pycqa.org/en/latest/user_guide/usage/run.html))
12
12
13
-
By default, wic will recursively search for tools / workflows within the directories (and subdirectories) listed in the config file's json tags `search_paths_cwl` and `search_paths_wic`. The paths listed can be absolute or relative. The default `config.json` is shown.
13
+
By default, sophios will recursively search for tools / workflows within the directories (and subdirectories) listed in the config file's json tags `search_paths_cwl` and `search_paths_wic`. The paths listed can be absolute or relative. The default `config.json` is shown.
14
14
15
15
***`We strongly recommend placing all repositories of tools / workflows in the same parent directory.`***
16
16
@@ -39,7 +39,7 @@ By default, wic will recursively search for tools / workflows within the directo
39
39
.....
40
40
```
41
41
42
-
If you do not specify config file using the command line argument `--config`, it will be automatically created for you the first time you run wic in `~/wic/global_config.json`. (Because of this, the first time you run wic you should be in the root directory of any one of your repos.) Then you can manually edit this file with additional sources of tools / workflows.
42
+
If you do not specify config file using the command line argument `--config`, it will be automatically created for you the first time you run sophios in `~/wic/global_config.json`. (Because of this, the first time you run sophios you should be in the root directory of any one of your repos.) Then you can manually edit this file with additional sources of tools / workflows.
43
43
44
44
To avoid dealing with relative file paths in YAML files, by default
45
45
@@ -74,7 +74,7 @@ steps:
74
74
message: !ii Hello World
75
75
```
76
76
77
-
Note that this is one key difference between WIC and CWL. In CWL, all inputs must be given in a separate file. In WIC, inputs can be given inline with !ii and after compilation they will be automatically extracted into the separate file.
77
+
Note that this is one key difference between sophios and CWL. In CWL, all inputs must be given in a separate file. In sophios, inputs can be given inline with !ii and after compilation they will be automatically extracted into the separate file.
78
78
79
79
(NOTE: raw CWL is still supported with the --allow_raw_cwl flag.)
80
80
@@ -288,7 +288,7 @@ Similar to `scatter`, `when` is a **special (and optional)** attribute to any st
288
288
The `when` attribute of a step object exposes the exact same js embedded syntax of `when` tag of the YAML/CWL syntax. One has to be careful about appropriate escaping in the string input of `when` in Python API. In the above case the comparison is between two strings so "" is around the literal 27 (i.e. value after `toString` step).
289
289
## Partial Failures
290
290
291
-
In running workflows at scale, sometimes it is the case that one of the workflow steps may crash due to a bug causing the entire workflow to crash. In this case can use `--partial_failure_enable` flag. For special cases when the exit status of a workflow step isn't 1, and a different error code is returned (for example 142), then the user can supply the error code to wic as a success code to prevent workflow from crashing with `--partial_failure_success_codes 0 1 142`. By default partial failure flag will consider only 0 and 1 as success codes. An example line snippet of the error code being printed is shown below.
291
+
In running workflows at scale, sometimes it is the case that one of the workflow steps may crash due to a bug causing the entire workflow to crash. In this case can use `--partial_failure_enable` flag. For special cases when the exit status of a workflow step isn't 1, and a different error code is returned (for example 142), then the user can supply the error code to sophios as a success code to prevent workflow from crashing with `--partial_failure_success_codes 0 1 142`. By default partial failure flag will consider only 0 and 1 as success codes. An example line snippet of the error code being printed is shown below.
292
292
```
293
293
[1;30mWARNING[0m [33m[job compare_extract_protein_pdbbind__step__4__topology_check] exited with status: 139[0m
Copy file name to clipboardExpand all lines: docs/validation.md
+12-12Lines changed: 12 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,7 +2,7 @@
2
2
3
3
# Formal Schemas
4
4
5
-
What is validation? Validation is the process of checking whether the contents of a file agree with a formal specification. A popular modern choice for formal specification language is jsonschema, which is what wic uses. (Don't worry, you do not need to learn jsonschema. See below.)
5
+
What is validation? Validation is the process of checking whether the contents of a file agree with a formal specification. A popular modern choice for formal specification language is jsonschema, which is what sophios uses. (Don't worry, you do not need to learn jsonschema. See below.)
6
6
7
7
## Different levels of strictness
8
8
Notice that I said `a` formal specification, not `the` formal specification. That's because there are many different kinds of schemas, which may be more or less strict.
@@ -19,33 +19,33 @@ Next, there are various basic schemas for simply checking that a yml file is syn
19
19
20
20
Since CWL files are just special yml files, there are [validators](https://github.com/common-workflow-language/cwl-utils/blob/main/cwl_utils/parser/cwl_v1_0.py) for these special yml files.
21
21
22
-
Getting better, but wic workflows aren't just any yml or cwl files, they are even more special. So how can we create a special schema that will only accept wic workflows?
22
+
Getting better, but sophios workflows aren't just any yml or cwl files, they are even more special. So how can we create a special schema that will only accept sophios workflows?
23
23
24
-
## The WIC schema
24
+
## The sophios schema
25
25
26
26
At the opposite end of the spectrum (from `{}`), we could create the most strict schema possible. This would be a schema which only accepts inputs from ***`all known tools and subworkflows`***. In other words, we can use a ***`whitelist`*** instead of a blacklist. We can assume a closed world instead of an open world. Where does this whitelist come from? It comes from the [auto-discovery](userguide.md#auto-discovery) mechanism!
27
27
28
-
So the command `wic --generate_schemas`
28
+
So the command `sophios --generate_schemas`
29
29
* makes a list of every single tool and workflow available
30
30
* generates a separate sub-schema for each tool / workflow individually (this is why the flag says schemas, plural)
31
31
* combines all of the sub-schemas into a single giant disjoint union!
32
32
33
-
In other words, each step in a WIC workflow had better be chosen from a list of valid steps!
33
+
In other words, each step in a sophios workflow had better be chosen from a list of valid steps!
34
34
35
35
### Stale schemas ###
36
36
37
-
A direct consequence of using the most strict possible schema is that, as you add and/or modify tools and workflows, you have to keep re-generating the WIC schema so it doesn't become stale. Otherwise you will get validation errors, because you will be attempting to validate against an old schema which no longer reflects the tool and workflows that are currently available.
37
+
A direct consequence of using the most strict possible schema is that, as you add and/or modify tools and workflows, you have to keep re-generating the sophios schema so it doesn't become stale. Otherwise you will get validation errors, because you will be attempting to validate against an old schema which no longer reflects the tool and workflows that are currently available.
38
38
39
39
The exact same thing happens in Python when you are in the middle of editing a file. Until you push the save button, VSCode will keep attempting to validate your python code against the functions and methods that were available the last time you saved. It isn't a surprise that you get a red squiggly line while you are still typing. Makes sense, right?
40
40
41
-
That said, for technical and performance reasons, (for now) we do not automatically generate a new wic schema.
41
+
That said, for technical and performance reasons, (for now) we do not automatically generate a new sophios schema.
If you are getting validation errors, try re-running this command!
@@ -54,15 +54,15 @@ If you are getting validation errors, try re-running this command!
54
54
55
55
So why are we going through all this trouble to create the most strict possible schema?
56
56
57
-
The answer is that thanks to the excellent hypothesis-jsonschema library, we can use the WIC schema to perform property-based integration testing
57
+
The answer is that thanks to the excellent hypothesis-jsonschema library, we can use the sophios schema to perform property-based integration testing
58
58
59
-
***`on the entire WIC language, for every single tool and workflow simultaneously!`***
59
+
***`on the entire sophios language, for every single tool and workflow simultaneously!`***
60
60
61
61
We can randomly generate ***`entire synthetic workflows!`***
62
62
63
-
This has [already been implemented](https://github.com/PolusAI/workflow-inference-compiler/blob/master/tests/test_fuzzy_compile.py), and it has been incredibly useful for finding a few (and thankfully only a few!) bugs. It also revealed a few subtle design issues (which have long ago been fixed).
63
+
This has [already been implemented](https://github.com/PolusAI/sophios/blob/master/tests/test_fuzzy_compile.py), and it has been incredibly useful for finding a few (and thankfully only a few!) bugs. It also revealed a few subtle design issues (which have long ago been fixed).
64
64
65
-
The [Fuzzy Compile CI logs](https://github.com/PolusAI/workflow-inference-compiler/actions/workflows/fuzzy_compile_weekly.wic) should speak for themselves.
65
+
The [Fuzzy Compile CI logs](https://github.com/PolusAI/sophios/actions/workflows/fuzzy_compile_weekly.wic) should speak for themselves.
0 commit comments