Skip to content

Commit

Permalink
fix broken link and add schema versioning info (#70)
Browse files Browse the repository at this point in the history
* fix broken link and add schema versioning info

* describe changes to upgrade wf file

* refer to type
  • Loading branch information
mfleader authored Nov 15, 2023
1 parent 09252ba commit 923e536
Show file tree
Hide file tree
Showing 3 changed files with 66 additions and 2 deletions.
9 changes: 8 additions & 1 deletion docs/arcaflow/workflows/index.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,13 @@
# Creating Arcaflow workflows

Arcaflow workflows consist of three parts:
Arcaflow workflows consist of four parts:


<h2>Version</h2>

The schema version must be at the root of your workflow file. It indicates the semantic version of the workflow file structure being used.

[Learn more about versioning &raquo;](versioning.md){ .md-button }

<h2>Inputs</h2>

Expand Down
2 changes: 1 addition & 1 deletion docs/arcaflow/workflows/output.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,5 +24,5 @@ A common example of two mutually exclusive events could be the availability of y
In this example taken from the [Arcaflow Workflows](https://github.com/arcalot/arcaflow-workflows/blob/main/example-workflow/workflow.yaml) project, the `success` output collects the data from the specified steps and inserts it into data storage. The `no-indexing` output collects the data, the error logs, and does not store the data.

```yaml
{!https://raw.githubusercontent.com/arcalot/arcaflow-workflows/main/example-workflow/workflow.yaml [ln:90-100]!}
{!https://raw.githubusercontent.com/arcalot/arcaflow-workflows/main/system-performance/sysbench/workflow.yaml [ln:90-100]!}
```
57 changes: 57 additions & 0 deletions docs/arcaflow/workflows/versioning.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
# Workflow schema versions

## Valid version string

All workflow schema versions conform to [semantic version 2.0.0](https://semver.org/#backusnaur-form-grammar-for-valid-semver-versions) with a major, minor, and patch version. In this document, since the prepended `v` is unnecessary it is not used. However, it is required as a value for the version key in your workflow file.

Invalid version string for `workflow.yaml`.

```yaml
version: 0.2.0
input:
steps:
outputs:
```
**Valid** version string for `workflow.yaml`.

```yaml
version: v0.2.0
input:
steps:
outputs:
```

## Supported versions

* 0.2.0

## Compatibility Matrix


| Workflow schema version | Arcaflow Engine release |
|---|---|
| 0.2.0 | 0.9.0 |

## Upgrading

### 0.2.0

For the configuration file, `config.yaml`, two types of deployers are now possible, `image` and `python`, so `deployer` has become `deployers`. Effectively, the `type` key has become the `deployer_name` key. The `deployer_name` key and value are **required** which means you must also have either the `image` key or the `python` key.

```yaml
deployers:
image:
deployer_name: docker|podman|kubernetes
python:
deployer_name: python
```

For your workflow file, `workflow.yaml`, the `version` key and value are **required**, and they must be at the root of the file.

```yaml
version: v0.2.0
inputs: {}
steps: {}
outputs: {}
```

0 comments on commit 923e536

Please sign in to comment.