Skip to content

v0.6.0 — Workflow + Job model

Choose a tag to compare

@ryan-evans-git ryan-evans-git released this 21 May 20:07
· 226 commits to main since this release
942da4d

What's new

The previous flat Pipelines page becomes Workflows (user-named groupings) on top of Jobs (individual tasks). The DAG between jobs lives on the workflow declaration, not on individual jobs. Existing @ematix.pipeline code keeps working as single-job workflows-of-one, so this is a non-breaking model upgrade.

Added

  • ematix.workflow(name=..., jobs=[...], depends_on={...}) — new declaration. depends_on reads as {downstream: [upstream, ...]}. Edges are mirrored into the existing per-job depends-on table so the scheduler's freshness gating keeps working.
  • @ematix.job — alias for @ematix.pipeline. New code should prefer .job.
  • /api/workflows — endpoint returning declared workflows + their jobs/edges, plus synthetic single-job workflows for any job not in a declared workflow.
  • flow web --module <name> — pre-imports a pipelines module so the UI can render schedule, next-run, and DAG before any scheduler tick.
  • Pipelines API now forecasts next_run_at for batch jobs from the registered cron + timezone when no scheduler record exists yet.

Changed

  • Web UI restructured to Workflows | Jobs | Runs | DAG tabs.
  • DAG view is now an SVG flowchart with cubic-Bézier arrows replacing the rank-as-column layout.
  • New shared DagFlowchart.svelte used by both the Workflows card preview and the full DAG view.
  • Loopback bind no longer requires a bearer token by default.

See CHANGELOG.md for the full set of additions + migration notes, and docs/USER_GUIDE.md for the new Workflows section.

Install

pip install ematix-flow==0.6.0

Wheels published: linux-x86_64 (py3.11/3.12/3.13/3.14), macos-arm64 (py3.11/3.12/3.13/3.14), plus sdist.