Releases: flow-php/flow
Releases · flow-php/flow
0.35.1
[0.35.1] - 2026-04-09
Changed
- #2294 - updated ext-php-rs in arrow-ext - @norberttech
Fixed
- dd19c1 - fragile failing tests - @norberttech
- #2294 - missing interfaces/exceptions in arrow-ext - @norberttech
- f1e3d8 - postgresql documentation examples - @norberttech
Contributors
Generated by Automation
0.35.0
[0.35.0] - 2026-04-07
Added
- #2292 - flow:sql:format CLI command to flow-php/symfony-postgresql-bundle - @norberttech
- #2291 - flow-php/symfony-filesystem-bundle - @norberttech
- #2290 - migrations to flow-php/postgresql - @norberttech
- #2290 - flow-php/symfony-postgresql-bundle - @norberttech
Changed
- eb94a1 - chore: updated dependencies - @norberttech
- e82db9 - chore: update arrow-ext installation instructions with precompiled binaries - @norberttech
Contributors
Generated by Automation
0.34.3
[0.34.3] - 2026-03-27
Fixed
- b2b99c - docker permissions while building arrow-ext binaries in workflow - @norberttech
Contributors
Generated by Automation
0.34.2
[0.34.2] - 2026-03-27
Fixed
- 29e1b5 - typo in flow-php/arrow-ext release workflow - @norberttech
Contributors
Generated by Automation
0.34.1
[0.34.1] - 2026-03-27
Added
- #2278 - workflow to precompile arrow extension binaries during release - @norberttech
- #2277 - Dedicated installation instructions for each package of monorepo - @norberttech
- #2274 - flow-php/arrow-ext to Dockerfile - @norberttech
- #2274 - flow-php/arrow-ext pie installation tests - @norberttech
- #2268 - arrow-ext and expose parquet reader/writer - @norberttech
- #2268 - ParquetEngine abstraction into flow-php/parquet - @norberttech
Changed
- #2268 - Let flow-php/parquet use engines based on arrow extension availability - @norberttech
Fixed
- #2274 - packages README files - @norberttech
- 32a488 - makefile.frag - @norberttech
- #2273 - arrow-ext installation through pie - @norberttech
Contributors
Generated by Automation
0.34.0
[0.34.0] - 2026-03-26
Added
- #2257 - parquet fixed array length support - @norberttech
- #2257 - byte encoding functions - @norberttech
Changed
- 5b4d92 - chore: update dependencies - @norberttech
- #2258 - optimize parquet library read/write performance - @norberttech
- #2257 - Refactored binnary writter/reader - @norberttech
Fixed
- 898e07 - failing static analysis - @norberttech
- #2271 - Documentation jsonl examples - @norberttech
- #2271 - Playground json/json/doctrine examples - @norberttech
- #2267 - Broken links on the installation docs. - @jaapio
- #2257 - improve parquet writer performance by 18% - @norberttech
Contributors
Generated by Automation
0.33.0
[0.33.0] - 2026-03-09
Added
- #2256 - http adapter/client to CLI application - @norberttech
- #2244 - more partitioning examples - @norberttech
- #2244 - more partitioning documentation - @norberttech
- #2241 - variadic arguments ADR - @norberttech
- #2234 - phpunit telemetry bridge package - @norberttech
- #2231 - missing attributes to telemetry console exporters - @norberttech
- #2231 - options to configure telemetry console exporters verbosity - @norberttech
- #2231 - added clock dsl function - @norberttech
- #2230 - Telemetry Examples - @norberttech
- #2230 - Reference to documentation above examples - @norberttech
Changed
- 9db3c7 - chore: updated dependencies - @norberttech
- #2250 - Optimzed rename operation performance - @norberttech
- #2244 - avoid removing files from other datasets using the same partitiong keys and the same output folder - @norberttech
- e4cc9e - chore: lock nix shell to nix 25.11 - @norberttech
- 1729a8 - feature: integrate datadog RUM - @norberttech
- be622a - refactor: add retry pattern to e2e website test, enable posthog integration - @norberttech
- 41b8d4 - chore: migrate website analytics from umami to posthog - @norberttech
- 7bd77c - chore: add datadog to list of sponsors - @norberttech
- #2231 - simplified telemetry examples - @norberttech
- #2230 - Move all examples to be executable in playground - @norberttech
- #2230 - Reorganized examples - @norberttech
- #2230 - refactored layout of docuentation playground - to use whole page width - @norberttech
Fixed
- #2250 - entries dropping metadata during rename - @norberttech
- #2249 - readLines() dropping falsy values in S3 and Azure source streams - @norberttech
- #2248 - dont save string length into min/max statistics - @norberttech
- #2246 - restore wider support for bricks/math dependency - @norberttech
- #2245 - support for explicit schemas in update/merge/delete query builders - @norberttech
- #2242 - Prevent fatal error when fetching Google sheet rows without values - @stloyd
- b46086 - failing symfony bundle tests - @norberttech
- #2231 - missing entry in bin/build-phar.sh script - @norberttech
Removed
- #2256 - deprecated code from Data Frame - @norberttech
- #2250 - rename related reprecated code - @norberttech
Contributors
Generated by Automation
0.32.0
[0.32.0] - 2026-02-23
Added
- #2228 - Add "symfony/polyfill-mbstring" as requirement when needed - @stloyd
- #2225 - telemetry attributes constraints - @norberttech
- #2225 - DataFrame name - @norberttech
- #2213 - phpstan integration with infection - @norberttech
- #2211 - more context to telemetry logger interface - @norberttech
- #2210 - Filesystem direct integration with Telemetry - @norberttech
- #2202 - Flow PHP - Symfony Telemetry Bundle - @norberttech
- #2198 - integration with flow-php/telemetry and flow-php/etl - @norberttech
- #2198 - Throuhgput instrument in Telemetry - @norberttech
- #2198 - Possibility to complete Meter Instruments on demand like spans - @norberttech
- #2193 - Internal interface Processor - @norberttech
- #2167 - New flow-php/symfony-http-foundation-telemetry-bridge package for Symfony HttpFoundation telemetry context propagation - @norberttech
- #2167 - PHPStan generics support to Carrier interface - @norberttech
- #2167 - Unified unwrap() method to all Carrier implementations - @norberttech
- #2167 - Fluent chaining support for Carrier::set() - @norberttech
- #2164 - Added pg_query_is_utility_stmt(string $sql) : bool function - @norberttech
- #2164 - extension installation tests on macos on ci/cd - @norberttech
Changed
- 67f412 - chore: update dependencies - @norberttech
- #2227 - Bump the lowest supported version of "brick/math" - @stloyd
- #2225 - naming conventions across whole monorepo - @norberttech
- #2225 - reorganized local dev telemetry resources - @norberttech
- #2224 - Rework
GoogleSheetExtractorto use batch get functionality - @stloyd - #2222 - Adjust
GoogleSheetExtractorrow data extraction - @stloyd - #2220 - Prevent using deprecated
brick/mathfunctions - @stloyd - #2213 - reduced mutation tests just to data frame library - @norberttech
- 9aa918 - chore: updated dependencies - @norberttech
- 4be034 - update: dependencies - @norberttech
- #2196 - Stages are now called Segments - @norberttech
- #2193 - Building DataFrame Pipeline as Stages - @norberttech
- f58d7e - refactor: remove homebrew formula and tap distribution - @norberttech
- #2167 - [BC] Carrier::set() return type changed from void to static - @norberttech
- #2167 - [BC] ArrayCarrier::toArray() replaced by unwrap() - @norberttech
- #2167 - [BC] ResponseCarrier::getResponse() replaced by unwrap() - @norberttech
- #2164 - Updated libpg_query to latest version - @norberttech
- #2164 - ci/cd workflow testing installation of the extension through pie - @norberttech
- 6f98ff - chore: set runner.time_unit to milliseconds in phpbench config - @norberttech
- d7b52a - refactor: report mode in phpbench reports in milliseconds - @norberttech
- 2a9ed5 - refactor: change number of iterations / revs in benchmarks - @norberttech
- 16a977 - refactor: github benchmark workflows to not install php anymore on runner - @norberttech
- 819d54 - refactor: phpbench report - @norberttech
- 56c3ea - refactor: increate retry_threshold for phpbench - @norberttech
Fixed
- #2225 - tracers loosing context - @norberttech
- #2225 - missing DataFrame telemetry coverage in trigger methods - @norberttech
- #2224 - Fixed wrong handling of skipping the header row in
GoogleSheetExtractor- @stloyd - #2213 - symfony telemetry bundle tests for lowest symfony versions - @norberttech
- #2212 - Support any regex delimiter and modifiers in compiler pass pattern matching - @bendavies
- #2211 - failing symfony telemetry bundle tests - @norberttech
- #2211 - regex patterns to exclude commands/templates in telemetry bundle - @norberttech
- #2202 - DSL documentation page - @norberttech
- #2196 - Autocast behavior when number is incorrectly detected as date to later be merged with float|int - @norberttech
- df7b4a - added missingstup for pg_query_is_utility_stmt method of pg-query-extension - @norberttech
- c6d9fe - static analysis configuration - @norberttech
- #2164 - installation of the extension on macos - @norberttech
- ca5c05 - benchmarks github actions workflow assertions - @norberttech
- 0ce788 - benchmarks github actions workflow assertions - @norberttech
- 35be1d - benchmarks github actions workflow - @norberttech
- f23365 - otel collector in baseline workflow - @norberttech
- b63538 - telemetry shutdown in benchmarks - @norberttech
- 330da9 - added otel collector to baseline - @norberttech
Removed
- [#2171](htt...
0.31.0
[0.31.0] - 2026-01-19
Added
- #2158 - New flow-php/monolog-telemetry-bridge package - connects Monolog with Flow Telemetry for unified logging export - @norberttech
- #2158 - TelemetryHandler - Monolog handler that forwards logs to Flow Telemetry with automatic trace context propagation (trace_id/span_id) - @norberttech
- #2158 - LogRecordConverter - converts Monolog LogRecord to Telemetry LogRecord with attribute prefixing (context., extra.) - @norberttech
- #2158 - SeverityMapper - maps Monolog levels to Telemetry severities with customizable mapping - @norberttech
- #2158 - ValueNormalizer - normalizes PHP values to Telemetry-compatible attribute types - @norberttech
- #2158 - DSL functions: telemetry_handler(), log_record_converter(), severity_mapper(), value_normalizer() - @norberttech
- #2158 - Automatic exception handling - Throwables in Monolog context are passed to Telemetry's setException() - @norberttech
- #2158 - Documentation for Monolog Telemetry Bridge - @norberttech
- #2150 - flow-php/telemetry library - @norberttech
- #2150 - flow-php/telemetry-otlp-bridge bridge - @norberttech
- #2140 - Benchmark documentation explaining infrastructure, workflow, and how to run benchmarks - @norberttech
- #2136 - Added normalize() and fromArray() methods to PostgreSQL Explain Plan classes (Cost, Timing, Buffers, PlanNode, Plan, ExplainConfig) for serialization/deserialization support - @norberttech
- #2136 - Added PHPStan type aliases (PlanNodeShape, TimingShape, BuffersShape) for improved type documentation - @norberttech
- #2134 - InvalidExplainConfigException - exception for invalid EXPLAIN config flag combinations - @norberttech
- #2134 - ExplainConfig fluent builder methods: withAnalyze(), withoutAnalyze(), withBuffers(), withoutBuffers(), withTiming(), withoutTiming(), withVerbose(), withoutVerbose(), withCosts(), withoutCosts(), withMemory(), withoutMemory(), withSettings(), withoutSettings(), withSummary(), withoutSummary(), withWal(), withoutWal(), withFormat() - @norberttech
- #2134 - ExplainConfig validation - throws InvalidExplainConfigException when BUFFERS, TIMING, or WAL are enabled without ANALYZE - @norberttech
- #2134 - PlanSummary::fromArray() static factory method - creates instance from normalized array (inverse of normalize) - @norberttech
- #2134 - ExplainConfigTest - unit tests for validation and fluent builder methods - @norberttech
- #2134 - PgSqlExplainTest - integration tests with data providers for ExplainConfig combinations - @norberttech
- #2133 - sql_to_limited_query(string $sql, int $limit) DSL function - adds LIMIT clause to queries without adding OFFSET - @norberttech
- #2133 - PlanSummary::normalize() method - returns all plan summary fields as snake_case keyed array - @norberttech
- #2133 - PlanSummary memory statistics: memoryUsed, memoryPeak - @norberttech
- #2133 - PlanSummary join statistics: hashJoinCount, nestedLoopCount, mergeJoinCount - @norberttech
- #2133 - PlanSummary buffer statistics: totalSharedHit, totalSharedRead, hasTempSpill - @norberttech
- #2133 - PlanSummary row statistics: estimatedRows, actualRows - @norberttech
- #2133 - LimitedQueryTest - 7 test cases for sql_to_limited_query function - @norberttech
- #2133 - PlanSummaryTest - 3 test cases for PlanSummary::normalize() method - @norberttech
Changed
- 620363 - chore: update dependencies - @norberttech
- 4c5efc - refactor: improve stabilit of benchmarks - @norberttech
- 91a5d0 - refactor: optimize benchmarks on ci/cd - @norberttech
- #2158 - updated minimum version of monolog to V3 across monorepo - @norberttech
- #2157 - Remove part of unnecessary recursion calls from
array_dot_get()method - @stloyd - #2154 - refactor: stabilize benchmarks - @norberttech
- 08dae8 - refactor: change runner for benchmark-baseline job - @norberttech
- af53ce - refactor: change runner for benchmark tests to flow-php-benchmark-runner - @norberttech
- #2152 - SpanEvent timestamp changed from nanoseconds (int) to DateTimeImmutable for better type safety and consistency - @norberttech
- #2152 - span_event() DSL function now requires explicit timestamp parameter - @norberttech
- #2152 - Span::recordException() now requires explicit timestamp parameter - @norberttech
- #2143 - Adjust
Parameter::asNumber()behaviour to match closer the PHP one - @stloyd - #2140 - GitHub Actions benchmarks now run on dedicated self-hosted runner (flow-php-runner) for consistent results - @norberttech
- #2131 - Update Homebrew TAP formula: flow-php to version: 0.30.0 - @norberttech
- #2136 - Optimized PostgreSqlCursorExtractor to break cursor loop early when fetched rows are less than fetch size, avoiding unnecessary database round-trips - @norberttech
- #2134 - ExplainConfig::withoutAnalyze() auto-disables buffers, timing, and wal options - @norberttech
- #2133 - PlanAnalyzer::summary() now computes and passes join counts, buffer statistics, and row data to PlanSummary - @norberttech
Fixed
- 493cce - benchmarks runner label on github actions workflows - @norberttech
- #2152 - Mermaid diagrams responsiveness on documentation pages - diagrams now scale properly and don't overlap - @norberttech
- b733f4 - documentation tests on website - @norberttech
- 99bb3b - telemetry library - @norberttech
- a71e6a - pr-comment and monorepo-split workflows - @norberttech
- #2151 - TransformerLoader - @norberttech
- [d14d49](d14d4909a2e3a734ac148924cc...
0.30.0
[0.30.0] - 2026-01-06
Added
- #2130 - Allow preserving existing values during DBAL upsert - @stloyd
- #2129 - Schema::isSame to use it for early exit merge operation when schema is the same - @norberttech
- #2129 - TypesMap::flowRowTypes() method for Entry-based type detection in DbalLoader - @norberttech
- #2129 - EnumType to TypesMap FLOW_TYPES mapping (maps to DBAL StringType) - @norberttech
- #2122 - StreamClosure interface for HTTP streaming completion callbacks - @norberttech
- #2122 - http_on_complete() DSL function to create stream closures from callables - @norberttech
- #2122 - DataStream::onComplete() method to set post-streaming callbacks - @norberttech
- #2122 - DataStream::config() method to configure DataFrame execution (enables Analyze/Report) - @norberttech
- #2122 - Config::analyze() method to retrieve configured Analyze instance - @norberttech
- #2122 - ConfigBuilder::analyze() method to set Analyze configuration at config level - @norberttech
- #2122 - ReportCollector class to encapsulate DataFrame execution analysis logic - @norberttech
- #2121 - postgresql - query parameters support for from_pgsql_cursor(), from_pgsql_limit_offset() and from_pgsql_key_set() extractors - @norberttech
- #2121 - postgresql - ParamRefCollector visitor for collecting parameter references from AST - @norberttech
- #2121 - postgresql - parseResult() method to ModificationContext for context-aware AST modifications - @norberttech
- #2121 - postgresql - auto-detection of existing query parameters in keyset pagination (placeholders are appended after the highest existing parameter number) - @norberttech
- #2120 - postgresql - support modification connection parameters - @norberttech
- #2119 - expose tables through from statement of select statement - @norberttech
- #2113 - postgresql - condition builder fluent interface - @norberttech
- #2104 - excel support to playground - @norberttech
- #2102 - ExcelLoader - @norberttech
- #2101 - cursor based extractor to postgresql adapter - @norberttech
- #2101 - dsl and builder to cover cursors to postgresql library - @norberttech
- #2096 - flow-php/etl-adapter-postgresql based on flow-php/postgresql library - @norberttech
- #2095 - added BoolArrayConverter for PostgreSQL BOOL[] type - @norberttech
- #2095 - IntArrayConverter for PostgreSQL INT2[], INT4[], INT8[] types - @norberttech
- #2095 - FloatArrayConverter for PostgreSQL FLOAT4[], FLOAT8[] types - @norberttech
- #2095 - TextArrayConverter for PostgreSQL TEXT[], VARCHAR[] types - @norberttech
- #2095 - UuidArrayConverter for PostgreSQL UUID[] type - @norberttech
- #2095 - JsonArrayConverter for PostgreSQL JSON[], JSONB[] types - @norberttech
- #2093 - Client::explain() : Plan - to postgresql client - @norberttech
- #2093 - More precise fetchScalarX functions to postgresql client - @norberttech
- #2091 - added SelectStatement::from() : From - @norberttech
- #2091 - sql_query_depth(string $query): int - @norberttech
- #2090 - expose helper methods on SelectStatement - @norberttech
- #2088 - expose Statements through ParsedQuery object - @norberttech
Changed
- a585f7 - chore: update dependencies - @norberttech
- #2129 - Run benchamrks on CI/CD synchronously - @norberttech
- #2129 - Improve loaders benchmarks performance - @norberttech
- #2129 - Increase benchmarks iterations on CI/CD to 3 - @norberttech
- #2129 - Entry type now is directly extracted from Definition - @norberttech
- #2129 - DbalLoader now uses Entry-based type detection instead of Schema-based detection for better performance - @norberttech
- #2129 - Replaced DbalLoader::withTypesDetector() with withTypesMap() for simpler API - @norberttech
- #2129 - DbalLoader now skips processing when rows are empty - @norberttech
- #2122 - DataFrame::run() now respects Analyze configured at Config level when not explicitly passed - @norberttech
- #2122 - DataFrame::run() refactored to use ReportCollector for cleaner code and better static analysis - @norberttech
- #2122 - FlowStreamedResponse now accepts optional StreamClosure and Config parameters - @norberttech
- #2121 - simplified DSL functions (from_pgsql_cursor, from_pgsql_limit_offset, from_pgsql_key_set) - removed optional parameters (pageSize, fetchSize, maximum) in favor of ->withXXX() fluent methods - @norberttech
- #2121 - postgresql - ModificationContext now requires ParseResult parameter for full AST access - @norberttech
- #2121 - postgresql - KeysetPaginationModifier now auto-detects parameter offset instead of requiring it in config - @norberttech
- #2111 - split query and result exception in postgresql client - @norberttech
- #2110 - updated openspout to accept only latest version - @norberttech
- #2103 - Simplify a little bit the
ExcelLoadercode - @stloyd - #2100 - OrderBy and OrderByItem were merged into single OrderBy class - @norberttech
- #2095 - array converters to throw ValueConversionException for invalid element types instead of silently converting - @norberttech
- a2bfdc - chores: cleanups - @norberttech
- #2087 - Update Homebrew TAP formula: flow-php to version: 0.29.0 - @norberttech
Fixed
- #2103 - **Fixing bug in
ExcelExtractorskipping the fi...