Releases: flow-php/flow
Releases · flow-php/flow
Release list
0.43.0
[0.43.0] - 2026-08-10
Added
- #2589 - flow-php/etl - UnionDefinition::memberFor() resolving a union member from a value - @norberttech
- #2589 - flow-php/etl - CommonType resolving a common type for incompatible definitions - @norberttech
- #2589 - flow-php/etl - UnionMembers and UnionTypeNormalizer collaborators - @norberttech
- #2588 - flow-php/types - static analysis fixture pinning the narrowed type of every type_*() through assert(), cast() and isValid() - @norberttech
- #2587 - flow-php/etl - enum_value() scalar function projecting an enum to its backing value - @norberttech
- #2587 - flow-php/etl - enum_name() scalar function projecting an enum to its case name - @norberttech
- #2586 - flow-php/etl - ElementCompatibility for structure element matching - @norberttech
- #2586 - flow-php/etl - TypeMerge merges structures, lists and maps instead of collapsing to json - @norberttech
- #2586 - flow-php/types - StructureShapeInference fixture guarding type_structure() shape inference - @norberttech
- #2584 - flow-php/symfony-telemetry-bundle - DefinitionClassResolver resolving a definition class through parent chains and %parameter% placeholders - @norberttech
- #2584 - flow-php/symfony-telemetry-bundle - ServiceIdPatterns matching a service id against exact ids and regular expressions - @norberttech
- #2584 - flow-php/symfony-telemetry-bundle - unit and integration tests for CacheTelemetryPass and Psr18ClientTelemetryPass - @norberttech
- #2583 - flow-php/symfony-telemetry-bundle - root enabled flag, disabled keeps a no-op Telemetry and drops all machinery - @norberttech
- #2583 - flow-php/symfony-telemetry-bundle - flow.telemetry.enabled container parameter, always defined - @norberttech
- #2582 - flow-php/symfony-telemetry-bundle - configurable sampler.root for the parent_based sampler - @norberttech
- #2582 - flow-php/symfony-telemetry-bundle - instrumentation.http_kernel.require_trace_context to trace only requests arriving with a trace context - @norberttech
- #2580 - flow-php/web - self-hosted mermaid, loaded lazily only on pages with a diagram - @norberttech
- #2579 - flow-php/web - Floe reading and writing playground examples - @norberttech
- #2579 - flow-php/web - orders.xlsx, orders.floe and partitioned CSV playground datasets - @norberttech
- #2579 - flow-php/web - test asserting every example references a shipped and registered dataset - @norberttech
- #2572 - flow-php/web - Work-Shop section under /work-shop with Blueprint, consulting, how-it-works and success pages - @norberttech
- #2572 - flow-php/web - Polar embedded checkout on the Blueprint listing - @norberttech
- #2572 - flow-php/web - Terms of Sale and Privacy Policy for the Work-Shop - @norberttech
- #2572 - flow-php/web - Anthropic to the sponsors list - @norberttech
- #2571 - flow-php/symfony-postgresql-bundle - profiler.max_query_length option bounding retained statements - @norberttech
- #2571 - flow-php/symfony-postgresql-bundle - panel marks truncated statements and excludes them from EXPLAIN - @norberttech
- #2568 - flow-php/flow-php-ext - precompiled musl binaries for Alpine, for every PHP/arch/thread-safety combination - @norberttech
- #2568 - flow-php/flow-php-ext - release artifacts are verified in a clean runtime container before upload - @norberttech
- #2566 - flow-php/etl - window frames via rowsBetween() with unbounded_preceding(), preceding(), current_row(), following() and unbounded_following() - @norberttech
- #2566 - flow-php/etl - count() over a window without a reference counts every row in the frame - @norberttech
- #2566 - flow-php/etl - rank() and dense_rank() accept multiple orderBy() columns - @norberttech
- #2566 - flow-php/etl - FrameAccumulating and PartitionRanking contracts for incremental window evaluation - @norberttech
- #2561 - flow-php/telemetry - Tracer::activate() returning a detachable Scope - @norberttech
- #2561 - flow-php/telemetry - Scope::DETACHED, Scope::INACTIVE and Scope::MISMATCH detach results - @norberttech
- #2561 - flow-php/etl - FloeStreamReader::close() - @norberttech
- #2557 - ci - reusable job-docker-image.yml workflow shared by baseline and release. - @norberttech
Changed
- 723244 - chore: update dependencies - @norberttech
- #2589 - flow-php/etl - array inside a union projects to json - @norberttech
- #2589 - flow-php/etl - incompatible containers widen to json at column and element level - @norberttech
- #2589 - flow-php/flow-php-ext - Rust contributing guide documents both extensions - @norberttech
- #2588 - flow-php/types - assertion tags dropped the @phpstan- prefix - @norberttech
- #2588 - flow-php/types - architecture docs record why every implementation keeps its @template and restates @return - @norberttech
- #2586 - flow-php/types - a Type implementation's generic parameter is now the value it represents - @norberttech
- #2586 - flow-php/types - type_*() return their concrete class instead of Type, except type_from_array() - @norberttech
- #2586 - flow-php/types - MapType takes one generic parameter instead of two - @norberttech
- #2586 - flow-php/etl - conflicting structure elements widen to string, promoting numerics losslessly - @norberttech
- b5819f - refactor(flow-php/symfony-telemetry-bundle): tidy up InterfaceAliasRepointe - @norberttech
- #2585 - flow-php/symfony-telemetry-bundle - aliases the decorator cannot implement now resolve to the untraced pool - @norberttech
- #2584 - flow-php/symfony-telemetry-bundle - class lookup uses ContainerBuilder::getReflectionClass() so container invalidation resources are registered - @norberttech
- #2584 - flow-php/symfony-telemetry-bundle - exclude pattern matching extracted out of the compiler passes into ServiceIdPatterns - [@norberttech](https://gi...
0.42.0
[0.42.0] - 2026-07-27
Added
- #2556 - flow-php/etl - Schema Immutability ADR - @norberttech
- #2555 - docker - PHP 8.5 image with libpq 18 and native arrow, flow_php and pg_query extensions enabled - @norberttech
- #2555 - wasm - Opcache with a working shared-memory backend in the playground - @norberttech
- #2555 - wasm - playground recycles the PHP module automatically when memory runs high - @norberttech
- #2547 - flow-php/etl-adapter-http - declarative from_http_paginated extractor with page-number, offset/limit, cursor, next-url, link-header and last-record strategies - @norberttech
- #2547 - flow-php/etl-adapter-http - composable stop conditions and pluggable request injection (query/header/body/uri) for pagination - @norberttech
- #2547 - flow-php/etl-adapter-http - optional Schema argument on all HTTP extractor DSL functions - @norberttech
- #2544 - flow-php/etl - "Performance Optimizations" blog post with benchmarks and diagrams - @norberttech
- #2544 - flow-php/etl - blog RSS feed at /rss.xml with autodiscovery and subscribe links - @norberttech
- #2543 - flow-php/etl - Standalone Flow\ETL\Bucketing storage backend with Memory, Filesystem and PSR-16 implementations. - @norberttech
- #2543 - flow-php/etl - BucketingProcessor with pluggable strategies (HashBucketing, SortedRunBucketing). - @norberttech
- #2543 - flow-php/etl - Algorithm builder DSL functions: memory_sort(), external_sort(), hash_join(), hash_group_by(). - @norberttech
- #2543 - flow-php/etl - Floe Options value object with floe_options() DSL and validateData option. - @norberttech
- #2540 - flow-php/etl - Floe Options value object with validateData toggle - @norberttech
- #2540 - flow-php/etl - floe_options() DSL and options argument on to_floe() - @norberttech
- #2538 - phpbench based benchmarks - @norberttech
- #2538 - flow-php/etl - selectable Floe engine (native/pure-PHP) on from_floe()/to_floe() - @norberttech
- #2538 - flow-php/etl-adapter-parquet - selectable engine (arrow/pure-PHP) on from_parquet()/to_parquet() - @norberttech
- #2536 - flow-php/etl - bucketed hash join with disk spilling and JoinConfig DSL - @norberttech
- #2536 - flow-php/etl - Row\Encoder and Row\Hydrator abstractions (PHP, native, adaptive) - @norberttech
- #2536 - flow-php/etl - NullEntry and NullDefinition - @norberttech
- #2536 - flow-php/etl - Floe stream reader/writer with PHP and Rust encoders - @norberttech
- #2536 - flow-php/etl - InMemoryBucketsCache for external sort - @norberttech
- #2536 - flow-php/etl - Serializer DSL functions - @norberttech
- #2536 - flow-php/filesystem - in-memory string source/destination streams - @norberttech
- #2532 - flow-php/etl - EntryInstantiator and Instantiators for constructor-less entry instantiation - @norberttech
- #2532 - flow-php/etl - EntryFactory::instantiate() creating entries from schema definitions without casting - @norberttech
- #2532 - flow-php/etl - Definition::entryClass() on all schema definitions, UnionDefinition resolves it from the left union member - @norberttech
- #2532 - flow-php/etl-adapter-parquet - ValueHydrator restoring Json/Uuid value objects from raw parquet strings - @norberttech
- #2473 - Configurable, memory-efficient GroupBy aggregation: ConfigBuilder::aggregationAlgorithm() and the AggregationAlgorithms enum select between MEMORY_AGGREGATION (default, in-memory hash map) and EXTERNAL_AGGREGATION (sorts by the group-by columns and folds, spilling to disk for bounded memory), with aggregationFilesystem() for the spill protocol. - @MrHDOLEK
- #2473 - GroupBy streams its result in batches instead of materializing every group into a single Rows. - @MrHDOLEK
- #2530 - Add GHA to check commit authorship - @stloyd
- #2526 - flow-php/etl - externalSortBucketSize config controlling rows per external sort bucket (default 10000) - @norberttech
- #2525 - flow-php/symfony-telemetry-bundle - RouteNamePathMap optional cache warmer building a [route name => path] map at cache:warmup, rebuilt lazily when missing - @norberttech
- #2523 - flow-php/etl - Floe binary row serialization format with writer, reader, merger, extractor, loader and DSL. - @norberttech
- #2523 - flow-php/flow-php-ext - new Rust-based PHP extension for native Floe encoding/decoding. - @norberttech
- #2523 - flow-php/etl - Cache::read() for streaming cached Rows in batches. - @norberttech
- #2522 - FlowContext::calculator() backed by a shared Calculator instance held in Config - @MrHDOLEK
- #2522 - sum(ref('x'), exact: true) - opt-in arbitrary-precision (brick/math) summation; exact accepts ScalarFunction|bool, so the flag can also be driven per row by a scalar expression or a boolean column - @MrHDOLEK
- #2516 - Add a new
ref()->domElementNamespace()function - @stloyd - #2516 - Add support for a new
\Dom\XmlDocument(PHP 8.4+) in XML handling - @stloyd - #2510 - flow-php/etl-adapter-json - bidirectional JSON Schema converter with schema_from_json_schema() and schema_to_json_schema() DSL functions - @norberttech
- #2510 - flow-php/etl-adapter-json - $ref resolution for internal pointers, local files and remote http(s) documents via PSR-18 client, with circular reference detection - @norberttech
- #2510 - flow-php/etl-adapter-json - combinator support: allOf deep merge, anyOf/oneOf as nullable or union types, boolean schemas - @norberttech
- #2510 - flow-php/etl-adapter-json - JSON Schema annotations preserved in definition metadata under json_schema. keys* - @norberttech
- #2510 - flow-php/etl - UnionDefinition and union_schema() DSL function for union type schema definitions - @norberttech
- #2509 - flow-php/filesystem - {column} partition placeholders in paths with extraction, glob listing and filter support - @norberttech
- #2509 - flow-php/etl - writing partitions into file/directory names via placeholders in destination paths - @norberttech
- #2509 - **flow-php/etl - reading placeholder paths recovers partitions from file names, includ...
0.41.1
[0.41.1] - 2026-07-01
Added
- #2499 - flow-php/symfony-telemetry-bundle - configurable messenger trace (worker/handlers/both/none) and link (dispatcher/worker/both) modes - @norberttech
- #2499 - flow-php/symfony-telemetry-bundle - worker receive cycle traced as one messenger.receive span per pass, idle passes marked - @norberttech
- #2499 - flow-php/symfony-telemetry-bundle - transport poll instrumentation suppressed during the receive loop to avoid orphan spans - @norberttech
- #2499 - flow-php/telemetry - context-scoped tracing suppression producing non-recording spans - @norberttech
- #2499 - flow-php/telemetry - opt-in per-signal entry cap on MemoryExporter - @norberttech
- #2495 - flow-php/symfony-telemetry-bundle - messenger instrumentation emits messaging metrics (consumed/sent counters, process duration histogram) with configurable unit and on/off toggle - @norberttech
- #2492 - web/landing - Flow PHP 0.41.0 release blog post - @norberttech
- #2492 - web/landing - optimize-images Just task with oxipng/jpegoptim nix deps - @norberttech
Changed
- #2495 - flow-php/etl - emitted metric names standardized to flow.etl. and flow.cache.** - @norberttech
- #2495 - flow-php/filesystem - emitted metric names standardized to flow.filesystem.* - @norberttech
- #2495 - flow-php/postgresql - metric names aligned to OTEL db.client. semantic conventions* - @norberttech
- #2495 - flow-php/symfony-telemetry-bundle - cache metric names changed to flow.cache.* - @norberttech
- #2495 - flow-php/phpunit-telemetry-bridge - metric names folded under flow.phpunit.* - @norberttech
- #2495 - flow-php/telemetry - docblock metric name examples updated - @norberttech
- #2492 - web/landing - widen blog post and changelog layout, add figure/image prose styles - @norberttech
- #2492 - web/landing - losslessly recompress landing images - @norberttech
- #2492 - web/landing - regenerate DSL autocompletion functions - @norberttech
Fixed
- #2499 - flow-php/telemetry - profiler signal store no longer grows unbounded in long-running messenger workers (OOM) - @norberttech
- #2495 - flow-php/postgresql - operation duration histogram uses correct second-scale bucket boundaries - @norberttech
Removed
- #2499 - flow-php/symfony-telemetry-bundle - messenger propagation_style config and its continue mode - @norberttech
Contributors
Generated by Automation
0.41.0
[0.41.0] - 2026-06-29
Added
- #2489 - flow-php/symfony-telemetry-bundle - security instrumentation - @norberttech
- #2489 - flow-php/symfony-telemetry-bundle - enriched web profiler panel - @norberttech
- #2489 - flow-php/symfony-telemetry-bundle - trace context propagation and route-aware span naming - @norberttech
- #2489 - flow-php/symfony-telemetry-bundle - long-running worker runtime support - @norberttech
- #2489 - flow-php/symfony-http-foundation-telemetry-bridge - query string trace context carrier - @norberttech
- #2487 - flow-php/telemetry - ConditionalExporter that gates a wrapped exporter behind a runtime flag - @norberttech
- #2487 - flow-php/symfony-telemetry-bundle - per-exporter enabled flag supporting literal booleans and %env(bool:...)% - @norberttech
- #2482 - flow-php/telemetry-otlp-bridge - AsyncCurlTransport (curl_multi) with bounded select-driven tick() - @norberttech
- #2482 - flow-php/telemetry-otlp-bridge - otlp_async_curl_transport() and otlp_async_curl_options() DSL helpers - @norberttech
- #2482 - flow-php/symfony-telemetry-bundle - transport.type 'async_curl', auto-pumped on WorkerRunningEvent - @norberttech
- #2480 - flow-php/symfony-filesystem-cache-bridge - accept an optional PSR-20 clock - @norberttech
- #2477 - flow-php/psr3-telemetry-bridge - interpolate {placeholder} tokens in telemetry log messages - @norberttech
- #2477 - flow-php/monolog-telemetry-bridge - interpolate {placeholder} tokens in telemetry log messages - @norberttech
- #2475 - flow-php/symfony-postgresql-bundle - Flow Migrations profiler panel showing executed/pending/unavailable migrations per connection - @norberttech
- #2475 - flow-php/symfony-postgresql-bundle - profiler.migrations config toggle (default: true) - @norberttech
- #2409 - Add git detector to telemetry - @jdecool
- #2409 - Add git detector to phpunit telemetry - @jdecool
- #2468 - flow-php/symfony-telemetry-bundle - controller body span, default on, as child of the request span - @norberttech
- #2468 - flow-php/symfony-telemetry-bundle - opt-in controller.get_callable resolution span - @norberttech
- #2468 - flow-php/symfony-telemetry-bundle - opt-in controller.get_arguments aggregate span - @norberttech
- #2468 - flow-php/symfony-telemetry-bundle - opt-in per-resolver controller.argument_value_resolver spans - @norberttech
- #2467 - flow-php/telemetry-otlp-bridge - non-blocking CurlTransport::tick() to drive in-flight requests - @norberttech
- #2467 - flow-php/symfony-telemetry-bundle - pump curl transports on Messenger WorkerRunningEvent - @norberttech
- #2466 - flow-php/telemetry - time-based flush for batching log, metric and span processors - @norberttech
- #2466 - flow-php/symfony-telemetry-bundle - per-message telemetry flush on Messenger worker events - @norberttech
- #2465 - flow-php/symfony-telemetry-bundle - console log output aligned with CLI verbosity (-v/-vv/-vvv), off by default. - @norberttech
- #2465 - flow-php/symfony-telemetry-bundle - opt-in logger_provider.console_output config with overridable verbosity_levels. - @norberttech
- #2462 - flow-php/symfony-telemetry-bundle - messenger propagation_style option (continue/link) with new MessengerTracePropagation enum - @norberttech
- #2459 - Flow\ETL\Schema::sort() accepting a pluggable SortingStrategy (defaults to AlphabeticalStrategy) - @MrHDOLEK
- #2459 - Core sorting strategies AlphabeticalStrategy, TypeStrategy, MetadataStrategy and CombinedStrategy, exposed via
sort_by_name(), sort_by_type(), sort_by_type_and_name() and sort_by_metadata() DSL helpers - @MrHDOLEK - #2459 - PostgreSqlSortingStrategy (primary-key columns first, then by PostgreSQL type, then by name) exposed via the pgsql_sort_strategy() DSL helper - @MrHDOLEK
- #2460 - flow-php/symfony-telemetry-bundle - inject trace context into outgoing response headers - @norberttech
- #2458 - flow-php/symfony-telemetry-bundle - cleanup subscriber completing Twig spans orphaned by a render exception on terminate/kernel.reset - @norberttech
- #2408 - SEAL adapter (flow-php/etl-adapter-seal) — a single, strongly typed integration for SEAL search engines (Elasticsearch, OpenSearch, Meilisearch, Algolia, Solr,
Typesense, RediSearch, Loupe) - @MrHDOLEK - #2408 - from_seal() extractor and to_seal() loader, working with any SEAL EngineInterface - @MrHDOLEK
- #2408 - to_seal_schema() and seal_schema_to_flow() DSL — recursive, bi-directional Flow Schema ↔ SEAL Schema conversion (nested structures, lists and
maps) - @MrHDOLEK - #2408 - seal_create_index(), seal_drop_index(), seal_create_schema() and seal_drop_schema() DSL index-lifecycle helpers - @MrHDOLEK
- #2457 - flow-php/symfony-filesystem-bundle - inject individual mounted filesystems via named-argument aliases - @norberttech
- #2457 - flow-php/symfony-filesystem-bundle - #[AsFilesystem] attribute to select a mount to inject - @norberttech
- #2454 - Positional schema definition mutations on Flow\ETL\Schema: prepend(), insertAt(), addBefore(), addAfter(), moveTo(), moveBefore(), moveAfter() and reorder() - @bendavies
Changed
- c335cb - chore: update dependencies and fix mago lint/analyze finding - @norberttech
- #2489 - flow-php/symfony-postgresql-bundle - lazy connections by default - @norberttech
- #2486 - flow-php/postgresql - report decoded node and parse-result PostgreSQL version on SelectStmt mismatch - @norberttech
- #2482 - flow-php/telemetry-otlp-bridge - CurlTransport is now synchronous; send() blocks and throws on failure - @norberttech
- #2482 - flow-php/telemetry-otlp-bridge - curl request timeout default raised to 10000ms - @norberttech
- #2482 - flow-php/symfony-telemetry-bundle - async_curl connect_timeout default 1500ms, pump_timeout 100ms - @norberttech
- #2481 - flow-php/symfony-telemetry-bundle - http client span now completes when the response is consumed, not at request() return - @norberttech
- #2477 - flow-php/symfony-postgresql-bundle - migrations target a single configured connection - [@norberttech](https:/...
0.40.0
[0.40.0] - 2026-06-16
Added
- #2448 - flow-php/symfony-telemetry-bundle - Web Profiler panel with spans, metrics and logs. - @norberttech
- #2448 - flow-php/symfony-postgresql-bundle - Web Profiler panel recording queries with EXPLAIN support. - @norberttech
- #2448 - flow-php/postgresql - RecordingClient and QueryLog to capture executed queries. - @norberttech
- #2448 - flow-php/telemetry - CompositeExporter fanning signals out to multiple exporters. - @norberttech
- #2446 - flow-php/postgresql - ColumnDefault value object and ColumnType::isSameBaseType() - @norberttech
- #2442 - flow-php/telemetry - log severity exposed to the attribute filter as log.severity and log.severity_name - @norberttech
- #2442 - flow-php/symfony-telemetry-bundle - per-channel severity thresholds via attribute_filtering log middleware - @norberttech
- #2441 - flow-php/phpunit-telemetry-bridge - resource_attributes parameter for custom OTLP resource attributes - @norberttech
- #2439 - flow-php/postgresql - TimestampConverter normalizing DateTimeInterface to UTC - @norberttech
- #2437 - flow-php/telemetry - attribute filter with compiled matcher tree (rule/all/any/not) - @norberttech
- #2437 - flow-php/telemetry - attribute filtering processors for spans and metrics - @norberttech
- #2437 - flow-php/telemetry - log pipeline with enrich/filter/severity middleware and a sink - @norberttech
- #2437 - flow-php/telemetry - attribute matching sampler and DSL functions for all samplers - @norberttech
- #2437 - flow-php/telemetry - per-scope signal attributes merged into every signal - @norberttech
- #2437 - flow-php/symfony-telemetry-bundle - config for filtering, log pipeline, sampler and logging channels - @norberttech
- #2435 - etl-adapter-postgresql - explicit column position in index/unique metadata - @norberttech
- #2435 - etl-adapter-postgresql - a column can belong to multiple indexes - @norberttech
- #2434 - flow-php/symfony-telemetry-bundle - #[WithTelemetryChannel] attribute to scope a service's logger to a named channel - @norberttech
- #2434 - flow-php/symfony-telemetry-bundle - optional capture_framework_channels to reroute Symfony's monolog.logger channels (off by default) - @norberttech
- #2434 - flow-php/symfony-telemetry-bundle - per-channel binding of PSR-3 LoggerInterface and native Logger with $Logger aliases - @norberttech
Changed
- 8df0b5 - chore: update project dependencies - @norberttech
- #2450 - Fallback to the Symfony XML configuration only at
^6.4.0- @stloyd - #2449 - Migrate Symfony XML configuration usage to the PHP one - @stloyd
- #2446 - flow-php/postgresql - column and domain defaults are modeled as ColumnDefault (breaking ColumnShape/DomainShape default shape) - @norberttech
- #2441 - flow-php/telemetry - OTEL_RESOURCE_ATTRIBUTES now percent-decodes keys and values per OTel spec - @norberttech
- #2440 - flow-php/symfony-postgresql-messenger-bridge - store messenger_messages time columns as timestamp instead of timestamptz - @norberttech
- #2439 - flow-php/postgresql - DateTimeConverter split into TimestampConverter and TimestampTzConverter - @norberttech
- #2439 - flow-php/etl-adapter-postgresql - DateTimeEntry and DateTimeType default to timestamp instead of timestamptz - @norberttech
- #2437 - flow-php/symfony-telemetry-bundle - named scope attributes split into scope and signal - @norberttech
- #2435 - etl-adapter-postgresql - composite index/unique columns ordered by position, schema order as tiebreak - @norberttech
- #2435 - etl-adapter-postgresql - reverse Table to Flow conversion preserves index column order - @norberttech
- #2430 - flow-php/postgresql - Parser::parse() ingests binary protobuf instead of JSON - @norberttech
- #2430 - flow-php/postgresql - dev ext-protobuf bumped to 5.35.0 (depth limit 64 to 100) - @norberttech
- #2430 - flow-php/phpunit-telemetry-bridge - TestEventMother builds Snapshot reflectively for PHPUnit 11/12/13 compatibility - @norberttech
- 460061 - fix(flow-php/arrow-ext): macOS arm64 release binary build - @norberttech
Fixed
- #2452 - flow-php/postgresql - BulkInsert upsert with an empty update set now emits ON CONFLICT DO NOTHING instead of a plain INSERT. - @norberttech
- #2447 - collect coverage only from php8.3 tests - @norberttech
- #2446 - flow-php/postgresql - schema diff now detects stale-cast drift in column and domain defaults - @norberttech
- #2444 - flow-php/telemetry-otlp-bridge - isolate grpc tests so the PHP 8.5 shutdown SIGSEGV (grpc#38216) no longer fails CI - @norberttech
- #2439 - flow-php/postgresql - timestamp reads tagged as UTC to preserve the instant - @norberttech
- #2431 - flow-php/postgresql - detect ParamRef nodes inside List expressions so BETWEEN/IN/VALUES placeholders are counted during keyset pagination offset. - @norberttech
Removed
- #2437 - flow-php/telemetry - SeverityFilteringLogProcessor replaced by log middleware and pipeline - @norberttech
- #2437 - flow-php/symfony-telemetry-bundle - severity_filtering log processor type replaced by pipeline - @norberttech
Contributors
Generated by Automation
0.39.0
[0.39.0] - 2026-06-04
Added
- #2427 - flow-php/postgresql - custom attributes on migration context - @norberttech
- #2427 - flow-php/symfony-postgresql-bundle - service container injected into migration context - @norberttech
- #2427 - flow-php/symfony-postgresql-bundle - migrations.context config for extra attributes - @norberttech
- #2424 - flow-php/postgresql - table options support with new Table and TableOptions schema objects. - @norberttech
- #2424 - flow-php/etl-adapter-postgresql - optional TableOptions argument in toPostgreSqlTable(). - @norberttech
- #2420 - WithBuilder::selectDistinct() and selectDistinctOn() - @norberttech
- #2417 - PostgreSql Transactional Loader - @norberttech
- #2414 - --drop-if-exists option to postgresql migrator - @norberttech
- #2412 - allow to prefix postgresql db name - @norberttech
- #2407 - Symfony PostgreSql Bundle - migrations exclusion policy - @norberttech
- #2406 - Add PHPUnit bridge compatibility with PHPUnit 11/12/13 - @jdecool
- #2404 - postgresql adapter schema converter - @norberttech
- #2403 - Add memory usage consumption in PHPUnit OpenTelemetry bridge - @jdecool
Changed
- 3fde06 - chore: update project dependencies - @norberttech
- #2422 - flow-php/arrow-ext - bump arrow/parquet to 58.3 and ext-php-rs to 0.15.15 - @norberttech
- #2422 - flow-php/arrow-ext - enable parquet simdutf8 feature - @norberttech
- #2422 - flow-php/arrow-ext - handle new ArrayKey::ZendString variant in MAP key conversion - @norberttech
- #2426 - flow-php/postgresql - regenerated protobuf AST stubs and query builder for the PostgreSQL 18 grammar (incl. RETURNING) - @norberttech
- #2426 - flow-php/pg-query-ext - pinned nix libpg_query to 18.0.0 to match the vendored build and documented keeping grammar versions in sync - @norberttech
- #2423 - Move Telemetry
SerializerTypeenum from PHPUnit to OTLP - @stloyd - #2421 - flow-php/pg-query-ext - bumped libpg_query to the PostgreSQL 18 grammar - @norberttech
- #2420 - WithBuilder::select() now returns SelectFromStep - @norberttech
- #2420 - Set-operation methods now return SelectSetOperationStep to allow chaining - @norberttech
- #2416 - update otel collector version - @norberttech
- #2413 - Add missing OTEL configuration file format version - @stloyd
- #2405 - thigthen structure type definition - @norberttech
- 8a460b - refactor: cleanup github actions workflows - @norberttech
- #2397 - Replaced PHPStan with Mago across entire project codebase - @norberttech
- #2391 - Covered all bridges with Mago Analyzer - @norberttech
Fixed
- #2428 - flow-php/postgresql - BulkInsert now quotes schema-qualified table names per identifier part. - @norberttech
- #2426 - flow-php/postgresql - intermittent deparse segfault under the PostgreSQL 18 grammar caused by stale protobuf stubs - @norberttech
- #2426 - flow-php/postgresql - constraints emitting NOT ENFORCED and generated columns emitting VIRTUAL under PostgreSQL 18 - @norberttech
- #2420 - Chained set operations (union/unionAll/intersect/except) dropped the middle operand - @norberttech
- #2420 - Set operations with a WITH clause duplicated the CTE - @norberttech
- #2420 - func() produced invalid SQL for keyword constructs like GREATEST - @norberttech
- #2420 - in_() with a subquery silently produced a scalar-subquery comparison - @norberttech
- #2415 - saving postgresql migrations table in schema other than public - @norberttech
- #2415 - reverted file_format introduced in otel collector config - @norberttech
- #2410 - postgresql schema comparator handling views - @norberttech
- #2401 - performance when processing remote CSV files - @norberttech
- #2402 - default values in ForeingKey and UniqueConstraint postgersql - @norberttech
- 400244 - failing tests on lowest versions of dependencies - @norberttech
Removed
- 90bd91 - development leftovers - @norberttech
- #2393 - support for docrtine 3.6 - @norberttech
Contributors
Generated by Automation
0.38.0
[0.38.0] - 2026-05-22
Added
- #2368 - Mago Analyzer - on libraries - @norberttech
- #2360 - website light / dark / system theme - @norberttech
Changed
- #2372 - cover core static analysis with mago - @norberttech
- #2378 - Hardening GHA for closing subtree PRs - @stloyd
- #2361 - composer scripts are now moved to just - @norberttech
- #2361 - php cs fixer and rector are now replaced by mago - @norberttech
- #2356 - Symfony PostgreSql Bundle - bundle skeleton - @norberttech
Fixed
- 1a01a6 - updated dependencies and fixed failing tests - @norberttech
- 7f9b3b - failing website exmaples - @norberttech
- dd4c60 - website at really small resolutions - @norberttech
- 4d59c7 - website mobile navigation - @norberttech
- #2356 - Accessing S3 custom client through service container - @norberttech
- 4256f8 - mobile version website header - @norberttech
Contributors
Generated by Automation
0.37.0
[0.37.0] - 2026-05-09
Added
- #2354 - search on website - @norberttech
- #2352 - Telemetry - OTLP Protobuf Models to otlp telemetry bridge - @norberttech
- #2352 - Telemetry - Added StreamTransport compatible with OTLP FileExporter - @norberttech
- #2352 - Telemetry - ErrorHandler with few predefined implementations - @norberttech
- #2352 - Telemetry - a failover mode for network otlp transports that is still async - @norberttech
- #2346 - flow-php/psr3-telemetry-bridge - bridge for psr3 logger - @norberttech
- #2341 - PostgreSql - fetchOne and fetchSingel and fetchSingleInto - @norberttech
- #2335 - flow-php/postgrsql symfony/session bridge - @norberttech
- #2335 - flow-php/postgrsql symfony/cache bridge - @norberttech
- #2335 - flow-php/filesystem symfony/cache bridge - @norberttech
- #2335 - add cache / session bridges to postgresql bundle - @norberttech
- #2335 - add cache bridge to filesystem bundle - @norberttech
- #2329 - phpunit telemetry bridge: support for env vars - @norberttech
Changed
- #2354 - Website look and feeling - @norberttech
- 3ebf00 - chore: update dependnecies and upgrading docs - @norberttech
- #2352 - Telemetry - merged exporters into one contract - @norberttech
- #2352 - Telemetry - allow to define different exporters for different types of signals - @norberttech
- #2352 - Telemetry - expose and lower default values for timeouts - @norberttech
- #2346 - flow-php/symfony-telemetry-bundle - register default logger / meter / tracer - @norberttech
- #2346 - flow-php/symfony-telemetry-bundle - allow to register one of the bundle provided loggers as framework logger service through psr3 adapter - @norberttech
- #2343 - Bump the highest supported version of "brick/math" to ^0.17 - @zenas1210
- #2341 - PostgreSql - fetchOne and fetchOneInto are nullable now - @norberttech
- ad2387 - feature: automatically render flow-php manifest list on installation page - @norberttech
- 43b399 - chore: update dependencies - @norberttech
- #2331 - Avoid listing the remote storages when direct file path is used - @norberttech
- #2329 - phpunit telemetry bridge: allow to configure transport - @norberttech
- #2329 - phpunit telemetry bridge: unify parameter names - @norberttech
- #2329 - phpunit telemetry bridge: deprecated otel collector specific options - @norberttech
- c1890f - feature: added stars map to readme - @norberttech
Fixed
- 4024f6 - failing low dependnecies versions tests - @norberttech
- #2352 - Telemetry - GRCP truly async - @norberttech
- #2352 - Telemery - PHPUnit Bridge was by default using passthrough processors which were choking otel collector on larger test suites - @norberttech
- #2353 - Correction of handling of null counts metadata in parquet files for PhpParquetEngine - @gCass
- #2346 - flow-php/filesystem - Path::realpath bug - @norberttech
- #2345 - postgresql bytea converter - @norberttech
- #2344 - positional parameters docblock for postgresql client - @norberttech
- 3e5140 - dependencies, static analysis - @norberttech
- e55b74 - codevoce coverage reporting - @norberttech
- #2341 - PostgreSql - Static factory mapper - @norberttech
- #2332 - bug in recursive delete based on glob - @norberttech
- #2330 - preserve XML namespace declarations when capturing subtrees - @norberttech
Removed
- #2352 - Telemetry - HttpTransport from otlp telemetry bridge - @norberttech
- #2352 - Telemetry - open-telemetry/gen-otlp-protobuf dependency from otlp telemetry bridge - @norberttech
Contributors
Generated by Automation
0.36.0
[0.36.0] - 2026-04-21
Added
- #2313 - Context to PostgreSql RowMapper - @norberttech
- #2313 - StaticFactory row mapper implementation for PostgreSql Client - @norberttech
- #2313 - Custom context to PostgreSql Client - supported by Symfony Bundle - @norberttech
- #2306 - flow-php/postgrsql-valinor-bridge - @norberttech
- #2306 - RowMapper $next = null to TypeMapper - @norberttech
- #2300 - support for protobuf ^4 | ^5 - @norberttech
- #2299 - phpunit extensions that wraps tests in transactions - @norberttech
- #2299 - phpunit postgresql bridge as optional dependency of postgresql bundle - @norberttech
- #2298 - postgresql symfony messenger bridge - @norberttech
- #2298 - listen/unlisen to postgresql client - @norberttech
- #2298 - postgresql symfony messenger bridge to postgersql symfony bundle - @norberttech
Changed
- #2321 - update dependencies - @norberttech
- #2306 - TypeMapper now uses cast instead of assert - @norberttech
Fixed
- #2320 - allow to register multiple filesystems of the same type in fstab - @norberttech
- be4bb3 - static analysis getting stuck - @norberttech
- 27e3d2 - failing fragile nightly tests - @norberttech
- #2305 - read unique constraint nullsNotDistinct from pg_index - @norberttech
- #2305 - read trigger WHEN clause from pg_trigger, simplify Parser DI - @norberttech
- #2305 - EXCLUDE constraint and index predicate idempotency, DSL/value-object boundary - @norberttech
- #2305 - normalize domain default through normalizeDefault() in PgCatalogProvider - @norberttech
- #2305 - normalize check constraint expression round-trip through pg_get_constraintdef - @norberttech
- #2305 - typed $default in schema DSL + NodeModifier dispatch refactor - @norberttech
- #2301 - added validation to IN statement to avoid segfaults - @norberttech
- #2301 - stale connections in static postgresql client used in tests - @norberttech
- d4ba4a - failing scheduled nightly tests - @norberttech
- #2295 - using type_array for structure array like assertions - @norberttech
Contributors
Generated by Automation
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