-
Notifications
You must be signed in to change notification settings - Fork 2.6k
chore!: Remove legacy pipeline_outputs deserialization support #10249
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
chore!: Remove legacy pipeline_outputs deserialization support #10249
Conversation
|
@GunaPalanivel is attempting to deploy a commit to the deepset Team on Vercel. A member of the Team first needs to authorize it. |
anakin87
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Blocking this PR for now, as the change is planned for release in 2.23.0 and we still need to complete the 2.22.0 release first.
|
Hi @anakin87, Thank you for the review! I completely understand the release timing - makes perfect sense to complete the 2.22.0 release before merging changes planned for 2.23.0. Questions:
I'll keep an eye on this PR and respond quickly to any feedback once you're ready to move forward. Thanks for coordinating the release process so carefully! Best regards, |
|
I'd say you can leave it open and we can resume it when it's 2.23.0 (in early 2026). |
|
Hi @anakin87, Hope you're doing well! I wanted to follow up on this PR now that we're in the 2.23.0 milestone period. I noticed the PR currently has merge conflicts that need to be resolved. I'm happy to:
Before I proceed with the rebase, I wanted to check:
I've kept the branch ready and I'm available to make any adjustments quickly to help move this forward. Thanks for your patience and for coordinating the release schedule! |
|
@GunaPalanivel thank you. Feel free to resolve conflicts. I'll review this PR in the next few days. We want to include it in the 2.23.0 release. |
Remove temporary deserialization logic for old pipeline_outputs format in pipeline snapshots. This backward-compatibility layer was introduced in PR deepset-ai#10096 and marked for removal in Haystack 2.23.0. BREAKING CHANGE: Pipeline snapshots created before Haystack 2.17.0 will no longer deserialize correctly. Users must recreate snapshots with the current Haystack version or manually migrate to the new serialization schema. Changes: - Remove conditional deserialization check in Pipeline.run() - Remove test_load_pipeline_snapshot_with_old_pipeline_outputs_format test - Add breaking change documentation with migration instructions The new format uses 'serialization_schema' and 'serialized_data' fields, consistent with other pipeline state serialization. Closes deepset-ai#10168 Ref deepset-ai#10096
a9e59b6 to
9f0f7d4
Compare
anakin87
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Seems OK.
@sjrl could you please review as well, since you know breakpoints better than me?
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
sjrl
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes this looks okay
anakin87
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you @GunaPalanivel!
Description
Removes the temporary backward-compatibility layer for deserializing legacy
pipeline_outputsformat in pipeline snapshots. This cleanup was scheduled for Haystack 2.23.0 as documented in issue #10168, following the fix introduced in PR #10096.Breaking Change Details
What Changed
Before (backward compatible):
After (new format only):
Impact
{"comp1": {"result": "value"}}- No longer supported{"serialization_schema": {...}, "serialized_data": {...}}- RequiredWho Is Affected?
Users with pipeline snapshots created before Haystack 2.17.0 (November 2025) that use pipeline breakpoints.
Migration Path
Option 1: Recreate Snapshots (Recommended)
Option 2: Manual Migration
If you have critical old snapshots, manually convert the
pipeline_outputsfield:Old format:
New format:
Changes Made
Code Cleanup
haystack/core/pipeline/pipeline.py(lines 252-259)_deserialize_value_with_schema()calltest/core/pipeline/test_breakpoint.py(lines 157-185)test_load_pipeline_snapshot_with_old_pipeline_outputs_format()test (31 lines)Documentation
releasenotes/notes/remove-legacy-pipeline-outputs-deserialization-5acccb0245b84890.yamlRelated Issues
pipeline_outputsfrom pipeline snapshot #10168 (Remove support for old pipeline_outputs deserialization)pipeline_outputsin pipeline snapshot #10096 (Original PR that fixed serialization and added temporary backward compatibility)Testing
Tests Passing ✅
Verification Steps
Timeline and Context
Rationale: Two-week grace period allowed users to upgrade and migrate snapshots before breaking change.
Checklist
pipeline.pytest_breakpoint.pyhatch run test:format)!for breaking changeNotes for Reviewers
Why This Is Safe to Remove
TODO: remove this in haystack 2.23.0What to Review
Related Documentation:
Release Note File Content