|
1 | | -## [Unreleased] - 2026-08-13 |
| 1 | +## [Unreleased] - 2026-08-17 |
2 | 2 |
|
3 | 3 | ### Added |
| 4 | +- [#2599](https://github.com/flow-php/flow/pull/2599) - **flow-php/etl - to_branch() accepts a Transformation as an optional third argument** - [@norberttech](https://github.com/norberttech) |
| 5 | +- [#2599](https://github.com/flow-php/flow/pull/2599) - **flow-php/etl - retry_any_throwable_except() DSL and AnyThrowableExcept retry strategy** - [@norberttech](https://github.com/norberttech) |
| 6 | +- [#2599](https://github.com/flow-php/flow/pull/2599) - **flow-php/etl-adapter-doctrine - TransactionalDbalLoader::loaders() exposes wrapped loaders** - [@norberttech](https://github.com/norberttech) |
| 7 | +- [#2599](https://github.com/flow-php/flow/pull/2599) - **flow-php/etl-adapter-postgresql - TransactionalPostgreSqlLoader::loaders() exposes wrapped loaders** - [@norberttech](https://github.com/norberttech) |
4 | 8 | - [#2595](https://github.com/flow-php/flow/pull/2595) - **flow-php/types - MissingElementCastingException naming the failing structure element via getPrevious()** - [@norberttech](https://github.com/norberttech) |
5 | 9 | - [#2593](https://github.com/flow-php/flow/pull/2593) - **flow-php/types - array{} empty array type with type_empty_array() DSL function** - [@norberttech](https://github.com/norberttech) |
6 | 10 | - [#2593](https://github.com/flow-php/flow/pull/2593) - **flow-php/etl - array and array{} project onto json at any schema depth** - [@norberttech](https://github.com/norberttech) |
7 | 11 |
|
8 | 12 | ### Changed |
| 13 | +- [#2599](https://github.com/flow-php/flow/pull/2599) - **flow-php/etl - write_with_retries() no longer retries InvalidLogicException by default** - [@norberttech](https://github.com/norberttech) |
| 14 | +- [#2599](https://github.com/flow-php/flow/pull/2599) - **flow-php/etl - write_with_retries() refuses wrapping an armed Transformation** - [@norberttech](https://github.com/norberttech) |
| 15 | +- [#2599](https://github.com/flow-php/flow/pull/2599) - **flow-php/etl - a Transformation triggering its own frame (fetch()/count()/schema()) throws InvalidLogicException** - [@norberttech](https://github.com/norberttech) |
| 16 | +- [#2599](https://github.com/flow-php/flow/pull/2599) - **flow-php/etl - unpartitioned window functions no longer inject collect() and sortBy() stages** - [@norberttech](https://github.com/norberttech) |
9 | 17 | - [#2595](https://github.com/flow-php/flow/pull/2595) - **flow-php/types - JSON string payloads for structure/list/map decode and cast element-wise** - [@norberttech](https://github.com/norberttech) |
10 | 18 | - [#2593](https://github.com/flow-php/flow/pull/2593) - **flow-php/etl-adapter-json - to_json()/to_json_lines() write list/map/structure/array entries as nested JSON instead of escaped strings** - [@norberttech](https://github.com/norberttech) |
11 | 19 |
|
12 | 20 | ### Fixed |
| 21 | +- [#2599](https://github.com/flow-php/flow/pull/2599) - **flow-php/etl - transformation-wrapped loader is closed once per pipeline, not once per batch** - [@norberttech](https://github.com/norberttech) |
| 22 | +- [#2599](https://github.com/flow-php/flow/pull/2599) - **flow-php/etl - loader wrappers forward closure() to the loaders they wrap** - [@norberttech](https://github.com/norberttech) |
| 23 | +- [#2599](https://github.com/flow-php/flow/pull/2599) - **flow-php/etl - operations inside a Transformation answer for the whole stream, not per batch** - [@norberttech](https://github.com/norberttech) |
| 24 | +- [#2599](https://github.com/flow-php/flow/pull/2599) - **flow-php/etl - to_branch()->withTransformation() spans the whole filtered stream** - [@norberttech](https://github.com/norberttech) |
| 25 | +- [#2599](https://github.com/flow-php/flow/pull/2599) - **flow-php/etl - batch size optimization sees through loader wrappers** - [@norberttech](https://github.com/norberttech) |
| 26 | +- [#2599](https://github.com/flow-php/flow/pull/2599) - **flow-php/etl - save mode no longer leaks between frames sharing one Config** - [@norberttech](https://github.com/norberttech) |
| 27 | +- [#2599](https://github.com/flow-php/flow/pull/2599) - **flow-php/etl - no SplObjectStorage deprecations on PHP 8.5** - [@norberttech](https://github.com/norberttech) |
| 28 | +- [#2599](https://github.com/flow-php/flow/pull/2599) - **flow-php/etl-adapter-doctrine - to_dbal_transaction() runs closure() inside a transaction** - [@norberttech](https://github.com/norberttech) |
| 29 | +- [#2599](https://github.com/flow-php/flow/pull/2599) - **flow-php/etl-adapter-postgresql - to_pgsql_transaction() runs closure() inside a transaction** - [@norberttech](https://github.com/norberttech) |
13 | 30 | - [#2595](https://github.com/flow-php/flow/pull/2595) - **flow-php/types - structure cast no longer fabricates values for absent or null elements whose type rejects null** - [@norberttech](https://github.com/norberttech) |
14 | 31 | - [#2595](https://github.com/flow-php/flow/pull/2595) - **flow-php/types - list/map cast of null throws instead of returning an empty collection** - [@norberttech](https://github.com/norberttech) |
15 | 32 | - [#2595](https://github.com/flow-php/flow/pull/2595) - **flow-php/types - structures with only optional elements accept an empty payload** - [@norberttech](https://github.com/norberttech) |
|
19 | 36 | - [#2593](https://github.com/flow-php/flow/pull/2593) - **flow-php/etl - Floe inferred schema preserves first batch nullability instead of making every column nullable** - [@norberttech](https://github.com/norberttech) |
20 | 37 | - [#2593](https://github.com/flow-php/flow/pull/2593) - **flow-php/types - array type detection never returns a type that rejects its own input** - [@norberttech](https://github.com/norberttech) |
21 | 38 |
|
| 39 | +### Removed |
| 40 | +- [#2599](https://github.com/flow-php/flow/pull/2599) - **flow-php/etl - Extractor\SwappableRowsExtractor** - [@norberttech](https://github.com/norberttech) |
| 41 | +- [#2599](https://github.com/flow-php/flow/pull/2599) - **flow-php/etl - Config::filesystemStreams() and the FilesystemStreams constructor parameter** - [@norberttech](https://github.com/norberttech) |
| 42 | + |
22 | 43 | ## [0.43.0] - 2026-08-10 |
23 | 44 |
|
24 | 45 | ### Added |
|
0 commit comments