Skip to content

v0.15.0

Compare
Choose a tag to compare
@github-actions github-actions released this 24 Oct 22:24
f488d15

0.15.0 (2023-10-24)

This release adds a major new feature to simpleaf, the ability to patch workflows (either workflow templates, or fully-instantiated manifests). Detailed documentation about the patch sub-command of the workflow command is provided in the corresponding documentation page. However, at a high-level, the main idea is that patching lets one take a workflow template, where many of the relevant fields have been filled out by the user, and then programatically generate many manifests where specific fields are parameterized by an input parameter table. In simpler terms, provides the ability to use a sample table to automatically generate many workflow manifests, one per sample, that can then be executed by simpleaf.

However, the patching mechanism is both more flexible and general than the ability to simply provide a sample table, as any valid fields in the workflow can be overridden, and since patches are applied before instantiation of the workflow template into a manifest, it is even possible to patch top-level variables that affect many parts of the configuration. Yet, we imagine that "sample sheet" functionality will be the most common use-case for the patch sub-command, and so that capability should be relatively easy and straightforward to use. We encourage users to try out this feature and please provide feedback and suggestions to improve the user experience!

In addition to this major new feature, this release also incorporates several small but important changes detailed below.

Support for advanced indexing and mapping options exposed in piscem >= 0.7

Piscem 0.7 introduces a new option during indexing, and several new (optional) parameters during mapping. These are now exposed in the latest version of simpleaf. Note, these parameters do not make sense if you are not using piscem for mapping, or if your version of piscem is < 0.7. Thus, simpleaf will issue an error if you attempt to use the new piscem indexing flag with an older version of piscem. Likewise, during mapping, simpleaf will issue a warning and drop the new mapping parameters if you are using an older version of piscem (however, if intended these warnings can be safely ignored, they simply designate that the new flags will not be applied to the mapping process).

Updates to protocol estuary workflows

As our understanding of the capabilities and common idioms in the powerful jsonnet languages has evloved, so to has the structure of the workflows we have developed in the protocol estuary. It is therefore essential that, when updating to this new version of simpleaf, you refresh your local copy of the protocol estuary by issuing the simpleaf workflow refresh command.

The updated templates have been written to be cleaner, to avoid redundancy where possible, and critically, to support the key new feature of patching templates and manifests. In addition to a rewrite of the workflow templates, some changes have been made to the system varaiable names assumed in templates by simpleaf.

Updates to reserved names in templates

The following "system variables" (i.e. important variable names assumed by simpleaf when parsing and processing workflows) have changed.

  • Arguments => arguments
  • Active => active
  • Step => step
  • Program Name => program_name

Updates to common fields in protocol estuary templates

Additionally, while not required for the structure of user-developed workflows, or directly part of the system variables assumed by simpleaf, the main components of the protocol estuary templates have been changed as indicated below. In general, for unifiormity, we recommend these as relevant section names in user-developed workflows.

  • Recommended Configuration => fast_config
  • Optional Configuration => advanced_config

Features

  • support for workflow template and manifest patching.

  • advanced params for piscem >= 0.7 (a19b492)

Bug Fixes

  • accept boolean fields as simpleaf parameters (64d8191)
  • be able to parse all kinds of json value (d2024f0)
  • bump dependencies (44a0681)
  • write workflow log when external command fails (ab62f03)