Skip to content

Validate pipeline specs during submit#29

Merged
Volv-G merged 2 commits into
TangleML:masterfrom
Volv-G:piforge/pplx-pr-review/master-pipeline-runner-authoring-3e10657
Jul 15, 2026
Merged

Validate pipeline specs during submit#29
Volv-G merged 2 commits into
TangleML:masterfrom
Volv-G:piforge/pplx-pr-review/master-pipeline-runner-authoring-3e10657

Conversation

@Volv-G

@Volv-G Volv-G commented Jul 15, 2026

Copy link
Copy Markdown
Collaborator

Summary

Run the full local pipeline authoring validator during tangle sdk pipeline-runs submit and --dry-run, and route the high-level runner path through the same default validation hook. This catches authoring-shape errors locally with Pipeline validation failed before a pipeline run is created.

Also bumps tangle-cli from 0.1.2 to 0.1.3.

What changed

  • Added collect_pipeline_spec_errors(...) alongside validate_pipeline_spec(...) so submit/run flows can compose with the existing list[str] validation hook contract.
  • Moved the OSS default validate_pipeline_for_run(...) implementation to the base PipelineRunHooks, so the real PipelineRunManager submit path and PipelineRunner inheritance path share the same behavior.
  • Validates in the PipelineRunManager.prepare_submit_payload_from_spec(...) choke point, which backs both:
    • tangle sdk pipeline-runs submit
    • tangle sdk pipeline-runs submit --dry-run
  • Validation timing is post-hydration for normal submit, so the hydrated/resolved pipeline graph is validated. With --no-hydrate, the as-is local spec is validated.
  • Root pipeline shape is enforced by the authoring validator itself: the root must have implementation.graph; a bare implementation.container root fails with implementation.graph must be an object.
  • Updated README docs and tests for submit/dry-run validation, bare-container root rejection, post-hydration valid/invalid template cases, and runner skip-validation plumbing.

Relationship to PR #27

This is independent of PR #27 and is based on master, not on PR #27. It intentionally does not include PR #27’s proposed --skip-validation CLI flag or separate narrow submit-root check. Instead, submit uses the existing full pipelines validate authoring validator at the manager choke point.

Test plan

  • uv run --frozen tangle version0.1.3
  • uv run --frozen pytest -q692 passed, 4 warnings
  • uv run --frozen ruff check packages/tangle-cli/src/tangle_cli/__init__.py packages/tangle-cli/src/tangle_cli/pipeline_run_manager.py packages/tangle-cli/src/tangle_cli/pipeline_runner.py packages/tangle-cli/src/tangle_cli/pipelines.py tests/test_pipeline_runs_cli.py tests/test_pipelines_cli.py tests/test_packaging.py → passed
  • git diff --check → passed

Run the full pipelines validate authoring validator during pipeline-runs submit and --dry-run after hydration, and route PipelineRunner through the same base hook. Root graph requirements are enforced by the authoring validator, with README and tests updated. Bump tangle-cli patch version to 0.1.3. This is based on master and intentionally excludes PR TangleML#27 skip-validation CLI flag and separate submit-root check.

Assisted-By: devx/5490f7cb-c7e4-4cf5-b525-a8c4e2af55b1
@Volv-G Volv-G requested a review from Ark-kun as a code owner July 15, 2026 01:49
Assisted-By: devx/5490f7cb-c7e4-4cf5-b525-a8c4e2af55b1
@Volv-G Volv-G merged commit a831484 into TangleML:master Jul 15, 2026
1 check passed
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