Skip to content

Practice Labs

The Practice Labs are notebooks you can execute to understand what the CWL CommandLineTools and Workflows do in the context of this module.

There are four sets of notebooks, each set with one or more notebooks:

1 - CWL CommandLineTools

This first set of notebooks targets the Producer Application Package individual CommandLineTools. By running these notebooks, you'll generate the intermediary outputs of the Producer Application Package

The notebooks included are:

2 - Producer CWL Workflow

Run the producer CWL Workflow that chains the CommandLineTools and sub-workflow:

3 - Exploitation

Read and inspect the results generated by the Producer CWL Workflow.

4 - Consumer CWL Workflow

Run the consumer CWL Workflow that reads the outputs generated by the Producer CWL Workflow:

Select a matching published release

Current labs use APPLICATION_PACKAGE_VERSION (default 2.0.0). While validating an RC, set its exact version in the notebook kernel before the preparation cell:

export APPLICATION_PACKAGE_VERSION=2.0.0-rc.<run>.<attempt>
source "${WORKSPACE:-/workspace/zarr-cloud-native-format}/scripts/prepare-practice-labs.sh"

Use the source checkout at that release tag when recording acceptance. Preparation downloads the producer, S3 wrapper, consumer and matching producer-job.yaml into runs/<version>/packages. It checks CWL v1.2, software version, public workflow entrypoints, digest-pinned GHCR images and input validation. Missing assets or an invalid package stop preparation; there is no fallback to an older release, latest, or local images. Checked-in CWL is never replaced by downloaded packages.

Run CLI labs in numbered order, followed by the producer, exploitation and consumer. The producer lab uses collection-mode output for exploitation and occurrence; the S3 wrapper targets item-mode publication for TiTiler. A standalone download check is available with task labs:prepare APPLICATION_PACKAGE_VERSION=<version>.

The default runner is CWL_RUNNER=podman. Select docker for Docker-backed local execution or calrissian for a configured Kubernetes cluster. For Calrissian, set RUNTIME=/calrissian/zarr-labs/<version> to a directory on its shared PVC and set CALRISSIAN_BIN if the executable is in an isolated environment. Cluster credentials, service account and storage must already be configured. Python exploitation uses the same APPLICATION_PACKAGE_VERSION and RUNTIME and checks the prepared release manifest before opening producer results.

An RC exists to supply artifacts for notebook testing. It is accepted only after the matching notebook suite passes against those artifacts. Fixes require a new RC; stable publication follows acceptance of that source tree.