diff --git a/book/back-matter/glossary.md b/book/back-matter/glossary.md index 92953bd..17ed160 100644 --- a/book/back-matter/glossary.md +++ b/book/back-matter/glossary.md @@ -19,6 +19,10 @@ Artifact class Artifact API See {term}`Python 3 API`. +Collection + An ordered list of `key: value` pairs. Think of an ordered [Python dictionary](https://docs.python.org/3/tutorial/datastructures.html#dictionaries). + These can be used as {term}`Input`, {term}`Parameter`, and {term}`Output` {term}`Types `. + Conda metapackage A metapackage is a package with no files, only metadata. They are typically used to collect several packages together into a single package via dependencies. @@ -42,7 +46,6 @@ DRY For more information on DRY and software engineering in general, see {cite:t}`pragprog20`. The {cite:t}`pragprog20` content on DRY is available in a [free example chapter here](https://media.pragprog.com/titles/tpp20/dry.pdf). - File Format An object which subclasses either `qiime2.plugin.TextFileFormat` or `qiime2.plugin.BinaryFileFormat`. File formats define the particular format of a file, and define a process for validating the format. diff --git a/book/framework/references/archive-versions.md b/book/framework/references/archive-versions.md index 101bfeb..b5c0fb9 100644 --- a/book/framework/references/archive-versions.md +++ b/book/framework/references/archive-versions.md @@ -175,9 +175,68 @@ ae0d0e26da5b84a6c0722148789c51e0 provenance/artifacts/f6105891-2c00-4886-b733-6 Box and arrow diagram of a v5 archive. ``` +(archive-version-6)= ## Archive Version 6 -Full documentation for [Archive Version 6 is pending](https://github.com/caporaso-lab/developing-with-qiime2/issues/32). -The source code can be found [here](https://github.com/qiime2/qiime2/blob/630696237166f60765f7bbe6e3c668ea0e1495d9/qiime2/core/archive/format/v6.py). +Released in QIIME 2 version [2023.5](https://github.com/qiime2/qiime2/releases/tag/2023.5.1) ([changelog](https://forum.qiime2.org/t/qiime-2-2023-5-is-now-available/26579)) [commit `85f7111`](https://github.com/qiime2/qiime2/commit/85f71118c0394647779397ebf116480b9498426a), this version adds `execution_context` to the `execution` section of `action.yaml` and adds support for {term}`input`, {term}`parameter`, and {term}`output` {term}`Collections ` in `action.yaml`. + +The `execution_context` goes at the bottom of the `execution` section of `action.yaml` and gives some details about how the {term}`Action` that produced this {term}`Result` was executed. It indicates whether the {term}`Action` was executed synchronously, asynchronously, or using Parsl. If Parsl was used it indicates what type of Parsl executor was used to run it. If more execution contexts are added in the future, the possibilities here may expand. +```yaml +execution: + uuid: 8b1ddcc2-b4e7-4c9f-9338-a7785a47862e + runtime: + start: 2025-09-18T11:45:15.273922-07:00 + end: 2025-09-18T11:45:15.659510-07:00 + duration: 385588 microseconds + execution_context: + type: parsl/synchronous/asynchronous + parsl_type: (if type is parsl) +``` + +Support for {term}`input`, {term}`parameter` and {term}`output` {term}`Collections ` of `key: value` pairs was also added in v6. + +{term}`Input` {term}`Collections ` go under the `inputs` section of `action.yaml` and take the form of a list of yaml `key: value` pairs where the key is a given {term}`Artifact's ` key in the {term}`Collection` and the value is its {term}`UUID`. + +```yaml +action: + type: + plugin: + action: + inputs: + - : + - '': + - '': + ... +``` + +{term}`Parameter` {term}`Collections ` go under the `parameters` section of `action.yaml` and are formatted identically to {term}`input` {term}`Collections ` only the values will be of whatever type the {term}`Parameter` {term}`Collection` is not {term}`UUIDs `. + +```yaml +action: + type: + plugin: + action: + inputs: + parameters: + - : + - '': + - '': + ... +``` + +If a {term}`Result` is part of an {term}`Output` {term}`Collection`, the `output-name` section of its `action.yaml` will contain two additional pieces of information. The key of this {term}`Result` in the {term}`Collection`, and the index of this {term}`Result` in the {term}`Collection` of the form `x/y` where `x` is this {term}`Result's ` index and `y` is the size of the {term}`Collection`. + +```yaml +action: + type: + plugin: + action: + inputs: + parameters: + output-name: + - + - + - +``` ## Archive Version 7 Archive Version 7 development is [currently being planned](https://github.com/qiime2/qiime2/issues/747).