fix: Remove old reno and update reno (#9357)

* Remove old reno and update reno

* Update releasenotes/notes/dont-deepcopy-components-tools-b1be7ef7b4365116.yaml

Co-authored-by: Stefano Fiorucci <stefanofiorucci@gmail.com>

---------

Co-authored-by: Stefano Fiorucci <stefanofiorucci@gmail.com>
This commit is contained in:
Sebastian Husch Lee 2025-05-08 15:09:09 +02:00 committed by Sebastian Husch Lee
parent ade29fcf73
commit 2280f71fee
2 changed files with 4 additions and 10 deletions

View File

@ -1,7 +1,7 @@
--- ---
enhancements: enhancements:
- | - |
Updated pipeline execution logic to use a new utility method `deepcopy_with_fallback`, Updated pipeline execution logic to use a new utility method `_deepcopy_with_exceptions`, which attempts to deep copy an object and safely falls back to the original object if copying fails.
which skips deep-copying of `Component`, `Tool`, and `Toolset` instances when used as Additionally `_deepcopy_with_exceptions` skips deep-copying of `Component`, `Tool`, and `Toolset` instances when used as runtime parameters.
runtime parameters. This prevents errors and unintended behavior caused by trying to This prevents errors and unintended behavior caused by trying to deepcopy objects that contain non-copyable attributes (e.g. Jinja2 templates, clients).
deepcopy objects that contain non-copyable attributes (e.g. Jinja2 templates, clients). Previously, standard `deepcopy` was used on inputs and outputs which occasionally lead to errors since certain Python objects cannot be deepcopied.

View File

@ -1,6 +0,0 @@
---
fixes:
- |
Introduced `deepcopy_with_fallback` to improve robustness in the `Pipeline.run` method.
Previously, standard `deepcopy` was used on inputs and outputs to avoid unintended side effects from shared mutable data structures, as these values are accessed in multiple parts of the pipeline. However, certain Python objects cannot be deepcopied, which could lead to runtime errors.
The new `deepcopy_with_fallback` function attempts to deep copy an object and safely falls back to the original object if copying fails. This ensures pipeline execution remains stable while maintaining the protective behavior against shared-state modification.