feat(pipeline): deprecate StatePipeline (#245 layer 7)#253
Merged
miguelgfierro merged 1 commit intoMay 28, 2026
Merged
Conversation
Seventh layer of the unification. StatePipeline now emits a DeprecationWarning on construction pointing users at PipelineEngine configured with state_schema= as the unified replacement. PipelineEngine has feature parity with StatePipeline after layers 1-6: state overlay, reducers, Pause, Send, cycles, recursion_limit, checkpointing, audit log, resume, start_at — plus parallel state-aware execution that StatePipeline could not provide. Changes: - StatePipeline.__init__ raises DeprecationWarning with migration text. - import warnings added at module level. - Class docstring includes a deprecation notice and migration example. StatePipeline still works — all 37 existing state-pipeline tests pass unchanged (they emit the new DeprecationWarning but continue to operate). Tests: 1 new in tests/unit/pipeline/test_state_pipeline_deprecation.py verifying the warning is raised and references PipelineEngine + #245. Full suite: 1595 passed. Layer 8 (full deletion of state_pipeline.py and dual-mode logic in builder.py) is tracked as follow-up — it requires migrating the 37 state-pipeline tests to the unified PipelineEngine surface and translating PipelineBuilder.branch(source, router, mapping) into conditional DAGEdges, which is more invasive than this deprecation layer warrants. Refs: #245
This was referenced May 28, 2026
ancongui
pushed a commit
that referenced
this pull request
May 31, 2026
…ate-state-pipeline feat(pipeline): deprecate StatePipeline (#245 layer 7)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Seventh layer of the unification (#245).
StatePipelinenow emits aDeprecationWarningon construction pointing users atPipelineEngineconfigured withstate_schema=as the unified replacement.Stacked on layer 6 (#252) which is already merged.
Why deprecate now
PipelineEnginehas full feature parity withStatePipelineafter layers 1-6:Changes
StatePipeline.__init__raisesDeprecationWarningwith migration text.import warningsadded.PipelineEnginemigration example.What still works
All 37 existing state-pipeline tests pass unchanged — they emit the new warning but continue to operate. Behavior is preserved.
Tests
1 new test in
tests/unit/pipeline/test_state_pipeline_deprecation.pyverifying the warning is raised and references bothPipelineEngineand issue #245.Full suite: 1595 passed.
Layer 8 (deletion) — deferred
Full deletion of
state_pipeline.py+ dual-mode logic inbuilder.pyis tracked as follow-up. It requires:PipelineBuilder.branch(source, router, mapping)into conditionalDAGEdges (especially the mapping=None case where targets are dynamic)._StateNodePlaceholderand the dual-modeadd_node/builddispatch.That's a multi-PR migration, not a single mechanical cleanup. Deferring keeps this PR safely scoped to the deprecation signal.
Refs
issue-147-pipeline-evolution