Skip to content

Releases: flow-php/flow

0.36.0

21 Apr 09:57

Choose a tag to compare

[0.36.0] - 2026-04-21

Added

Changed

Fixed

Contributors

Generated by Automation

0.35.1

09 Apr 11:05

Choose a tag to compare

[0.35.1] - 2026-04-09

Changed

Fixed

Contributors

Generated by Automation

0.35.0

07 Apr 21:11

Choose a tag to compare

[0.35.0] - 2026-04-07

Added

Changed

Contributors

Generated by Automation

0.34.3

27 Mar 22:25

Choose a tag to compare

[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

27 Mar 22:08

Choose a tag to compare

[0.34.2] - 2026-03-27

Fixed

Contributors

Generated by Automation

0.34.1

27 Mar 21:53

Choose a tag to compare

[0.34.1] - 2026-03-27

Added

Changed

  • #2268 - Let flow-php/parquet use engines based on arrow extension availability - @norberttech

Fixed

Contributors

Generated by Automation

0.34.0

26 Mar 10:23

Choose a tag to compare

[0.34.0] - 2026-03-26

Added

Changed

Fixed

Contributors

Generated by Automation

0.33.0

09 Mar 16:56

Choose a tag to compare

[0.33.0] - 2026-03-09

Added

Changed

Fixed

Removed

Contributors

Generated by Automation

0.32.0

23 Feb 20:56

Choose a tag to compare

[0.32.0] - 2026-02-23

Added

Changed

Fixed

Removed

Read more

0.31.0

19 Jan 17:27

Choose a tag to compare

[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

Read more