Skip to content

Commit

Permalink
Fix typos
Browse files Browse the repository at this point in the history
  • Loading branch information
webbnh committed Apr 30, 2024
1 parent 76c3187 commit 2e43160
Show file tree
Hide file tree
Showing 13 changed files with 22 additions and 21 deletions.
2 changes: 1 addition & 1 deletion docs/arcaflow/concepts/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ We believe in strong and static typing to avoid bugs, so Arcaflow has its own ty

<h2>Plugins</h2>

Arcaflow is interoperable between several programming languages. Currently we provide SDKs for Python and Go.
Arcaflow is interoperable between several programming languages. Currently, we provide SDKs for Python and Go.

[Read more about plugins &raquo;](plugins.md){ .md-button }

Expand Down
2 changes: 1 addition & 1 deletion docs/arcaflow/contributing/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ All code in Arcaflow is licensed under the [Apache 2.0 license](https://www.apac

## Principles

While we don't deal in absolutes (only a sith would do that) we hold ourselves to a few key principles. There are plenty of things where we could do better in these areas, so if you find something, please open an issue. It's important!
While we don't deal in absolutes (only a Sith would do that) we hold ourselves to a few key principles. There are plenty of things where we could do better in these areas, so if you find something, please open an issue. It's important!

### The principle of the least surprise

Expand Down
4 changes: 2 additions & 2 deletions docs/arcaflow/contributing/typing.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Arcaflow takes a departure from the classic run-and-pray approach of running wor

A plugin can support multiple **workflow steps** and must provide information about the data types in its **input and output** for each step. A step can have exactly one input format, but may declare more than one output.

The typesystem is inspired by [JSON schema](https://json-schema.org/) and [OpenAPI](https://swagger.io/specification/), but it is more restrictive due to the need to efficiently serialize workloads over various formats.
The type system is inspired by [JSON schema](https://json-schema.org/) and [OpenAPI](https://swagger.io/specification/), but it is more restrictive due to the need to efficiently serialize workloads over various formats.

## Types

Expand Down Expand Up @@ -41,7 +41,7 @@ Boolean types can take a value of either `true` or `false`, but when unserializi

### Lists, maps

Lists a7nd maps can have constraints on the minimum or maximum number of items in them (inclusive).
Lists and maps can have constraints on the minimum or maximum number of items in them (inclusive).

### Objects

Expand Down
4 changes: 2 additions & 2 deletions docs/arcaflow/getting-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ You can now build the plugin container.
Further reading: [Packaging plugins](plugins/packaging.md)

!!! tip "Did you know?"
While Arcaflow is a workflow engine, plugins can be run independentily via the command line. Try running your containerized helo-world plugin directly.
While Arcaflow is a workflow engine, plugins can be run independently via the command line. Try running your containerized hello-world plugin directly.

=== "Docker"
```
Expand Down Expand Up @@ -235,7 +235,7 @@ As you can see, the last line of the output is the output data from the workflow

Congratulations, you are now an Arcaflow user! Here are some things you can do next to start working with plugins and workflows:

- [See our repostories of community-supported plugins &raquo;](https://github.com/orgs/arcalot/repositories?q=arcaflow-plugin&type=all&language=&sort=)
- [See our repositories of community-supported plugins &raquo;](https://github.com/orgs/arcalot/repositories?q=arcaflow-plugin&type=all&language=&sort=)
- [Get our latest plugin container builds from quay.io &raquo;](https://quay.io/arcalot)
- [Experiment with more advanced example workflows &raquo;](https://github.com/arcalot/arcaflow-workflows)

Expand Down
4 changes: 2 additions & 2 deletions docs/arcaflow/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ Arcaflow's design can drastically simplify much of the workflow creation process

<h2>Not a CI system</h2>

Arcaflow is **not designed to run as a persistent service nor to record workflow histories**, and in most cases it is **probably not the best tool to setup or manage infrastructure**. For end-to-end CI needs, you should leverage a system that provdes these and other features (possibly something from the Alternatives list below).
Arcaflow is **not designed to run as a persistent service nor to record workflow histories**, and in most cases it is **probably not the best tool to set up or manage infrastructure**. For end-to-end CI needs, you should leverage a system that provides these and other features (possibly something from the Alternatives list below).

Arcaflow is, however, **an excellent companion to a CI system**. In many cases, building complex workflows completely within a CI environment can effectively lock you into that system because the workflow may not be easily portable outside of it or run independently by a user. An Arcaflow workflow **can be easily integrated into most CI systems**, so a workflow that you define once may be moved in most cases without modification to different environments or run directly by users.

Expand All @@ -41,7 +41,7 @@ It's important that you pick the right tool for the job. Sometimes, you need som
**Here are some of the features that make Arcaflow a unique solution to the below alternatives:**

- Designed for complex branching-action workflows and parallelization
- Prioritizes data passing and management via strong typing and schemas to ensure machine readabilitly, workflow validation, and data integrity
- Prioritizes data passing and management via strong typing and schemas to ensure machine readability, workflow validation, and data integrity
- Runs actions as plugins via container orchestrator APIs
- Engine is deployed as a single Golang binary, and plugins are run as containers, minimizing dependencies and maximizing portability
- Workflows are designed to be explicitly version controlled to ensure portability to other environments without code or feature drift
Expand Down
4 changes: 2 additions & 2 deletions docs/arcaflow/plugins/go/first.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Writing your first Go plugin

In order to create a Go plugin, you will need to create a Go module project (`go mod init`) and install the Arcaflow SDK usin `go get go.flow.arcalot.io/pluginsdk`.
In order to create a Go plugin, you will need to create a Go module project (`go mod init`) and install the Arcaflow SDK using `go get go.flow.arcalot.io/pluginsdk`.

Writing a Go plugin consists of the following 4 parts:

Expand All @@ -25,7 +25,7 @@ type Input struct {
In addition to the struct above, we must also define a schema for the input data structure:

```go
// We define a separate scope, so we can add subobjects later.
// We define a separate scope, so we can add sub-objects later.
var inputSchema = schema.NewScopeSchema(
// Struct-mapped object schemas are object definitions that are mapped to a specific struct (Input)
schema.NewStructMappedObjectSchema[Input](
Expand Down
4 changes: 2 additions & 2 deletions docs/arcaflow/plugins/python/data-model.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ You can read more about the individual types in the [data types](#data-types) se

## Optional parameters

You can also declare any parameter as optional like this:
You can also declare any parameter as optional, like this:

```python title="plugin.py"
@dataclasses.dataclass
Expand Down Expand Up @@ -181,7 +181,7 @@ The `my_field` variable is a variable of type MyEnum. It can store one of the de
In the above example, the Value1 member of MyEnum is accessed and assigned to the variable value.

!!! Note
Enumeration members are "singleton" objects, which have a single instance. In Python you should compare enumeration members using `is` rather than `==` (for example, `variable is MyEnum.Value1`). The values of an Enum used in an Arcaflow schema must have values of string or integer data type.
Enumeration members are "singleton" objects which have a single instance. In Python, you should compare enumeration members using `is` rather than `==` (for example, `variable is MyEnum.Value1`). The values of an Enum used in an Arcaflow schema must have values of string or integer data type.

!!! tip
Enums aren't dataclasses, but can be used as the type of dataclass attributes.
Expand Down
4 changes: 2 additions & 2 deletions docs/arcaflow/plugins/python/first.md
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ def hello_world(name):
return f"Hello, {name}"
```

However, **that's not how the Arcaflow SDK works**. You must always specify the *data type* of any variable. Additionally, every function can only have **one input** and it must be a **dataclass**.
However, **that's not how the Arcaflow SDK works**. You must always specify the *data type* of any variable. Additionally, every function can only have **one input**, and it must be a **dataclass**.

So, let's change the code a little:

Expand All @@ -124,7 +124,7 @@ def hello_world(params: InputParams):
# ...
```

So far so good, but we are not done yet. The output also has special rules. One plugin function can have more than one possible output, so you need to say which output it is and you need to also return a dataclass.
So far so good, but we are not done yet. The output also has special rules. One plugin function can have more than one possible output, so you need to say which output it is, and you need to also return a dataclass.

For example:

Expand Down
2 changes: 1 addition & 1 deletion docs/arcaflow/plugins/python/schema.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ Let's go in order:
- The `outputs` describe a `Dict[str, schema.ObjectType]`, where the key is the ID for the returned output type, while the value describes the output schema.
- The `handler` function takes one parameter, the object described in `input` and must return a tuple of a string and the output object. Here the ID uniquely identifies which output is intended, for example `success` and `error`, while the second parameter in the tuple must match the `outputs` declaration.

That's it! Now all that's left is to define the `ObjectType` and any subobjects.
That's it! Now all that's left is to define the `ObjectType` and any sub-objects.

### ObjectType

Expand Down
2 changes: 1 addition & 1 deletion docs/arcaflow/running/setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

In order to use Arcaflow, you will need to download the [Arcaflow Engine](https://github.com/arcalot/arcaflow-engine/releases). You can simply unpack and run it, no need for installing it.

On Linux and MacOS, you may need to run `chmod +x` on the engine binary.
On Linux and macOS, you may need to run `chmod +x` on the engine binary.

## Configuration

Expand Down
4 changes: 2 additions & 2 deletions docs/arcaflow/workflows/flow-control.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Flow control allows the workflow author to build a workflow with a decision tree

## Foreach Loops

Foreach loops allow for running a sub-workflow with iterative inputs from a parent workflow. A sub-workflow is a complete Arcaflow workflow file with it's own input and output schemas as described in this section. The inputs for the sub-workflow are provided as a list, where each list item is an object that matches the sub-workflow input schema.
Foreach loops allow for running a sub-workflow with iterative inputs from a parent workflow. A sub-workflow is a complete Arcaflow workflow file with its own input and output schemas as described in this section. The inputs for the sub-workflow are provided as a list, where each list item is an object that matches the sub-workflow input schema.

!!! tip
A complete functional example is available in the [arcaflow-workflows](https://github.com/arcalot/arcaflow-workflows/tree/main/examples/sub-workflow-foreach) repository.
Expand Down Expand Up @@ -36,7 +36,7 @@ input:
type_id: string
```
Then in the `steps` secton of the workflow, the sub-workflow can be defined as a step with the `loop` list object from above passed to its input.
Then in the `steps` section of the workflow, the sub-workflow can be defined as a step with the `loop` list object from above passed to its input.

The parameters for the sub-workflow step are:

Expand Down
2 changes: 1 addition & 1 deletion docs/arcaflow/workflows/input.md
Original file line number Diff line number Diff line change
Expand Up @@ -305,7 +305,7 @@ In contrast, you can specify `object_type` as `2` and that will cause the unseri

## Any types

Any types allow any data to pass through without validation. We recommend using the "any" type due to its lack of validation and the risk to cause runtime errors. Only use any types if you can truly handle **any** data that is passed.
Any types allow any data to pass through without validation. We do not recommend using the "any" type due to its lack of validation and the risk to cause runtime errors. Only use any types if you can truly handle **any** data that is passed.

```yaml
type_id: any
Expand Down
5 changes: 3 additions & 2 deletions docs/arcaflow/workflows/output.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,10 @@ output:
Arcaflow can produce multiple output groups for a workflow. These output groups are mutually exclusive to each other.
A common example of two mutually exclusive events could be the availability of your data storage service. Let's assume the service is either available, or unavailable (the unavailble state also includes any states where an error is thrown during data insertion). Multiple workflow outputs allows you to plan for these two events.
A common example of two mutually exclusive events could be the availability of your data storage service. Let's assume the service is either available, or unavailable (the unavailable state also includes any states where an error is thrown during data insertion). Multiple workflow outputs allows you to plan for these two events.
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.
In this example taken from the [Arcaflow Workflows](https://github.com/arcalot/arcaflow-workflows/blob/main/advanced-examples/system-performance/sysbench/workflow.yaml#L102
) 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/88d07bf83c286eedae76fde72f5165b577e68927/advanced-examples/system-performance/sysbench/workflow.yaml [ln:102-112]!}
Expand Down

0 comments on commit 2e43160

Please sign in to comment.