Skip to content

Add workflow_engine and workflow_target; deprecate recipes - #64

Open
petebachant wants to merge 1 commit into
LightconeResearch:mainfrom
petebachant:workflow-engine
Open

Add workflow_engine and workflow_target; deprecate recipes#64
petebachant wants to merge 1 commit into
LightconeResearch:mainfrom
petebachant:workflow-engine

Conversation

@petebachant

Copy link
Copy Markdown

Implements RFC 0003 (#62, #63). An analysis names the workflow engine that builds it and each output names its rule within that engine's own workflow definition; ASTRA says nothing else about execution.

Schema:

  • WorkflowEngine enum (calkit, cwl, dvc, make, nextflow, snakemake, targets, wdl, other), listed alphabetically with the ordering carrying no recommendation. Membership criterion is staleness tracking.
  • Analysis.workflow_engine, inherited by descendants and overridable on a sub-analysis.
  • Output.workflow_target, naming a rule/stage/target.
  • Deprecates the execution surface as a unit: Recipe and its command, container, and resources, plus Resources and Analysis.container. A spec that declares a container is a spec that has started implementing, and it still has no answer on staleness.
  • Two Output rules: a re-export may not name a target, and a target forbids a recipe outright — there is no half-migrated state where the engine builds the artifact but ASTRA still declares its environment.

Additive plus deprecation. Nothing is removed, and no document that validates today stops validating: the new prohibition can only fire on documents using a field that did not previously exist.

Docs, both examples, and test fixtures updated; Analysis-001 deliberately retains the deprecated recipe path as back-compatibility coverage.

Still owed by astra-tools: the semantic check that every workflow_target has a workflow_engine in scope, and an astra init scaffold that emits the new fields.

Implements RFC 0003. An analysis names the workflow engine that builds it
and each output names its rule within that engine's own workflow
definition; ASTRA says nothing else about execution.

Schema:
- WorkflowEngine enum (calkit, cwl, dvc, make, nextflow, snakemake,
  targets, wdl, other), listed alphabetically with the ordering carrying
  no recommendation. Membership criterion is staleness tracking.
- Analysis.workflow_engine, inherited by descendants and overridable on a
  sub-analysis.
- Output.workflow_target, naming a rule/stage/target.
- Deprecates the execution surface as a unit: Recipe and its command,
  container, and resources, plus Resources and Analysis.container. A spec
  that declares a container is a spec that has started implementing, and
  it still has no answer on staleness.
- Two Output rules: a re-export may not name a target, and a target
  forbids a recipe outright — there is no half-migrated state where the
  engine builds the artifact but ASTRA still declares its environment.

Additive plus deprecation. Nothing is removed, and no document that
validates today stops validating: the new prohibition can only fire on
documents using a field that did not previously exist.

Docs, both examples, and test fixtures updated; Analysis-001 deliberately
retains the deprecated recipe path as back-compatibility coverage.

Still owed by astra-tools: the semantic check that every workflow_target
has a workflow_engine in scope, and an `astra init` scaffold that emits
the new fields.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant