From 2e431603f364834e3808a0b91e44195db0b572f9 Mon Sep 17 00:00:00 2001 From: Webb Scales Date: Tue, 30 Apr 2024 16:52:48 -0400 Subject: [PATCH] Fix typos --- docs/arcaflow/concepts/index.md | 2 +- docs/arcaflow/contributing/index.md | 2 +- docs/arcaflow/contributing/typing.md | 4 ++-- docs/arcaflow/getting-started.md | 4 ++-- docs/arcaflow/index.md | 4 ++-- docs/arcaflow/plugins/go/first.md | 4 ++-- docs/arcaflow/plugins/python/data-model.md | 4 ++-- docs/arcaflow/plugins/python/first.md | 4 ++-- docs/arcaflow/plugins/python/schema.md | 2 +- docs/arcaflow/running/setup.md | 2 +- docs/arcaflow/workflows/flow-control.md | 4 ++-- docs/arcaflow/workflows/input.md | 2 +- docs/arcaflow/workflows/output.md | 5 +++-- 13 files changed, 22 insertions(+), 21 deletions(-) diff --git a/docs/arcaflow/concepts/index.md b/docs/arcaflow/concepts/index.md index 6b8b482f..a523ca9a 100644 --- a/docs/arcaflow/concepts/index.md +++ b/docs/arcaflow/concepts/index.md @@ -16,7 +16,7 @@ We believe in strong and static typing to avoid bugs, so Arcaflow has its own ty

Plugins

-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 »](plugins.md){ .md-button } diff --git a/docs/arcaflow/contributing/index.md b/docs/arcaflow/contributing/index.md index 0957b485..f2abbfdb 100644 --- a/docs/arcaflow/contributing/index.md +++ b/docs/arcaflow/contributing/index.md @@ -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 diff --git a/docs/arcaflow/contributing/typing.md b/docs/arcaflow/contributing/typing.md index 7520e9d6..f4020dcc 100644 --- a/docs/arcaflow/contributing/typing.md +++ b/docs/arcaflow/contributing/typing.md @@ -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 @@ -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 diff --git a/docs/arcaflow/getting-started.md b/docs/arcaflow/getting-started.md index 6ab93ef9..cc623fda 100644 --- a/docs/arcaflow/getting-started.md +++ b/docs/arcaflow/getting-started.md @@ -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" ``` @@ -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 »](https://github.com/orgs/arcalot/repositories?q=arcaflow-plugin&type=all&language=&sort=) +- [See our repositories of community-supported plugins »](https://github.com/orgs/arcalot/repositories?q=arcaflow-plugin&type=all&language=&sort=) - [Get our latest plugin container builds from quay.io »](https://quay.io/arcalot) - [Experiment with more advanced example workflows »](https://github.com/arcalot/arcaflow-workflows) diff --git a/docs/arcaflow/index.md b/docs/arcaflow/index.md index 41bdc1b6..a70089c4 100644 --- a/docs/arcaflow/index.md +++ b/docs/arcaflow/index.md @@ -30,7 +30,7 @@ Arcaflow's design can drastically simplify much of the workflow creation process

Not a CI system

-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. @@ -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 diff --git a/docs/arcaflow/plugins/go/first.md b/docs/arcaflow/plugins/go/first.md index 6d12623e..c23f2c20 100644 --- a/docs/arcaflow/plugins/go/first.md +++ b/docs/arcaflow/plugins/go/first.md @@ -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: @@ -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]( diff --git a/docs/arcaflow/plugins/python/data-model.md b/docs/arcaflow/plugins/python/data-model.md index 7f1fee9d..750abab2 100644 --- a/docs/arcaflow/plugins/python/data-model.md +++ b/docs/arcaflow/plugins/python/data-model.md @@ -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 @@ -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. diff --git a/docs/arcaflow/plugins/python/first.md b/docs/arcaflow/plugins/python/first.md index b1c843ea..fdef0d94 100644 --- a/docs/arcaflow/plugins/python/first.md +++ b/docs/arcaflow/plugins/python/first.md @@ -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: @@ -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: diff --git a/docs/arcaflow/plugins/python/schema.md b/docs/arcaflow/plugins/python/schema.md index 3df8f43a..c8c8af28 100644 --- a/docs/arcaflow/plugins/python/schema.md +++ b/docs/arcaflow/plugins/python/schema.md @@ -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 diff --git a/docs/arcaflow/running/setup.md b/docs/arcaflow/running/setup.md index 84ffe07f..023f4bc4 100644 --- a/docs/arcaflow/running/setup.md +++ b/docs/arcaflow/running/setup.md @@ -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 diff --git a/docs/arcaflow/workflows/flow-control.md b/docs/arcaflow/workflows/flow-control.md index e6f7be19..3e39e515 100644 --- a/docs/arcaflow/workflows/flow-control.md +++ b/docs/arcaflow/workflows/flow-control.md @@ -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. @@ -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: diff --git a/docs/arcaflow/workflows/input.md b/docs/arcaflow/workflows/input.md index 9e87471a..3553f53d 100644 --- a/docs/arcaflow/workflows/input.md +++ b/docs/arcaflow/workflows/input.md @@ -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 diff --git a/docs/arcaflow/workflows/output.md b/docs/arcaflow/workflows/output.md index f952a5b5..9d828301 100644 --- a/docs/arcaflow/workflows/output.md +++ b/docs/arcaflow/workflows/output.md @@ -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]!}