Changelog
Every release of Flow PHP, in chronological order.
#[Unreleased] - 2026-08-07
#Added
- #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
- #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
- #2583 - flow-php/symfony-telemetry-bundle - ChannelLoggerPass keeps #[WithTelemetryChannel] wiring but never captures framework channels when disabled - @norberttech
- #2583 - flow-php/symfony-telemetry-bundle - FrameworkLoggerPass and OTLPAvailabilityPass no longer run when disabled - @norberttech
- #2582 - flow-php/telemetry - default sampler is now ParentBasedSampler(AlwaysOnSampler), matching the OpenTelemetry SDK - @norberttech
- #2582 - flow-php/symfony-telemetry-bundle - default sampler.type is now parent_based - @norberttech
- #2580 - flow-php/web - mermaid is initialized once per theme change instead of once per diagram - @norberttech
- #2580 - flow-php/web - diagram wrapper stays hidden until its diagram is drawn - @norberttech
- #2579 - flow-php/web - every playground example reads from the shared data/ datasets - @norberttech
- #2577 - flow-php/postgresql - test notifications are scheduled server side instead of spawning a PHP subprocess - @norberttech
- #2572 - flow-php/web - PostHog now runs in cookieless mode - @norberttech
- #2572 - flow-php/web - sponsor page consulting link points to the Work-Shop - @norberttech
- #2571 - flow-php/symfony-postgresql-bundle - query recording moved from flow-php/postgresql as ProfilerClient, QueryRecorder and QueryRecorderOptions - @norberttech
- #2571 - flow-php/symfony-postgresql-bundle - profiler registers only when the kernel runs in debug mode, so --no-debug records nothing - @norberttech
- #2571 - flow-php/symfony-postgresql-bundle - profiler.max_parameters renamed to profiler.max_retained_parameters - @norberttech
- #2571 - flow-php/symfony-postgresql-bundle - service flow.postgresql.profiler.query_log renamed to flow.postgresql.profiler.query_recorder - @norberttech
- #2568 - flow-php/flow-php-ext - releases are published only after musl binaries are built - @norberttech
- #2568 - flow-php/flow-php-ext - installation docs list libc flavours and the Alpine libgcc requirement - @norberttech
- #2567 - flow-php/flow - lowest dependencies are tested only against the lowest supported PHP version - @norberttech
- #2567 - flow-php/flow - lowest dependencies are tested on every pull request - @norberttech
- #2567 - flow-php/flow - code coverage is collected only for locked dependencies - @norberttech
- #2566 - flow-php/etl - window aggregates over an ordered window use the SQL default frame instead of the whole partition - @norberttech
- #2566 - flow-php/etl - count() over a window counts non-null values in the frame - @norberttech
- #2566 - flow-php/etl - partitionBy() no longer sets orderBy() - @norberttech
- #2566 - flow-php/etl - WindowFunction::apply() receives a WindowContext - @norberttech
- #2566 - flow-php/etl - WindowFunction::over() returns static - @norberttech
- #2566 - flow-php/etl - window functions evaluate once per partition instead of once per row, up to 29x faster - @norberttech
- #2561 - flow-php/telemetry - Tracer::span() no longer makes the span current - @norberttech
- #2561 - flow-php/telemetry - Tracer::span() and trace() take a Context parent instead of a SpanContext - @norberttech
- #2561 - flow-php/telemetry - Tracer::complete() no longer detaches the scope - @norberttech
- #2561 - flow-php/etl - to_transformation() expands a Transformation once per loader, not per batch - @norberttech
- #2561 - flow-php/etl - nested loading and transformation spans are tracked on a stack - @norberttech
- #2561 - flow-php/phpunit-telemetry-bridge - SpanStack::push() takes the span scope - @norberttech
- 6060a1 - docs(flow-php/etl-adapter-http): replace HTTP data reading examples with a single paginated on - @norberttech
- #2557 - ci - Docker image is built on native amd64 and arm64 runners instead of QEMU emulation. - @norberttech
- #2557 - ci - extension revisions are pinned per build so the layer cache tracks extension content. - @norberttech
- #2557 - ci - nightly build bypasses the cache to refresh the base image and apt packages. - @norberttech
#Fixed
- #2588 - flow-php/types - NonEmptyStringType and PositiveIntegerType erased their narrow type on assert() and cast() - @norberttech
- #2588 - flow-php/types - UuidType::cast(), UnionType::cast() and IntersectionType::cast() resolved to mixed - @norberttech
- #2588 - flow-php/types - EnumType::cast() resolved to UnitEnum instead of the enum class - @norberttech
- #2587 - flow-php/etl - schema of an enum column mixing null and non-null values no longer fails to merge - @norberttech
- #2586 - flow-php/types - string-keyed arrays infer as structures, never maps - @norberttech
- #2586 - flow-php/types - type equality compares optional elements and allow_extra - @norberttech
- #2586 - flow-php/types - assert() and cast() no longer widen the return declared by Type - @norberttech
- #2586 - flow-php/etl - match() accepts exactly what StructureType::isValid() accepts - @norberttech
- #2586 - flow-php/etl-adapter-parquet - optional structure elements are rejected instead of silently written - @norberttech
- #2586 - flow-php/etl-adapter-seal - optional structure elements are rejected instead of silently written - @norberttech
- #2586 - flow-php/etl-adapter-xml - optional structure elements are rejected instead of silently written - @norberttech
- #2585 - flow-php/symfony-telemetry-bundle - lint:container no longer fails on interface aliases retargeted by instrumentation decorators - @norberttech
- #2585 - flow-php/psr18-telemetry-bridge - declare nyholm/psr7 already used by its tests - @norberttech
- #2584 - flow-php/symfony-telemetry-bundle - cache pools inheriting their class from a parent definition are now traced - @norberttech
- #2584 - flow-php/symfony-telemetry-bundle - pools and PSR-18 clients whose class is a %parameter% are now traced - @norberttech
- #2584 - flow-php/symfony-telemetry-bundle - Psr18ClientTelemetryPass no longer decorates abstract definitions and breaks the container build - @norberttech
- #2584 - flow-php/symfony-telemetry-bundle - instrumentation.cache.exclude_pools now takes effect for framework pools - @norberttech
- #2583 - flow-php/symfony-telemetry-bundle - %env()% placeholders in skipped config sections no longer break the dumped container - @norberttech
- #2582 - flow-php/symfony-telemetry-bundle - messenger sync transport no longer lifts request tracing suppression - @norberttech
- #2582 - flow-php/telemetry-otlp-bridge - otlp_tracer_provider() no longer overrides the parent-based sampling default - @norberttech
- f41412 - add required cache-key to Blacksmith docker builder setup - @norberttech
- #2580 - flow-php/web - diagrams drawn on top of each other because mermaid derived ids from the clock - @norberttech
- #2580 - flow-php/web - panzoom instances and zoom listeners leaking on every theme toggle - @norberttech
- #2579 - flow-php/web - example input files are now written into the static build - @norberttech
- #2577 - flow-php/cli - table list test no longer depends on symfony/console border rendering - @norberttech
- #2571 - flow-php/symfony-postgresql-bundle - long running console commands no longer retain queries for a panel that never renders - @norberttech
- #2568 - flow-php/flow-php-ext - PIE no longer falls back to a source build on Alpine - @norberttech
- #2567 - flow-php/filesystem - NativeLocalFilesystem::list() now yields matches sorted by path - @norberttech
- #2566 - flow-php/etl - rank() and dense_rank() ignored the orderBy() direction - @norberttech
- #2566 - flow-php/etl - row_number() gave duplicated rows the same number - @norberttech
- #2561 - flow-php/filesystem - concurrently open stream spans no longer nest into each other - @norberttech
- #2561 - flow-php/etl - bucket source streams are closed, so their spans complete - @norberttech
- #2561 - flow-php/telemetry - the sampler receives the parent Context instead of the ambient one - @norberttech
- #2561 - flow-php/telemetry - Tracer::complete() no longer re-exports a span when called twice - @norberttech
- #2561 - flow-php/etl - LimitReachedException no longer escapes to_transformation() - @norberttech
- #2561 - flow-php/etl - limit reached is logged without the exception stacktrace - @norberttech
- #2557 - ci - restored Docker layer cache, setup-docker-builder v2.0.0 silently fell back to a local builder. - @norberttech
- 8f8157 - http adapter documentation examples - @norberttech
- 2cae92 - static analysis baseline adr - @norberttech
#Removed
- #2580 - flow-php/web - render-blocking mermaid CDN script loaded on every page - @norberttech
- #2579 - flow-php/web - per-example input/ directories - @norberttech
- #2572 - flow-php/web - Datadog RUM and its session replay - @norberttech
- #2571 - flow-php/postgresql - Client\Debug namespace with RecordingClient, QueryLog, QueryLogOptions and RecordedQuery - @norberttech
- #2561 - flow-php/telemetry - Span::contextScope() and Span::setContextScope() - @norberttech
- #2561 - flow-php/telemetry - MemoryContextStorage::store() - @norberttech
- #2557 - ci - QEMU setup from Docker image builds. - @norberttech
#Security
- #2585 - flow-php/arrow-ext - re-pin dtolnay/rust-toolchain to a commit reachable from upstream - @norberttech
- #2585 - flow-php/flow-php-ext - re-pin dtolnay/rust-toolchain to a commit reachable from upstream - @norberttech
#[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, including partition pruning - @norberttech
- #2504 - code>flow-php/etl - support for brick/math 0.18 - @norberttech
- #2504 - flow-php/etl - ValidationContext and MismatchedDefinition value objects with schema diff rendering via ValidationContext::toString() - @norberttech
- #2504 - flow-php/etl - SchemaValidationException::context() accessor - @norberttech
- #2503 - flow-php/symfony-telemetry-bundle - messenger.span_naming option (transport/message_name/message_fqcn) to control messenger span names. - @norberttech
- #2503 - flow-php/telemetry - Telemetry::registerShutdownFunction() that shuts transports down at real process end. - @norberttech
- #2501 - flow-php/telemetry - Shared SemConvAttributes and SemConvMetrics constants for OTel semantic conventions. - @norberttech
- #2501 - flow-php/telemetry - SuppressingSampler to suppress spans for excluded paths and commands. - @norberttech
- #2501 - flow-php/postgresql - TransactionSpanMode (grouped/per_operation/off) to control transaction spans. - @norberttech
- #2501 - flow-php/symfony-telemetry-bundle - DBAL transaction_spans, collect_metrics and parameter-capture config options. - @norberttech
- #2501 - flow-php/phpunit-telemetry-bridge - test.suite.run.status attribute and telemetry.sdk.version resource attribute. - @norberttech
#Changed
- fec9cf - chore: upgrade Infection to 0.34 - @norberttech
- #2556 - flow-php/etl - Schema and Schema\Definition are immutable, mutators return a new instance - @norberttech
- #2556 - flow-php/etl-adapter-csv, -excel, -json, -xml - explicit schema no longer projects partition columns away - @norberttech
- #2555 - wasm - playground runs PHP 8.5.8 built as 64-bit wasm with libpg_query 18 - @norberttech
- #2555 - wasm - playground is ~23% faster per run - @norberttech
- #2555 - flow-php/arrow-ext - documentation updated for the prebuilt Docker image - @norberttech
- #2549 - CI - bump composite action uses: to node24 releases - @norberttech
- #2549 - CI - pin composite action uses: to commit SHAs - @norberttech
- #2549 - CI - replace deprecated codecov/test-results-action with codecov-action - @norberttech
- #2549 - CI - audit .github/actions with zizmor - @norberttech
- #2549 - CI - bump PHPUnit to 12.5.32 - @norberttech
- #2548 - flow-php/etl - Floe stores its schema only in the footer, dropping the inline SCHEMA frame - @norberttech
- #2547 - flow-php/etl-adapter-http - response body is decoded once (content-type aware, JSON + XML) into typed rows - @norberttech
- #2547 - flow-php/etl-adapter-http - ContentTypeDetector broadened to text/xml and +xml/+json suffixes - @norberttech
- #2547 - flow-php/etl-adapter-http - require flow-php/array-dot and psr/http-factory - @norberttech
- #2535 - Migrate GitHub Actions workflows to Blacksmith runners - @blacksmith-sh[bot]
- 3cf520 - docs: refresh sponsor logos and add Blacksmit - @norberttech
- #2543 - flow-php/etl - External sort rebuilt on the bucketing engine. - @norberttech
- #2543 - flow-php/etl - Grace hash join rebuilt on the bucketing engine, building the hash table from the smaller bucket. - @norberttech
- #2543 - flow-php/etl - Mixed join expressions with equalities now run as hash join instead of nested loop. - @norberttech
- #2543 - flow-php/etl - Group-by runs on the bucketing engine with spill column pruning. - @norberttech
- #2543 - flow-php/etl - Sort, join and group-by configuration is now algorithm-scoped via ConfigBuilder::sort()/join()/groupBy(). - @norberttech
- #2543 - flow-php/etl - Equal/Identical join comparisons follow SQL null semantics. - @norberttech
- #2543 - flow-php/etl - FloeWriter/FloeStreamWriter take schema in constructor and build the encoder once. - @norberttech
- #2540 - flow-php/etl - FloeWriter/FloeStreamWriter take schema in constructor and build encoder once - @norberttech
- #2540 - flow-php/etl - external-sort and hash-join spill cache skip per-write schema validation - @norberttech
- #2540 - flow-php/etl - fast-path identity and count checks in array and metadata equality - @norberttech
- #2536 - flow-php/etl - simplified Cache contract - @norberttech
- #2536 - flow-php/etl-adapter-csv - RowsNormalizer replaced with CSVEncoder, schema-driven hydration in extractor - @norberttech
- #2536 - flow-php/etl-adapter-doctrine - RowsNormalizer replaced with DbalEncoder, schema-driven hydration in extractors - @norberttech
- #2536 - flow-php/etl-adapter-excel - ExcelRowsNormalizer replaced with ExcelEncoder, schema-driven hydration in extractor - @norberttech
- #2536 - flow-php/etl-adapter-google-sheet - GoogleSheetEncoder, schema-driven hydration in extractor - @norberttech
- #2536 - flow-php/etl-adapter-json - RowsNormalizer replaced with JSONEncoder, schema-driven hydration in extractors - @norberttech
- #2536 - flow-php/etl-adapter-parquet - RowsNormalizer replaced with ParquetEncoder, schema-driven hydration in extractor - @norberttech
- #2536 - flow-php/etl-adapter-postgresql - PostgreSqlEncoder, schema-driven hydration in extractors - @norberttech
- #2536 - flow-php/etl-adapter-seal - RowsNormalizer replaced with SealEncoder - @norberttech
- #2536 - flow-php/etl-adapter-text - TextEncoder, schema-driven hydration in extractor - @norberttech
- #2536 - flow-php/etl-adapter-xml - RowsNormalizer replaced with XMLEncoder, schema-driven hydration in extractors - @norberttech
- #2536 - flow-php/flow-php-ext - reworked Rust encode/hydrate/cast pipeline - @norberttech
- #2531 - Update PHPUnit to 12.5 - @stloyd
- #2529 - Move out receiving partitions in extractors out of loops - @stloyd
- #2532 - flow-php/etl-adapter-parquet - ParquetExtractor builds entries through EntryFactory::instantiate() instead of array_to_row() - @norberttech
- #2532 - flow-php/etl - Floe HydratorColumn renamed to ColumnBlueprint, SchemaDecoder uses shared Instantiators - @norberttech
- #2532 - flow-php/types - Uuid constructor validates strings directly without Ramsey fallback - @norberttech
- #2532 - flow-php/flow-php-ext - schema decoding updated to relocated core entry instantiation classes - @norberttech
- #2528 - Reduce complexity of XML reading & writing - @stloyd
- #2527 - Change
EntryFactory::createAs()to usematch()- @stloyd - #2526 - flow-php/etl - sorting algorithm is an explicit choice via sort config, EXTERNAL_SORT is the default - @norberttech
- #2526 - flow-php/etl - external sort spills fewer, larger buckets and streams the final merge instead of writing it back to cache - @norberttech
- #2526 - flow-php/etl - Rows::sortAscending/sortDescending resolve sort values once per row instead of twice per comparison - @norberttech
- #2526 - flow-php/etl - RowsMinHeap compares sort values extracted once at insert - @norberttech
- #2526 - flow-php/etl - MemorySort buffers rows in a plain array instead of per-batch Rows::merge - @norberttech
- #2526 - flow-php/etl - Floe SchemaTracker caches container type fingerprints per Type instance - @norberttech
- #2525 - flow-php/symfony-telemetry-bundle - HttpKernelSpanSubscriber constructor takes ?RouteNamePathMap instead of ?RouterInterface - @norberttech
- #2524 - Replaced switch statements with match expressions across core ETL, parquet lib and http/parquet/seal adapters (no behavior change, outputs byte-identical) - @MrHDOLEK
- #2523 - flow-php/etl - Cache stores only Rows; cache indexes are stored as Rows. - @norberttech
- #2523 - flow-php/etl - cache implementations and external sort buckets serialize with Floe instead of PHP serializer. - @norberttech
- #2523 - flow-php/etl - serialize/unserialize transformers use Floe serializer. - @norberttech
- #2522 - sum() aggregation accumulates through native int/float arithmetic by default (returning int whenever the sum has no fractional part) instead of routing every addition through BigDecimal - @MrHDOLEK
- #2522 - Sum (exact mode) and Average reuse the shared Calculator from FlowContext instead of constructing a new Calculator for every aggregated row - @MrHDOLEK
- #2520 - Use
RandomValueGeneratoringenerate_random_string()&generate_random_int()- @stloyd - #2519 - Make
NativePHPHashsingleton - @stloyd - #2518 - CSVLoader reuses a single php://temp row buffer per loader instance (released in the closure() hook) instead of opening and closing a temporary stream for every written row - @MrHDOLEK
- #2518 - CSVLoader appends the whole normalized batch to the destination stream once per Rows batch instead of once per row, and resolves the destination stream once per batch instead of inside the per-row loop - @MrHDOLEK
- #2509 - flow-php/filesystem - Partition name and value now forbid { and } characters - @norberttech
- #2504 - flow-php/etl - SchemaValidator::isValid() replaced by validate() returning ValidationContext - @norberttech
- #2504 - flow-php/etl - schema_validate() returns ValidationContext instead of bool - @norberttech
- #2504 - flow-php/etl - allowed brick/math ^0.18 - @norberttech
- #2503 - flow-php/symfony-telemetry-bundle - terminate events now flush telemetry; transport shutdown happens once at process end. - @norberttech
- #2503 - flow-php/telemetry - registerShutdownFunction() holds a weak reference so garbage-collected instances are not shut down. - @norberttech
- #2501 - flow-php/symfony-telemetry-bundle - Simplify messenger tracing to true/false and auto-inject the middleware into all buses. - @norberttech
- #2501 - flow-php/symfony-telemetry-bundle - Align cache, DBAL and HTTP span names and attributes with stable OTel semantic conventions. - @norberttech
- #2501 - flow-php/symfony-telemetry-bundle - Move flow-custom attribute keys out of reserved OTel namespaces under flow.*. - @norberttech
- #2501 - flow-php/telemetry - Sampler::shouldSample() now receives the parent Context. - @norberttech
- #2501 - flow-php/telemetry - Switch TimeUnit values to UCUM (s/us/ms). - @norberttech
- #2501 - flow-php/postgresql - Replace traceTransactions bool with transactionSpans mode and low-cardinality metric dimensions. - @norberttech
- #2501 - flow-php/phpunit-telemetry-bridge - Align test. keys with the OTel test registry and report durations in seconds.* - @norberttech
- #2501 - flow-php/filesystem - Namespace flow-custom telemetry keys under flow. and switch to UCUM units.* - @norberttech
- #2501 - flow-php/etl - Namespace flow-custom telemetry keys under flow. and switch to UCUM units.* - @norberttech
- #2501 - flow-php/psr18-telemetry-bridge - Client span name is the HTTP method only and server.port is always set. - @norberttech
#Fixed
- #2556 - flow-php/etl - extractors no longer pollute a user-provided schema - @norberttech
- #2556 - flow-php/etl - partition columns no longer leak between streams - @norberttech
- #2556 - flow-php/etl - Rows::schema() no longer corrupts the first row's schema - @norberttech
- #2556 - flow-php/flow-php-ext - native hydrator no longer drops per-value metadata - @norberttech
- #2556 - flow-php/cli - --db-column filtering in flow:db:schema - @norberttech
- #2555 - wasm - playground no longer leaks memory and stops executing PHP after ~50 runs - @norberttech
- #2555 - wasm - sortBy() and Floe now work in the playground - @norberttech
- #2555 - wasm - parquet reads no longer emit integer overflow warnings in the playground - @norberttech
- #2555 - flow-php/pg-query-ext - no longer frees libpg_query memory on module shutdown - @norberttech
- #2544 - flow-php/etl - silence false-positive analyzer warnings on batch size guards - @norberttech
- #2544 - flow-php/postgresql - silence false-positive analyzer warning on version comparison - @norberttech
- #2543 - flow-php/etl - DateInterval ordering in sort now works via type-specialized Rows::sortBy. - @norberttech
- #2525 - flow-php/symfony-telemetry-bundle - route_naming: path no longer calls Router::getRouteCollection() (full route collection rebuild) on every traced request - @norberttech
- #2523 - flow-php/filesystem - MemoryStream appends at end of stream after ranged reads. - @norberttech
- #2523 - flow-php/types - EnumType normalization accepts UnitEnum/BackedEnum interfaces. - @norberttech
- #2504 - flow-php/etl - SchemaValidationException message no longer lists FROM_NULL columns accepted by the validator - @norberttech
- #2504 - flow-php/etl - SchemaValidationException message renders the nullable ? marker on expected types - @norberttech
- 7b585d - failing scheduled tests - @norberttech
- #2503 - flow-php/symfony-telemetry-bundle - nested console commands no longer shut telemetry down mid-worker. - @norberttech
- #2503 - flow-php/symfony-telemetry-bundle - request spans are named from the route when the response is produced before the controller. - @norberttech
- #2503 - flow-php/symfony-telemetry-bundle - messenger span errors report the actual handler failure instead of the HandlerFailedException wrapper. - @norberttech
- #2503 - flow-php/symfony-telemetry-bundle - synchronously received messages stay a child of the current trace instead of starting a new root. - @norberttech
- #2503 - flow-php/symfony-telemetry-bundle - sent-message metrics only count messages actually dispatched to a transport. - @norberttech
- #2501 - flow-php/symfony-telemetry-bundle - Preserve traceparent across messenger JSON serialization. - @norberttech
- #2501 - flow-php/symfony-telemetry-bundle - Excluded http_kernel paths now suppress the whole request, removing orphan root spans. - @norberttech
- #2501 - flow-php/symfony-telemetry-bundle - Suppress messenger worker poll/idle noise and tame orphan cache/DBAL spans. - @norberttech
#Removed
- #2548 - flow-php/etl - FloeStreamReader::recover() salvage path - @norberttech
- #2547 - flow-php/etl-adapter-http - RequestEntriesFactory and ResponseEntriesFactory - @norberttech
- #2544 - flow-php/etl - unused analyzer ignore pragmas in Floe JSON/UUID decoders - @norberttech
- #2543 - flow-php/etl - DataFrame::pivot() - pivot is declared between groupBy() and aggregate(). - @norberttech
- #2543 - flow-php/etl - Root ConfigBuilder externalSort/join/grouping* delegators.** - @norberttech
- #2543 - flow-php/etl - Legacy Sort\ExternalSort and BucketsCache family. - @norberttech
- #2543 - flow-php/etl - SortAlgorithms enum replaced by SortSteps processor dispatch. - @norberttech
- #2536 - flow-php/etl - legacy Processor\HashJoin hash table and buckets - @norberttech
- #2536 - flow-php/etl - FloeFile and legacy Floe encoders/serializers - @norberttech
- #2532 - flow-php/etl - runtime value type detection from List/Map/Structure entry constructors - @norberttech
- #2532 - flow-php/types - isValid() short-circuit from ListType/StructureType::cast() - @norberttech
- #2526 - flow-php/etl - SortAlgorithms::MEMORY_FALLBACK_EXTERNAL_SORT and SortAlgorithms::SQLITE_SORT - @norberttech
- #2526 - flow-php/etl - sortMemoryLimit config, FLOW_SORT_MAX_MEMORY env var and OutOfMemoryException - @norberttech
- #2503 - flow-php/symfony-telemetry-bundle - runtime_mode config and the WorkerModeDetector/RuntimeModeResolver runtime classes. - @norberttech
- #2501 - flow-php/telemetry - Remove ResettableContextStorage and MemoryContextStorage::reset(). - @norberttech
- #2501 - flow-php/symfony-telemetry-bundle - Remove messenger link config, worker-cycle span, metrics_duration_unit and dbal.log_sql config. - @norberttech
- #2501 - flow-php/postgresql - Remove duplicated official-key telemetry attribute constants. - @norberttech
#Security
- #2549 - CI - pass composite action inputs via env instead of shell interpolation - @norberttech
- #2549 - CI - read Codecov base commit SHA from step outputs instead of GITHUB_ENV - @norberttech
- #2549 - CI - validate the base commit SHA artifact before use - @norberttech
#[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
#[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
- #2475 - flow-php/postgresql - expose migration execution time via MigrationStatus::executionTimeMs - @norberttech
- #2474 - flow-php/telemetry - GitDetector reads git via a non-blocking, timeout-bounded subprocess. - @norberttech
- #2474 - flow-php/phpunit-telemetry-bridge - resource detectors are now wired explicitly through resource_detector(). - @norberttech
- #2468 - flow-php/symfony-telemetry-bundle - extract shared ControllerName helper from the request span subscriber - @norberttech
- #2467 - flow-php/telemetry-otlp-bridge - curl per-request timeout_ms default raised 250 to 5000 - @norberttech
- #2466 - flow-php/telemetry - span parent is now derived solely from the Context - @norberttech
- #2466 - flow-php/telemetry - trace id is derived from the active span; each root span starts a new trace - @norberttech
- #2466 - flow-php/symfony-telemetry-bundle - each consumed Messenger message is its own trace, linked to the producer - @norberttech
- #2464 - flow-php/symfony-telemetry-bundle - messenger span name now follows OTEL {operation} {message} convention - @norberttech
- #2464 - flow-php/symfony-telemetry-bundle - messaging.operation.name now holds the operation verb, destination is the message class, bus moved to messaging.symfony.bus - @norberttech
- #2462 - flow-php/symfony-telemetry-bundle - consumer span now defaults to a linked trace instead of continuing the producer trace - @norberttech
- #2460 - flow-php/symfony-telemetry-bundle - flow-php/symfony-http-foundation-telemetry-bridge is now an optional dependency; context propagation is silently disabled when absent - @norberttech
- #2457 - flow-php/filesystem - rename FilesystemTable::for() parameter $protocol to $mount - @norberttech
#Fixed
- #2489 - flow-php/symfony-telemetry-bundle - browser trace-context helpers emit the request span - @norberttech
- #2489 - flow-php/symfony-telemetry-bundle - leaked context scopes in HTTP and messenger instrumentation - @norberttech
- #2487 - flow-php/symfony-telemetry-bundle - profiler reports total trace time as wall-clock window instead of summed span durations - @norberttech
- #2486 - flow-php/pg-query-ext - reject system libpg_query whose PostgreSQL major differs from the pinned version - @norberttech
- #2482 - flow-php/telemetry-otlp-bridge - CollectorMetrics test parser reads scientific-notation counters - @norberttech
- #2481 - flow-php/symfony-telemetry-bundle - http client decorator no longer reads the response inside request(), restoring async and concurrency - @norberttech
- #2480 - flow-php/etl - respect limit push-down across non-expanding processors - @norberttech
- #2480 - flow-php/postgresql - migration status checks no longer create the tracking table - @norberttech
- #2477 - flow-php/symfony-telemetry-bundle - DBAL spans now emitted regardless of bundle registration order - @norberttech
- #2476 - DBALTelemetryPass is now registered at priority 10 to guarantee it runs before DoctrineBundle's MiddlewaresPass, fixing silent DBAL tracing failure when DoctrineBundle precedes FlowTelemetryBundle in the kernel. - @darenas31415
- #2467 - flow-php/telemetry-otlp-bridge - telemetry lost in long-running workers when requests stalled between messages - @norberttech
- #2467 - flow-php/telemetry-otlp-bridge - unbounded failure accumulation by surfacing export failures to the ErrorHandler as reaped - @norberttech
- #2460 - flow-php/symfony-telemetry-bundle - metric attributes render as a toggleable table row in the profiler panel - @norberttech
- #2458 - flow-php/symfony-telemetry-bundle - successful Twig spans now report OK status - @norberttech
- dd2562 - arrow-rs extension github workflow - @norberttech
#Removed
- #2466 - flow-php/telemetry - per-tracer span stack - @norberttech
- #2466 - flow-php/telemetry - Context::withTraceId() and the standalone context trace id - @norberttech
- #2408 - Elasticsearch adapter (flow-php/etl-adapter-elasticsearch) — superseded by the SEAL adapter; use SEAL with the Elasticsearch backend (cmsig/seal-elasticsearch-adapter) - @MrHDOLEK
#Security
- #2474 - flow-php/telemetry - GitDetector kills hanging git commands and caps output to resist hostile repositories. - @norberttech
- #2474 - flow-php/telemetry - remote URL sanitizer now strips query and fragment so embedded tokens are never reported. - @norberttech
#[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
#[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
#[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
#[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
#[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
#[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
#[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
#[0.34.3] - 2026-03-27
#Fixed
- b2b99c - docker permissions while building arrow-ext binaries in workflow - @norberttech
#[0.34.2] - 2026-03-27
#Fixed
- 29e1b5 - typo in flow-php/arrow-ext release workflow - @norberttech
#[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
#[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
#[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
#[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 - Remove Meilisearch adapter - @stloyd
- #2227 - Removed support for "brick/math"
<0.14.2- @stloyd - #2193 - Internal interface Pipeline - @norberttech
- #2193 - redundant clone usage from DataFrame - @norberttech
- abbbe5 - phpbench - @norberttech
#[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 - trigger for pr-comment worfklow - @norberttech
- #2134 - ExplainModifier now explicitly sets BUFFERS, TIMING, SUMMARY to OFF when disabled (PostgreSQL defaults could override user config) - @norberttech
- #2134 - ExplainParser::parseBuffers() now detects Local Hit/Read Blocks for temporary tables - @norberttech
#Removed
- #2152 - GenericEvent::now() method - use GenericEvent::create() with explicit timestamp instead - @norberttech
- #2152 - Carrier::keys() method from propagation interface - unused in the codebase - @norberttech
#[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 first row when no headers are needed - @stloyd - #2100 - limit/offset postgresql extracto will now detect lack of order by in query - @norberttech
- d4e9bd - trigger in github workflow - @norberttech
- 5e8882 - missing phpbench setup in baseline workflow - @norberttech
- #2096 - few more places that had syntax highlighting broken on website - @norberttech
- #2095 - monolithic ArrayConverter in favor of type-specific converters - @norberttech
- #2095 - syntax highlighing on website - @norberttech
- #2094 - handling query json result in postgresql/client - @norberttech
- c68c46 - documentation link - @norberttech
- #2089 - installation of libpg when installing pg-query-ext through pie - @norberttech
#Updated
- 58d619 - supported PHP versions in introduction.md - @norberttech
#Removed
- #2129 - DbalTypesDetector class - functionality consolidated into TypesMap - @norberttech
- #2129 - DbalLoader::withColumnTypes() method - use withTypesMap() instead - @norberttech
- #2112 - Remove old OpenSpout code fallback - @stloyd
- #2095 - symfony/polyfill-83 dependency - @norberttech
#[0.29.0] - 2025-12-17
#Added
- #2085 - links to github/packagist in docs - @norberttech
- #2084 - optional playground link to bug.yml template - @norberttech
- #2083 - Dedicated postgresql client interface to flow-php/postgresql - @norberttech
- #2074 - Json value to flow-php/types - @norberttech
- #1906 - support for php 8.5 - @norberttech
- #2062 - flow-php/postgresql - Query Builder that covers most of the Postgres SQL syntax - @norberttech
- #2050 - modification of PG Query AST tree during travers - @norberttech
- #2050 - count / paginate / key set - modifiers with DSL - @norberttech
- #2048 - auto generated table of contents to documentation pages - @norberttech
- #2043 - open playground files preview in tabs - @norberttech
- #2042 - deparse method with formatting options to PGQuery parser - @norberttech
- #2039 - excel adapter to flow.phar - @norberttech
- #2039 - chartjs adapter to flow.phar - @norberttech
- #2039 - openapi specification bridge to flow.phar - @norberttech
- #2039 - pg-query library to flow.phar - @norberttech
- #2039 - pg-query-ext to wasm compilation - @norberttech
- #2039 - snappy extension to wasm compilation - @norberttech
- #2038 - QueryResult wrapper over protobuf ParseResult - @norberttech
- #2038 - NamedParameterNormalizer that normalizes also named parameters like :param - @norberttech
- #2038 - Simple wrappers over most popular AST Nodes - @norberttech
- #2036 - test pg-query-ext installation through pie on ci/cd - @norberttech
- #2033 - pg_query php extension - @norberttech
- #2033 - flow-php/pg-query library that uses pg_query extension - @norberttech
- #2027 - playground - missing reset code test - @norberttech
#Changed
- #2082 - Allow usage of newer "openspout/openspout" - @stloyd
- #2076 - Break monolithic Definition into specific types definitions - @norberttech
- #2076 - Improved types definitions in Entry interface and implementations - @norberttech
- #2074 - changed TypeJson from Type{string} into Type{Json} - @norberttech
- #2074 - JsonEntry now holds value as Json - @norberttech
- ca8d0e - chore: add 8.5 to flow-php/pg-query-ext - @norberttech
- #2065 - update cli composer.json while building phar to use local repositories - @norberttech
- #2065 - updated dependncies - @norberttech
- #2065 - updated manifest.json - @norberttech
- #2062 - renamed flow-php/pg-query into flow-php/postgresql - @norberttech
- d70698 - chore: added documentation for building wasm - @norberttech
- #2040 - cast thrift encoded values to ints to preven issues with 32 systems - @norberttech
- #2027 - all actions will now trigger an event that other actions are going to listen to - @norberttech
- #2027 - playground will display spinner while action is executed - @norberttech
- #2024 - Update Homebrew TAP formula: flow-php to version: 0.28.0 - @norberttech
#Fixed
- #2086 - missing flow-php/types dependency to postgresql - @norberttech
- #2084 - value functions in query builder - @norberttech
- 3fb046 - building docker on github actions - @norberttech
- #2063 - failing test on latest version of symfony in php 8.4 - @norberttech
- #2048 - headline links to navigate to specific section of page - @norberttech
- #2047 - permalinks in website - @norberttech
- #2043 - added missing styles for output in playground - @norberttech
- 231bb7 - added missing dependency to flow.phar - @norberttech
- d28ae8 - install pg-query-ext through pie on github actions - @norberttech
- c810fa - building pg_query extension on baseline workflow - @norberttech
- #2039 - deprecation notices from box while building phar - @norberttech
- 319a3b - uploading code coverage to codecov during baseline gh actions workflow - @norberttech
- 60bde5 - updated version of flow.phar available in playground - @norberttech
- #2027 - restored flow-php.wip in turnstile captcha config - @norberttech
- af1eda - cloudflare worker compatibility date - @norberttech
- 2b962c - playground production env vars - @norberttech
#[0.28.0] - 2025-11-24
#Added
- #2023 - playground rate limiting based on durable objects - @norberttech
- #2013 - Add a new
DOMPreviousElementSibling- @stloyd - #2013 - Add a new
DOMNextElementSibling- @stloyd - #2005 - Terraform configuration for cloudflare - @norberttech
#Changed
- #2023 - code snippets are now uploaded to R2 - @norberttech
- #2023 - refactoring entire playground architecture - details in docs - @norberttech
- #2019 - Replace "cocur/slugify" with Symfony String on website - @stloyd
- #1997 - Update Homebrew TAP formula: flow-php to version: 0.27.0 - @norberttech
#Fixed
- #2013 - Reading value from DOM text/comment elements - @stloyd
- #2010 - Allow reading not strictly valid HTML - @stloyd
#[0.27.0] - 2025-11-10
#Added
- #1996 - e2e tests to website playground - @norberttech
- #1994 - Add a new
DOMElementParentfunction - @stloyd - #1986 - ExecutionMode - @norberttech
- #1986 - SaveMode - Documentation - @norberttech
- #1985 - Add new HTML entries into the docs - @stloyd
- #1981 - Add HTML usage example - @stloyd
- #1980 - Make HTTP Adapter aware of HTML & XML entry types - @stloyd
- #1972 - Add a new
HTMLElementEntry& related stuff - @stloyd - #1977 - playground cta to website - @norberttech
- #1960 - Add
HTMLQuerySelectorAll&HTMLQuerySelectorscalar functions - @stloyd - #1968 - File browser to playground - @norberttech
- #1968 - cs fixer to playground - @norberttech
- #1968 - uploading files to playground - @norberttech
- #1968 - help section to playground - @norberttech
- #1968 - autocompleters for Flow API to playground - @norberttech
- #1968 - autocompleters for Flow API to playground - @norberttech
- #1968 - predefined datasets to playground - @norberttech
- #1943 - TypeNarrower interface for type narrowing pattern - @MrHDOLEK
- #1943 - StringTypeNarrower class implementing TypeNarrower interface - @MrHDOLEK
- #1943 - InstanceOfTypeNarrower class for handling external UUID libraries - @MrHDOLEK
- #1943 - Support for detecting additional string types: boolean, integer, float, date, datetime, timezone, null - @MrHDOLEK
- #1949 - PHP WAS compilation script - @norberttech
- #1949 - Interactive Playground to website - @norberttech
- #1949 - Basic error handling in interactive playground - @norberttech
- #1949 - Custom syntax highlighting in interactive playground - @norberttech
- #1949 - Reusable wasm controller in javascript - @norberttech
- #1940 - Add a new
HTMLEntry- @stloyd - #1942 - Filesystem Path Option - ContentType - @norberttech
- #1917 - Add a new
HTMLType- @stloyd
#Changed
- #1995 - Enforce running docs command on PHP 8.2 only - @stloyd
- #1988 - website width to 2xl from xl - @norberttech
- #1983 - Unify and bump minimal Symfony requirements - @stloyd
- #1986 - Improved partitioning documentation - @norberttech
- #1984 - Allow usage of
HTMLElementinHTMLQuerySelector*- @stloyd - #1978 - Allow enforcing PHP requirements in examples - @stloyd
- #1976 - updated importmap dependencies - @norberttech
- #1975 - narrow phpstan class.notFound suppression to config only and specific classes only - @norberttech
- #1960 -
HTMLType &HTMLEntryrequire now\Dom\HTMLDocument` - @stloyd - #1973 - Moved logic related to Window functions to pipeline from transformer - @norberttech
- #1968 - Moved away from ace editor to codemirror in playground - @norberttech
- #1958 - Move JSON & Uuid validation out of
StringTypeNarrower- @stloyd - #1943 - StringTypeChecker renamed to StringTypeNarrower with new interface contract - @MrHDOLEK
- #1943 - Refactored EntryFactory to use modular TypeNarrower pattern - @MrHDOLEK
- #1943 - EntryFactory now uses InstanceOfTypeNarrower for UUID library detection - @MrHDOLEK
- #1943 - JsonType.isValid() method now uses StringTypeNarrower for validation - @MrHDOLEK
- #1948 - Make
HTMLDocumentreliable - @stloyd - 2342f9 - Mark HTMLDocument tests as skipped - @norberttech
- #1947 - Updated nix repository commit - @norberttech
- #1947 - Extracted phpunit configuration for infection - @norberttech
- #1942 - Make Filesystem Path / Options immutable - @norberttech
- #1942 - Make Filesystem Path Options accept scalar types and enums only - @norberttech
- #1932 - Enforce passing
EntryFactorytoarray_to_row(s)&to_entryfunctions - @stloyd - #1929 - Pass
EntryFactoryto theRows::join*()methods - @stloyd - #1929 - Enforce instance of EntryFactory in the join methods - @stloyd
- #1925 - Update Homebrew TAP formula: flow-php to version: 0.26.1 - @norberttech
#Fixed
- #1992 - Bugfix for
XMLElementEntrylosing parent relation - @stloyd - #1991 - changed relative links in markdown to absolute - @norberttech
- #1990 - github workflow/docs.yml to run on php 8.2 - @norberttech
- 3ab7d0 - disable automatic Link header generation on cloudflare - @norberttech
- 2d27b3 - reverted changes related to adding ImportMapExtension in website - @norberttech
- 93a1b2 - importmap shim async - @norberttech
- 6a2282 - implemented impormap sections - @norberttech
- #1976 - paths in importmap in website - @norberttech
- 6da7ed - path to php-cs-fixer.php config in playground - @norberttech
- 6f4981 - removed redundant htaccess file from website public folder - @norberttech
- b472ec - path to php-cs-fixer configuration in playground - @norberttech
- #1943 - Redundant InstanceOfType handling in EntryFactory::create() method - @MrHDOLEK
- #1943 - Missing NullType support in EntryFactory::createAs() method - @MrHDOLEK
- #1942 - AsyncAWSS3DestinationStream - set correct content type - @norberttech
- #1944 - Incorrect library test group names - @stloyd
- #1945 - Fixed broken
HTMLTypeTest- @stloyd
#Removed
- #1976 - popover-polyfill from website - @norberttech
- #1943 - Duplicate UUID library detection logic from EntryFactory - @MrHDOLEK
- 26078b - wasm development lefotvers - @norberttech
- #1929 - Remove
Rows::fromArray()- @stloyd
#[0.26.1] - 2025-10-28
#Added
- #1924 - TimeZioneType - @norberttech
- #1922 - php versions constraints to each tool composer.json file - @norberttech
- #1911 - Added missing Http adapter functions - @stloyd
- 960090 - contact link for issue type guidance - @norberttech
#Changed
- #1909 - Update Homebrew TAP formula: flow-php to version: 0.26.0 - @norberttech
#Fixed
#Updated
- 5e2b9b - contributing guidelines for issue types - @norberttech
- c1a4ff - bug report template description - @norberttech
#[0.26.0] - 2025-10-27
#Added
- #1901 - DataFrame::batchBy() - @norberttech
- #1901 - SortedByConstraint - @norberttech
- #1898 - 3rd level of nesting to examples - Topic / Example / Option - @norberttech
- #1898 - Examples of reusable Transformations - @norberttech
- #1882 - Reusable action to setup php version in github workflows - @norberttech
#Changed
- 276f0a - Simplified website navigation, reduce nubmer of redundant static pages - @norberttech
- #1898 - Updated archives of all examples - @norberttech
- #1898 - composer.json section in examples is now by default collapsed - @norberttech
- 549d4b - Install only required dependencies on windows test-suite - @norberttech
- ebfa79 - Keep website tests in standalone workflow to trigger those tests only when website code is changed - @norberttech
- #1882 - Split test-suite.yml workflow steps into standalone jobs - @norberttech
- #1881 - Update Homebrew TAP formula: flow-php to version: 0.25.0 - @norberttech
#Fixed
- c82e88 - invalid route to examples in website headr - @norberttech
- a7d83f - invalid reference to old non existing example in website navigation - @norberttech
- 63eae3 - building landing page - @norberttech
- d495ac - setting variables in baseline.yml github action - @norberttech
- 14e7e7 - task issue title prefix - @norberttech
- 8144c0 - test-suite workflow by using only paths instead of paths and ignore-paths - @norberttech
- 68d144 - baseline workflow - @norberttech
#Updated
- f1e8b0 - dependencies - @norberttech
- 92506b - dependencies - @norberttech
- 79f5d4 - DSL definitions - @norberttech
- b1e15a - dependencies - @norberttech
#Removed
- b90597 - redundant transformer, enabled batch_by example - @norberttech
#[0.25.0] - 2025-09-29
#Added
- #1866 - [XMLParserExtractor] Add support for Schema - @stloyd
- #1864 - [ExcelExtractor] Add support for
Schema- @stloyd - #1862 - [GoogleSheetExtractor] Add support for
Schema- @stloyd - #1860 - Allow detecting Excel files by reading first bytes - @stloyd
- #1858 - raw data generator methods to fake extractors - @norberttech
- #1855 - Windows support in filesystem component - @norberttech
- c8079d - experimental workflow to run flow tests on windows - @norberttech
#Changed
- #1880 - Updated dependencies before next release - @norberttech
- #1880 - Updated postgresql version in docker to 18 - @norberttech
- #1867 - Moved thrift generated models to new namespace in parquet library - @norberttech
- #1852 - Update Homebrew TAP formula: flow-php to version: 0.24.0 - @norberttech
#Fixed
- #1867 - Performance bottlenecks in thrift by overwriting implementations with more modern code - @norberttech
- #1867 - Cleanup Chunk builders after flushing content to stream - @norberttech
#[0.24.0] - 2025-09-16
#Added
- #1850 - Drop / Select Transformations - @norberttech
- #1850 - Missing DSL functions for BatchSize, Limit, MaskColumns, AddRowIndex transformations - @norberttech
- #1845 - RetryLoader - @norberttech
- #1845 - Retry mechanism building blocks - @norberttech
- #1843 - Doctrine Dbal Transactional Loader - @norberttech
#Changed
- #1849 - Accept all loaders in dbal transactional loader - @norberttech
- #1834 - Update Homebrew TAP formula: flow-php to version: 0.23.0 - @norberttech
#Fixed
- #1851 - Missing parquet dependency from Flow Filesystem - @norberttech
#[0.23.0] - 2025-09-01
#Added
- d755ea - 1password logo - @norberttech
- fcc085 - Tailscale VPN to the list of sponsors - @norberttech
- 45631e - cloudflare to sponsors lists - @norberttech
#Changed
- #1812 - Update Homebrew TAP formula: flow-php to version: 0.22.0 - @norberttech
- 6e4922 - Moved sponsors images to Cloudinary - @norberttech
#Fixed
- d930da - composer.loc - @norberttech
- #1829 - [GoogleSheet] Skip empty rows at the beginning of a sheet - @stloyd
- #1826 - Missing documentation links - @leith
- #1826 - Some documentation typos - @leith
- #1818 - DbalLimitOffsetExtractor only orders by the last given column instead of in order of all the given ordering columns. - @codedmonkey
- f47193 - broken link to open api specification bridge in the docs - @norberttech
#Updated
- 1b2b6c - dependencies - @norberttech
- dc08f1 - dependencies - @norberttech
- 87ee28 - dependencies - @norberttech
- b516e2 - sponsors page - @norberttech
#Removed
- 341ee1 - deprecated --no-suggest from composer commands on CI - @norberttech
#[0.22.0] - 2025-08-04
#Added
- #1811 - OpenApiMetadata allowing for passing extra details when generating open api specification from flow schema - @norberttech
- 76d7d1 - sentry to list of sponsors - @norberttech
- #1801 - link to umami public statistics for website - @norberttech
- bfdd28 - digital ocean to sponsors list - @norberttech
- #1792 - Rows::head() - @norberttech
- #1792 - Rows::tail() - @norberttech
- #1792 - Rows::last() - @norberttech
- #1790 - DataFrame::offset method - @norberttech
- #1790 - Support for offset method in Flow CLI - @norberttech
- #1787 - --ouput-columns to CLI read command - @norberttech
- #1784 - examples documentation - @norberttech
- #1784 - monorepo validation to static analysis composer command - @norberttech
- #1784 - more columns to FakeRandomOrdersExtractor - @norberttech
- #1782 - Covered functions from Symfony/String component with Scalar Functions - @norberttech
#Changed
- 3baf43 - Move website to Umami from Google Analytics - @norberttech
- #1797 - Delayed initialization of Google Analytics after user accepts cookies - @norberttech
- 9a0f08 - Create CODE_OF_CONDUCT.md - @norberttech
- #1793 - Updated DataFrame documentation - @norberttech
- #1780 - Update Homebrew TAP formula: flow-php to version: 0.21.0 - @norberttech
#Fixed
- 5087c1 - website failing tests - @norberttech
- #1785 - Inconsistent behavior of CLI analyze and schema commands - @norberttech
#Updated
- b82858 - website dependencies - @norberttech
- afadb3 - DSL definitions - @norberttech
- f2e5a2 - dependencies - @norberttech
- b3669e - baseline.yml - @norberttech
- 978efa - Flow PHP Banner - @norberttech
- 6cf21b - project dependencies - @norberttech
#Removed
- b5d157 - redundant second import of importmap in landing page - @norberttech
- #1797 - Website cookies page - @norberttech
#[0.21.0] - 2025-07-21
#Added
- #1777 - Option to choose if we dbal bulk data should use positional or named parameter - @norberttech
- #1776 - option to pass column types to DbalLoader to avoid auto detection - @norberttech
- #1776 - DbalTypesDetector that detects target types from dataset schema - @norberttech
- #1769 - Allow to set custom compression algorithm for columns - @norberttech
- #1765 - Allow to chose encoding for parquet columns - @norberttech
- #1764 - Support for Delta Binary Packed encoding in Parquet - @norberttech
- #1760 - OpenAPI Specification Bridge - @norberttech
#Changed
- 1985c5 - Prepare release 0.21.0 - @norberttech
- 5091b7 - interdependencies from specific versions to self.version - @norberttech
- #1777 - DbalBulk to use positional instead of named parameters by default - @norberttech
- #1758 - Update Homebrew TAP formula: flow-php to version: 0.20.0 - @norberttech
#Fixed
- #1778 - handling comparison between entries that are unknonw type (created from null) - @norberttech
- #1776 - unknown db types while writing to db - @norberttech
- #1774 - Adjusted parquet default values for page/row group size - @norberttech
- #1772 - Calculation of definition level in Parquet DremelShredder implementation - @norberttech
- #1757 - high memory consumption even when reading small chunks - @norberttech
#[0.20.0] - 2025-07-08
#Added
- #1735 - trigger gc_collect_cycles before starting pipeline execution hr time - @norberttech
- #1735 - schema_to_php dsl function - @norberttech
- #1735 - schema_to_ascii dsl function - @norberttech
- #1723 - Optional elements to type_structure - @norberttech
- #1723 - Allow for extra elements in type_structure - @norberttech
- #1730 - class-string type to types library - @norberttech
- #1731 - literal type to types library - @norberttech
#Changed
- 31ad0f - Prepared release 0.20.0 - @norberttech
- #1753 - Moved Filesystem test double to Filesystem package - @norberttech
- #1739 - updated nix packages version in nix shell - @norberttech
- #1723 - Increased phpstan lvl to 9 - @norberttech
- #1727 - Update Homebrew TAP formula: flow-php to version: 0.19.0 - @norberttech
#Fixed
- #1752 - Partitioning should not overwrite schema - @stloyd
- #1740 - reading multiline strings in CSV files - @norberttech
- #1739 - performance of comparison transformations - @norberttech
- #1739 - performance of calculating rows/nulls in parquet row groups - @norberttech
- #1739 - make json and string types comparable - @norberttech
- #1735 - performance bottleneck in parquet library - @norberttech
- #1735 - don't include pcov in nix shell when blackfire is enabled - @norberttech
- #1723 - StructureType narrowing through dedicated phpstan extension - @norberttech
- 52096e - coding standards - @norberttech
#Updated
- f9246c - website dependencies - @norberttech
#Removed
- #1734 - empty_schema leftover from DSL - @norberttech
#[0.19.0] - 2025-06-23
#Added
- #1720 -
match_casesandmatch_conditionscalar functions - @norberttech - #1719 - NumericString Type to Flow Types library - @norberttech
#Changed
- f4542b - Prepared release 0.19.0 - @norberttech
- #1710 - Update Homebrew TAP formula: flow-php to version: 0.18.0 - @norberttech
#Fixed
- #1724 - length of auto generate aliases in dbal key set extractor - @norberttech
#[0.18.0] - 2025-06-09
#Added
- #1708 - CallUserFunc Scalar Function - @norberttech
- #1708 - CallUserFunc Example to Website - @norberttech
- #1706 - Rending mermaidjs charts - @norberttech
- #1699 - Configurable Sanitizers to PSR7Processor - @norberttech
- #1685 - Add withBomRemoval() method to enable/disable BOM removal (enabled by default) - @broncha
- #1687 - Dbal Bulk::delete() - @norberttech
- #1687 - to_dbal_table_delete() - @norberttech
- #1687 - Tested dbal adapter elements at all supported db engines - @norberttech
- #1684 - type_intersection - @norberttech
#Changed
- 4a26f3 - Prepared release 0.18.0 - @norberttech
- #1706 - Documentation navigation on mobile - @norberttech
- #1682 - Update Homebrew TAP formula: flow-php to version: 0.17.1 - @norberttech
#Updated
- 0d0a73 - dependencies - @norberttech
- 0e1f6a - dependecies - @norberttech
- e8d7de - proposal.yml - @norberttech
- 47487c - proposal.yml - @norberttech
- 6a0ad1 - bug.yml - @norberttech
- bcbd17 - bug.yml - @norberttech
- 0eb36b - bug.yml - @norberttech
#[0.17.1] - 2025-05-26
#Added
- #1673 - Issue Templates - @norberttech
#Changed
- #1673 - Contributing guildelines - @norberttech
- #1681 - Update Homebrew TAP formula: flow-php to version: 0.17.0 - @norberttech
#Fixed
- b46480 - dsl definition - @norberttech
- b45520 - types for complex schema types, prepared release 0.17.1 - @norberttech
#[0.17.0] - 2025-05-26
#Added
- #1680 - Types Library architecture documnetation - @norberttech
- #1678 - type_mixed() - @norberttech
- #1678 - more tests in optional type - @norberttech
- #1670 - memory consumption to dataset report - @norberttech
- #1663 - Add a benchmark for Excel Extractor with an ODS file - @stloyd
- #1658 - type_positive_integer() - @norberttech
- #1658 - type_non_empty_string() - @norberttech
- #1643 - Add a new Excel Adapter with simple extractor - @stloyd
- bcab86 - flow-php/types dependency to flow-php/etl - @norberttech
- #1645 - UnionType to Types - @norberttech
- #1645 - OptionalType to Types - @norberttech
- #1645 - nullable property to Schema\Definition - @norberttech
- #1655 - Schema Evolving Validator - @norberttech
#Changed
- 1a046a - Prepared release 0.17.0 - @norberttech
- #1680 - Unified types test suite - @norberttech
- #1680 - Moved Type interface to Flow\Types namespace - @norberttech
- #1665 - Improve the
CSVExtractorby removing duplicated operations - @stloyd - #1664 - Improve reading of headers in the
CSVExtractor- @stloyd - #1661 - Simplify Excel & GoogleSheet extractor cell expanding - @stloyd
- #1660 - Renamed is_nullable() into type_is_nullable() - @norberttech
- #1656 - Update Excel reading example - @stloyd
- #1645 - Moved all Types related classes to flow-php/types component - @norberttech
- #1653 - Update Homebrew TAP formula: flow-php to version: 0.16.2 - @norberttech
- #1651 - Rework
RenameEachEntryTransformerto a single instance on multiple strategies - @stloyd
#Fixed
- #1677 - parquet normalizer for nullable entries - @norberttech
- #1659 - Close Excel extractor when limit is reached - @stloyd
- #1659 - Prevent memory leak in
ExcelExtractorby not copying each row in loop - @stloyd - #1658 - Removed references to Flow\ETL namespace from Flow\Types - @norberttech
#Updated
- ef1e3d - types.md - @norberttech
- 850f2c - README.md - @norberttech
- bdfa42 - dependencies - @norberttech
#Removed
- #1674 - labeler action from pr-check workflow - @norberttech
- #1645 - nullable property from all types - @norberttech
#[0.16.2] - 2025-05-15
#Changed
- #1648 - Update Homebrew TAP formula: flow-php to version: 0.16.1 - @norberttech
#Fixed
- #1652 - pipelines optimization that was traversing through collection of pipelines - @norberttech
#[0.16.1] - 2025-05-14
#Changed
- #1644 - Update Homebrew TAP formula: flow-php to version: 0.16.0 - @norberttech
#Fixed
- #1647 - Dates befor 1970-01-01 conversion to/from parquet - @norberttech
- #1647 - nix shell starship configuration loading - @norberttech
#[0.16.0] - 2025-05-12
#Added
- #1642 - Add a new
RenameEachEntryTransformerBenchbenchmark - @stloyd - #1617 - Added new
Style::ASCII,Style::CAMEL,Style::TITLE&Style::SLUG- @stloyd - #1615 - Add a new
DataFrame::renameEach()- @stloyd - #1615 - Add a new functions
rename_style(),rename_replace()&rename_transliterate()- @stloyd
#Changed
- 6b5d0f - Prepared release 0.16.0 - @norberttech
- #1635 - Merge
Rename\StylewithStringStyles- @stloyd - #1639 - Dont truncate ascii table output schema - @norberttech
- #1634 - Adjust
DataFrame::renameEach()to allow multiple strategies at once - @stloyd - #1633 - Rework
RenameReplaceEntryStrategyto allow multiple strings - @stloyd - #1617 - Rework
rename_transliterateto use Symfony String - @stloyd - #1614 - Update Homebrew TAP formula: flow-php to version: 0.15.1 - @norberttech
#Fixed
- #1640 - batch size optimization for deeply nested pipelines - @norberttech
- #1635 -
StringStylesrelated code to work with UTF-8 - @stloyd - #1632 - error message when to_parquet is not available - @bendavies
- #1631 - fix: error message when to_csv is not available - @bendavies
#Removed
- #1641 - redundant creation of cache folder - @norberttech
#Deprecated
- #1635 -
Flow\ETL\Function\StyleConverter\StringStylesin favor ofFlow\ETL\Style\StringStyles- @stloyd - #1615 - Deprecate
Flow\ETL\DataFrame::renameAll()- @stloyd - #1615 - Deprecate
Flow\ETL\DataFrame::renameAllLowerCase()- @stloyd - #1615 - Deprecate
Flow\ETL\DataFrame::renameAllUpperCase()- @stloyd - #1615 - Deprecate
Flow\ETL\DataFrame::renameAllUpperCaseFirst()- @stloyd - #1615 - Deprecate
Flow\ETL\DataFrame::renameAllUpperCaseWord()- @stloyd - #1615 - Deprecate
Flow\ETL\RenameAllCaseTransformer- @stloyd - #1615 - Deprecate
Flow\ETL\RenameStrReplaceAllEntriesTransformer- @stloyd
#[0.15.1] - 2025-05-01
#Changed
- #1610 - Update Homebrew TAP formula: flow-php to version: 0.15.0 - @norberttech
#Fixed
- #1613 - key set pagination query for ambiguous column names - @norberttech
#[0.15.0] - 2025-04-28
#Added
- #1603 - Dbal KeySet extractor - @norberttech
#Changed
- 4d3af5 - Prepare release 0.15.0 - @norberttech
- #1606 - [GoogleSheet] Prevent fatal error when extracted columns don't match headers amount - @stloyd
- #1599 - cleanup schema namespace - @norberttech
- #1596 - Update Homebrew TAP formula: flow-php to version: 0.14.0 - @norberttech
#Fixed
#Removed
- #1599 - SchemaMatcher replaced by SchemaValidator - @norberttech
#[0.14.0] - 2025-04-14
#Added
- #1584 - spaze/phpstan-disallowed-calls - @norberttech
- #1577 - ScalarFunctionResult - @norberttech
- #1577 - bcmath extension with polyfill - @norberttech
#Changed
- 8be62b - Prepare release 0.14.0 - @norberttech
- #1588 - Allow to pass options to cast scalar function - @norberttech
- #1584 - Replaced BCmath calculator with brick/math library - @norberttech
- #1584 - Divide on floats will expect to provide scale & rounding - @norberttech
- #1580 - Renamed DataFrame::validate() into DataFrame::match() - @norberttech
- #1577 - Float type toString now display precision - @norberttech
- #1575 - Update Homebrew TAP formula: flow-php to version: 0.13.1 - @norberttech
#Fixed
- #1594 - schema comparison for nullability - @norberttech
- #1591 - concurrency issue when creating cache directory - @norberttech
- #1587 - respecting fields created from null values by schema validators - @norberttech
- #1581 - accessing entries through reference alias - @norberttech
- #1577 - Merging float definitions with different precisions - @norberttech
- #1577 - Merging floats and integer to use float precision - @norberttech
- #1577 - Merging lists/maps of floats to use higher precision - @norberttech
#Updated
- 673ad4 - test-suite.yml - @norberttech
#Removed
- #1584 - FloatType::toString will no longer print precision - @norberttech
- #1584 - bcmath polyfill dependency - @norberttech
- #1577 - TypeScalarFunctionInterface - @norberttech
#[0.13.1] - 2025-04-03
#Changed
- #1572 - Update Homebrew TAP formula: flow-php to version: 0.13.0 - @norberttech
#Fixed
- #1574 - Entry TValue and TType templates definitions - @norberttech
#[0.13.0] - 2025-03-31
#Added
- 3db9c7 - a Recommendation Badge from libs.tech (#1562) - @Krizhnikov
- #1561 - codeowners definition - @norberttech
- #1556 - Analyze profile allowing to define more precisely how pipeline execution is going to be analyzed - @norberttech
- #1557 - Added release cycle link to website - @norberttech
- #1547 - DataFrame::constrain(Constraint $constraint) : self - @norberttech
- #1547 - Unique Constraint - @norberttech
- #1543 - modifyDateTime scalar function - @norberttech
- #1541 - DataFrame::duplicateRow() method - @norberttech
- #1541 - with_entry() function - @norberttech
#Changed
- d4cf6b - Prepare release 0.13.0 - @norberttech
- #1561 - Analyze will only take column type from schema when available to display column statistics - @norberttech
- #1556 - Analyze is no longer automatically collecting columns / schema statitiscs - @norberttech
- #1545 - Make Date and DateTime comparable - @norberttech
- #1541 - DataFrame::with/transform/withEntries now also accepts WithEntry instance - @norberttech
- #1538 - Improved cookie baner experience by showing also current status accepted/rejected/undecided - @norberttech
- #1536 - Update Homebrew TAP formula: flow-php to version: 0.12.0 - @norberttech
#Fixed
- #1559 - Merging two definitions created from null does not remove FROM_NULL metadata - @norberttech
- #1556 - Collecting date & time based statistics - @norberttech
#Updated
- 7cfc5e - dependencies and cs fixes - @norberttech
#Removed
- #1561 - Entry object from column statistics, use reference instead - @norberttech
- #1538 - Google Ads - @norberttech
#[0.12.0] - 2025-03-17
#Added
- #1535 - Get latest version - @norberttech
- #1534 - Blog Post - new release cycle - @norberttech
- #1529 - Type::isCompatible(self $type): bool - method - @norberttech
- #1527 - Column statistics to pipeline execution report - @norberttech
#Changed
- 66fbc2 - Prepare release 0.12.0 - @norberttech
- #1533 - type_uuid no longer recognize symfony/ramsey objects as uuid - @norberttech
- #1533 - EntryFactory decorates casting exception with entry name - @norberttech
- #1533 - EntryFactory::create is now reusing more logic from EntryFactory::createAt - @norberttech
- #1533 - Updated version of elasticsearch in tests - @norberttech
- #1529 - Improve readability of schema validation exception - @norberttech
- #1526 - Some documentation text. - @sprtk-ches
- #1521 - Update Homebrew TAP formula: flow-php to version: 0.11.0 - @norberttech
#Fixed
- #1531 - schema validation error message - @norberttech
- #1530 - Ignore metadata in Definition::isCompatible method to avoid schema validation failures - @norberttech
- #1526 - A broken link - @sprtk-ches
#Updated
- 3012b9 - installation.md - @norberttech
#[0.11.0] - 2025-03-09
#Added
- #1519 - Allow to select specific column in db:table:schema - @norberttech
- 6182e5 - instructions how to use Flow CLI through docker - @norberttech
- #1511 - Databas to Flow schema converter - @norberttech
- #1511 - Database table list in CLI - @norberttech
- #1511 - Database table schema in CLI - @norberttech
- #1511 - Schema conversion in CLI - @norberttech
- #1507 - Add string function BeforeLast with Tests - @f-lapinski
- #1494 - afterLast function with test coverage - @f-lapinski
- #1497 - DSL for Symfony Http Bridge - @norberttech
- #1496 - helper methods on Schema/Definition to manipulate metadata - @norberttech
- #1495 - Adds method
TransformerLoader::closure()to delegate generator stop signals to proxied loaders. - @christianc1 - #1468 - Nix - for local development environment - @norberttech
- #1492 - Respect limit/offset from query builder in dbal query loader - @norberttech
- #1491 - Added missing tests to string functions - @f-lapinski
- #1488 - DataStream builder - @norberttech
- #1488 - AddRowIdex Transformation - @norberttech
- #1488 - Batch Size Transformation - @norberttech
- #1484 - Added function StringBefore and Tests - @f-lapinski
- #1484 - Including needle is set false by default - @f-lapinski
- #1485 - Added function StringBefore and Tests stringAfter($needle, $includingNeedle including needle is set false by default - @f-lapinski
- #1477 - Add Title function with argument allWords set false as default with Tests - @f-lapinski
- #1475 - Early detection of XML type in dbal bulk - @norberttech
- #1473 - Added IndexOf function with $offset and $ignoreCase parameters and Tests - @f-lapinski
- #1470 - ByteString IsUTF8 function with Test - @f-lapinski
- #1465 - jsonl writing example - @norberttech
- #1465 - csv writing example - @norberttech
- #1465 - xml writing example - @norberttech
- f7d9d3 - openssf best practices badge - @norberttech
- 566506 - documentation/security page - @norberttech
- #1455 - DbalMetadata::type - allowing to change the type mapping on a specific column level - @norberttech
- add439 - missing composer scripts and phpdoc configurations - @norberttech
- #1454 - Api References to all packages - @norberttech
- #1449 - string folded function - @f-lapinski
- #1447 - Add read support for JSONL files - @jmortlock
- 0d0601 - permalinks to headlines rendered from markdown - @norberttech
- #1442 - Added support for JSONL - https://github.com/jmortlock/flow/pull/new/add-jsonl-support - @jmortlock
- #1440 - composer.json file to each example - @norberttech
- #1438 - Added file analyze command to CLI - @norberttech
- #1429 - Flow to Doctrine Dbal schema converter - @norberttech
- #1413 - Blog Post - Data Processing in PHP - @norberttech
- #1410 - high resolution time to pipeline report execution time - @norberttech
- #1408 - Custom transformations into to_branch() loader - @norberttech
- #1408 - Transformations into to_transformation() loader - @norberttech
- #1400 - Allow Scalar Functions to defined return Type - @norberttech
- #1400 - EntryFactory::createAs method to create entry from value and specific expected type - @norberttech
- #1392 - DataFrame::with(Transformer|Transformation) : self - @norberttech
- #1391 - ScalarFunction - arrayValues - @norberttech
- #1391 - ScalarFunction - arrayKeys - @norberttech
- #1391 - ScalarFunction - arrayKeep - @norberttech
- #1391 - ScalarFunction - arrayFilter - @norberttech
- #1389 - Added String Agg function - @norberttech
- #1387 - Another when function example - @norberttech
- #1385 - concat_ws (with separator) scalar function - @norberttech
- #1384 - elasticsearch examples - @norberttech
- #1380 - execution time to pipeline report - @norberttech
- #1378 - Added and/or/andNot/orNot to ScalarFunctionsChain - @norberttech
- #1371 - Added database upsert example - @norberttech
- 25b741 - sponsor page - @norberttech
- #1358 - Transformers to serialize/unserialize entire row under/from one entry - @norberttech
- #1356 - List of all packages to the installation page - @norberttech
- #1355 - manifest.json file with all packages in this monorepo - @norberttech
- #1345 - Project ADR's - @norberttech
- #1329 - Run PHPStan for test suite - @Bellangelo
- #1341 - Rector to static analysis tools - @norberttech
- #1339 - Tool - rector - @norberttech
- #1337 - Slug Scalar Function - @norberttech
- #1337 - Ascii Scalar Function - @norberttech
- #1326 - template to Types that defines underlying data type - @norberttech
- #1325 - Precision to float type - @norberttech
- #1325 - caster DSL function - @norberttech
- #1320 - greatest scalar function - @norberttech
- #1320 - least scalar function - @norberttech
- #1318 - Edit on GitHub button to website pages - @norberttech
- 4bd3d3 - experimental google ads - @norberttech
- d8ee4f - flags for codecov uploads - @norberttech
- #1291 - FlowTestCase with assertions around Extractors - @Bellangelo
- #1296 - Added codecov integration - @norberttech
- #1295 - Symfony Http Foundation Bridge documentation to navigation - @norberttech
- #1294 - Documentation building step to github actions workflow - @norberttech
- #1281 - S3 Filesystem based on Async AWS library - @norberttech
- #1281 - Timeout to testsuite job at github actios - @norberttech
- #1280 - Added cookies fallback page - @norberttech
- 2b6ae2 - default google consent state script - @norberttech
- 6e3a60 - cookie banner to the website - @norberttech
- #1278 - Added examples to documentation - @norberttech
- #1276 - Improved flow-php.com documentation by rendering markdown files from repo on flow-php.com website - @norberttech
- c36254 - google ad-sense meta tag - @norberttech
- #1271 - Allow to pass schema to doctrine dbal extractors - @norberttech
- #1271 - Database data source example to website - @norberttech
- #1271 - Database data sink example to website - @norberttech
- #1270 - Schema apply example - @norberttech
- #1270 - Running examples in the test suite - @norberttech
- #1266 - Date entry type - @norberttech
- #1266 - Date logical type - @norberttech
- #1266 - Time entry type - @norberttech
- #1266 - Time logical type - @norberttech
- #1268 - coalesce scalar function/li> - @norberttech
- #1267 - Entry::withValue(mixed $value) : self - @norberttech
- #1257 - Add testing against PHP 8.4 - @stloyd
- #1251 - composer script for building thrift definitions - @norberttech
- #1247 - command to convert files through cli - @norberttech
- #1246 - file:read - cli command - @norberttech
- #1246 - file:schema- cli command - @norberttech
- #1246 - file:rows:command- cli command - @norberttech
- #1244 - Added CLI command to read schema from a file - @norberttech
#Changed
- 60267a - Prepare release 0.11.0 - @norberttech
- #1499 - Return 204 for buffered response when dataset is empty - @norberttech
- #1498 - Allow to pass limit as null to avoid breaking a pipeline - @norberttech
- #1497 - Renamed API of Http Bridge Stream Builder - @norberttech
- #1497 - Moved generic Transformations from bridge to Core - @norberttech
- #1496 - Removed readonly from Schema Definition - @norberttech
- #1493 - Doctrine Dbal Adapter loader now expect options as an object - @norberttech
- #1488 - Moved Transformations to ETL Core - @norberttech
- #1476 - Allow to pass single type to is_type() method - @norberttech
- #1476 - Allow using concat ws on collections - @norberttech
- #1465 - Improved contributing md - @norberttech
- #1462 - Improve error message when schema definition is duplicated - @norberttech
- #1453 - Change StringCamel to StringStyle to using with exisitng Enum StringStyles and get's StringStyle as parameter - @f-lapinski
- #1456 - Count aggregating function does not require reference anymore - @norberttech
- #1441 - removed archive section from composer.json of examples for readability - @norberttech
- #1437 - Allow to not pass primary key name to dbal metadata since it's not used in some cases - @norberttech
- #1435 - Indexes and primary key are added to directly the table instead of being returned - @norberttech
- #1429 - Moved UPGRADE.md to documentation folder to make it available as a static website - @norberttech
- #1427 - Revert "Bump friendsofphp/php-cs-fixer from 3.68.0 to 3.68.2 in /tools/cs-fixer" - @norberttech
- #1415 - Significantly reduced complexity of parquet schema converter - @norberttech
- #1407 - Remove usage of
References::initinRowclass - @stloyd - #1406 - Improve
Expression::dropDuplicate*Entriesmethods - @stloyd - #1405 - Join columns from a join expression won't trigger the join duplicated columns exception anymore. - @norberttech
- #1404 - Updated dependencies - @norberttech
- #1402 - NativeEntryFactory renamed to EntryFactory - @mleczakm
- #1400 - Simplified ArrayExpand and ArrayUnpack interfaces - @norberttech
- #1393 - Simplify concat functions internals - @stloyd
- #1387 - Expanded Contains to support also arrays - @norberttech
- #1377 - Bump phpunit/phpunit from 10.5.40 to 11.5.3 - @Bellangelo
- #1370 - Allow to group by more than one column on pivot - @norberttech
- #1368 - Return integers from Round func when precision is set to 0 - @norberttech
- #1357 - Improved Type template - @norberttech
- 4f86b6 - Create SECURITY.md - @norberttech
- #1343 - Simplified defining StructureType by removing StructureElement - @norberttech
- #1341 - Enforce using DSL in test suite - @norberttech
- #1339 - Upgraded codebase to PHP 8.2 - @norberttech
- #1336 - Replaced jawira/case-converter with symfony/string - @norberttech
- #1336 - Removed redundant String Style class - @norberttech
- #1328 - Harden phpstan generics static analysis configuration - @norberttech
- #1326 - Made return types of casting handlers more strict - @norberttech
- #1325 - Caster will now respect float precision - @norberttech
- #1325 - Split ScalarType into standalone types - @norberttech
- 71e16c - Improved spacing between google ads - @norberttech
- #1308 - Replaced flags with components in codecov configuration - @norberttech
- #1307 - Used the new
FlowTestCasein all the ETL tests - @Bellangelo - #1306 - Used the new
FlowTestCasein all the ETL tests - @Bellangelo - #1303 - Used the new
FlowTestCasein all the ETL tests - @Bellangelo - #1305 - Moved FlowIntegrationTestCase to the same namespace as FlowTestCase - @norberttech
- #1304 - Set commit parent for codecov coverage/test report comparison - @norberttech
- 47990c - Moved uploading baseline codecov commit sha to test suite workflow and merged test suite with extensions tests - @norberttech
- a90bf2 - Unified github workflows - @norberttech
- #1302 - Updated infection configuration to focus it at core only - @norberttech
- 2072d8 - Renamed output files of phpunit coverage report and junit report for codecov - @norberttech
- #1300 - Moved coverage and phpunit logs to standalone files - @norberttech
- #1300 - upload to codecov only from one php and deps version - @norberttech
- #1295 - Improved readability of remote filesystem examples - @norberttech
- #1293 - Increase minimal MSI for Infection - @stloyd
- #1293 - Run mutations tests when changing Inflection related files - @stloyd
- #1292 - Update & adjust Infection configuration - @stloyd
- #1287 - Split test suite into independent jobs - @norberttech
- #1287 - Locked meilisearch to 1.11 - @norberttech
- 085971 - Create ads.txt - @norberttech
- 0a4fc3 - third party cookie banner provider with a custom solution - @norberttech
- #1279 - Improved user experience on mobile version of the documentation - @norberttech
- #1272 - Renamed website examples topics - @norberttech
- #1270 - Updated dependencies - @norberttech
- 81964e - Build cli command using latest available dependencies - @norberttech
- #1262 - Updated dependencies - @norberttech
- #1261 - Reimplemented from scratch Dremel Shredding/Assemble algorithms to cover all edge cases and fix bugs - @norberttech
- #1256 - Upgrade PHPStan to 2.0 - @stloyd
- #1256 - Adjust codebase to cover newly detected issues - @stloyd
- #1251 - Updated parquet thrift definitions - @norberttech
- #1251 - ParquetLoader will now make inferred schema nullable - @norberttech
- #1247 - CLI command options now comes with a --output / --input prefix - @norberttech
- #1246 - Unified options/arguments handling across all commands - @norberttech
- #1246 - run cli command was renamed into pipeline:run with alias run - @norberttech
- f30a31 - Second attempt to fix flow cli autoloading - @norberttech
- #1242 - Moved flow phar to dedicated cli repository - @norberttech
- #1240 - Update Homebrew TAP formula: flow-php to version: 0.10.0 - @norberttech
#Fixed
- #1518 - Fixed pagination for queries with group by in dbal extractor - @norberttech
- #1513 - Added missing library for postgresql into docker - @norberttech
- #1512 - Add missing db drivers to docker image - @norberttech
- #1511 - Too generic names of DbalMetadata keys - @norberttech
- #1507 - Fix some variable names in previous functions tests - @f-lapinski
- #1494 - Add missing PHPDocs in Chain - @f-lapinski
- #1499 - Prevent double ETL evaluation in buffered response - @norberttech
- #1497 - Fixed documentation - @norberttech
- 457164 - broken upsert example - @norberttech
- #1482 - JSON was being double encoded. - @jmortlock
- #1483 - Fix typo in README.md - @jmortlock
- #1475 - Incosistency between XMLEntry::toString and Casting XML's to strings - @norberttech
- #1470 - Add Missing Test for return type of function - @f-lapinski
- #1469 - JSONLines Loader would occasionally write a newline to the start of the file. - @jmortlock
- #1457 - missing entry types to JSON/CSV entry normalizers - @norberttech
- d82381 - failing example test - @norberttech
- #1448 - ParquetOutput didn't implement Output interface - @radozato
- #1441 - Added missing lock files to examples - @norberttech
- #1437 - Setting up the offset for reading remote parquet files - @norberttech
- #1436 - typo in documentation - @paul-court
- #1435 - Read scale from float type in Dbal Schema Converter - @norberttech
- #1429 - links in all repos readme - @norberttech
- #1417 - Removed redundant evaluation of transformer function. - @christianc1
- #1415 - Date String detection - @norberttech
- 3dee6e - article title - @norberttech
- #1400 - Casting non deterministic values like empty array to list/map will create list/map entry - @norberttech
- #1395 - Carry metadata and type nullability when creating entries from Schema Definition - @norberttech
- #1389 - Links in documentation - @norberttech
- #1389 - padding in documentation - @norberttech
- #1377 - TestCases new syntax - @Bellangelo
- #1369 - FloatEntry with value 0 - @norberttech
- 432fee - filesystem bridges composer names - @norberttech
- aa57c0 - path in manifest - @norberttech
- #1350 - PHPStan argument.type error - @norberttech
- #1343 - Structure ignoring wrong element names, not matching type definition - @norberttech
- 39af78 - paths in test suite triggers on github actions - @norberttech
- 01b885 - codecov using base commit only for pull requests, otherwise upload baseline commit - @norberttech
- e26960 - warnings in Github Baselin Workflow - @norberttech
- aa0e48 - SHA artifact upload - @norberttech
- c7d57a - bug in baseline workflow related to fetching base commit sha - @norberttech
- #1299 - Fixed typo in AWS filesystem docs - @stloyd
- #1297 - Website navigation - @norberttech
- #1294 - Fixed broken documentation building script - @norberttech
- #1281 - Meilisearch pagination - @norberttech
- #1289 - Adjust Meilisearch adapter to newer library code - @stloyd
- 53892a - static content providers for website - @norberttech
- #1277 - Removed .md suffix from documentation URLs - @norberttech
- 8bffbe - broken documentation paths - @norberttech
- #1274 - Fixed schema inferring when first rows are null - @norberttech
- #1272 - Copy button scroll - @norberttech
- #1270 - Missing Docs attribute in functions - @norberttech
- #1269 - pivot edge case when pivot column is null - @norberttech
- #1263 - Parquet - optional list required element - list empty - @norberttech
- #1263 - Parquet - optional map required value - map empty - @norberttech
- #1257 - Fixed deprecation from PHP 8.4 - @stloyd
- #1256 - Fixed main branch static analyse issues - @stloyd
- #1251 - Setting repetition level based on flow schema definition in parquet converter - @norberttech
- #1248 - Unified behavior of first/last aggregations to prevent columns conflicts when doing aggregation and grouping by the same column - @norberttech
- #1245 - Fixed writing column statistics when there is only one row that is null - @norberttech
- #1243 - Fixed flow cli autoloading - @norberttech
#Updated
- c01992 - composer.json - @norberttech
- 03468f - dependencies - @norberttech
- a1731c - dependencies - @norberttech
- 5fa15b - SECURITY.md - @norberttech
- 0e18bb - README.md - @norberttech
- 716443 - dependencies - @norberttech
- c7e512 - README.md - @norberttech
- 1ff799 - base test case for avro - @norberttech
- a3080b - github actions step conditions - @norberttech
- 575eeb - README.md - @norberttech
- df71e5 - .gitattributes of flow-php/etl - @norberttech
- afb55b - introduction.md - @norberttech
#Removed
- #1520 - RDSL library - @norberttech
- #1453 - Previous StringCamle function, methods and tests - @f-lapinski
- #1415 - EntryClass from Schema Definition - @norberttech
- #1402 - EntryFactory interface - @mleczakm
- #1343 - MapKey - @norberttech
- #1343 - MapValue - @norberttech
- #1343 - ListElement - @norberttech
- #1343 - StructureElemet - @norberttech
- #1311 - Psalm - static analysis tool - @norberttech
- #1288 - Drop support for PHP 8.1 - @stloyd
- #1273 - development leftover methods from Filesystems - @norberttech
- #1270 - CallMethod scalar functions - @norberttech
- #1266 - ArrayEntry which is now replaced with JsonEntry - @norberttech
- #1266 - ObjectEntry - @norberttech
#[0.10.0] - 2024-10-03
#Added
- #1238 - Added more output styles for to_output() loader - @norberttech
- #1234 - symfony streamed response - @norberttech
- #1234 - Possibility to use different output streams in StdOutFilesystem - @norberttech
- #1233 - Added StdOut Filesystem with stdout protocol - @norberttech
- #1226 - to_array() loader with usage example - @norberttech
- #1225 - Added breadcrumbs to blog posts - @norberttech
- #1225 - Data Sink examples topic - @norberttech
- #1224 - Added comments to website blog/documentation - @norberttech
- #1221 - DataFrame::filters(array $filters) : self - @norberttech
- 78cefe - BigSiteAuth to submit flow-php.com to bing search - @norberttech
- #1216 - Added auto generated sitemap to website - @norberttech
- #1216 - Added robots.txt - @norberttech
- #1215 - Display DSL function usage examples at function doc page - @norberttech
- #1215 - More DataFrame usage examples - @norberttech
- #1215 - Priority parameter that defines in what order examples/topics are displayed - @norberttech
- #1215 - Hidden parameter that allows to not display specific examples/topics but still let dsl docs link to them - @norberttech
- ee4e8a - missing pointerToEntryName to JsonExtractor withPointer method - @norberttech
- #1211 - Allow to use json pointer as an entry name for extracted records - @norberttech
- #1211 - More tests to array_to_row and array_to_rows methods - @norberttech
- #1195 - Functional tests for flow-php.com website - @norberttech
- #1193 - Links from code examples to DSL functions documentation - @norberttech
- #1193 - each DSL function now gots her own page - @norberttech
- #1193 - missing DSL's definitions - filesystem, azure filesystem, azure sdk - @norberttech
#Changed
- #1239 - CachingPipeline will relay only on previously set batch size without modifying it - @norberttech
- #1234 - Path options are now available as a Options object instead of PHP associative array - @norberttech
- #1235 - Improved DX on adding path filter to file extractors - @norberttech
- #1233 - Loaders no longer need to relay on file extension to close streams in clousure - @norberttech
- #1223 - Improved performance of Scalar Function Parameter - @norberttech
- #1222 - Return DOMDocument instead of DOMElement from XMLParserExtractor - @norberttech
- #1221 - Optimized XPath Scalar Function by reusing DOMDocument instead of creating new one - @norberttech
- #1221 - Allow to pass Schema\Definition to withEntry in order to avoid using NativeEntryFactory type detection - @norberttech
- #1215 - Improved title/description at DSL documentation pages - @norberttech
- #1211 - When JsonExtractor is using a pointer, pointer becomes a key - @norberttech
- #1209 - Updated dependencies - @norberttech
- #1208 - Unify passing options to loaders/extractors through fluent interface - @norberttech
- #1207 - from_csv, from_json, from_xml, from_parquet and from_text contract, removed support for passing path as array - @mleczakm
- #1203 - Allow to rename XML nested structure elements on a loader level - @norberttech
- #1203 - Move optional XMLLoader options to fluent interface - @norberttech
- #1196 - Duplicate Module/Type enums in website to avoid dependencies and keep boundaries clean - @norberttech
- #1193 - landing page code highlights are now handled by prismjs - @norberttech
- #1191 - Update Homebrew TAP formula: flow-php to version: 0.9.2 - @norberttech
#Fixed
- #1237 - detecting array value type when first element was null - @norberttech
- #1236 - FlowStreamedResponse - drop partitions to avoid opening multiple streams - @norberttech
- cb98b1 - invalid repo name in symfony http foundation bridge repo - @norberttech
- #1234 - Path to bridges unit/integration test cases in phpunit.xml - @norberttech
- #1232 - Don't call loaders when rows are empty - @norberttech
- b5f70f - SEO issue with duplicated example pages titles - @norberttech
- #1220 - DOMElementValue behavior when used on a XPath scalar function result - @norberttech
- #1220 - DOMElementAttributeValue behavior when used on a XPath scalar function result - @norberttech
- #1216 - Routes priority to always check examples and topics at the end - @norberttech
- #1211 - Fixed Json extractor when pointer is used to extract flat arrays - @norberttech
- eaa783 - documentation homepage - @norberttech
- 904b6a - lowercasing module names in dsl routes provider - @norberttech
- b1a9cd - autolinker prism plugin - @norberttech
- 443c48 - codding standards - @norberttech
- d66b2d - building landing page documnetation - @norberttech
- #1194 - Generating links to dsl functions - @norberttech
#Updated
- d962b5 - project dependencies before 0.10.0 release - @norberttech
#Removed
- #1239 - Default global CachingPipeline batch size - @norberttech
#[0.9.2] - 2024-08-13
#Added
- #1190 - link to GitHub next to each dsl function documentation - @norberttech
- #1188 - Documentation tool that can extract function definitions from given paths - @norberttech
- #1188 - bin/docs tool that dumps DSL definitions as json to a file - @norberttech
- #1188 - Landing page documentation section - @norberttech
- #1188 - Scroll up button on website at mobile devices - @norberttech
#Changed
- #1187 - Update Homebrew TAP formula: flow-php to version: 0.9.1 - @norberttech
#Fixed
#Removed
- 4473ae - auto generating dsl - @norberttech
#[0.9.1] - 2024-08-12
#Added
- #1185 - Description to landing page examples - @norberttech
#Changed
- #1184 - Update Homebrew TAP formula: flow-php to version: 0.9.0 - @norberttech
#Fixed
- #1186 - parquet reader when reading multiple data pages - @norberttech
#[0.9.0] - 2024-08-10
#Added
- #1183 - JsonLoader parameter that defines if each row should be a single line in the output file - @norberttech
- #1183 - JsonLoader int $flags parameter that is passed later to internal json_encode function - @norberttech
- #1181 - CSV RowsNormalizer to automate writing deeply nested data structures to CSV without manual casting - @norberttech
- #1174 - New blog post about scalar functions - @norberttech
- #1173 - Added new page with a list of latest blog posts to landing page - @norberttech
- #1170 - XMLParserExtractor implementation of XMLExtractor - @norberttech
- #1168 - OnEach scalar function - @norberttech
- #1167 - DOMElementAttributesCount scalar function - @norberttech
- #1167 - DOMElementAttributeValue scalar function - @norberttech
- #1167 - dom_element_to_string helper function - @norberttech
- #1167 - Support for casting DOMElement into different types in Caster - @norberttech
- #1166 - XML Loader - writing to XML files - @norberttech
- #1160 - Regex Scalar Function - @norberttech
- #1160 - Missing optional arguments to all regex scalar functions - @norberttech
- #1128 - UniqueFactory as source of random ints/strings with given length - @mleczakm
- #1147 - Filesystem appendTo - which allows to append data to existing stream - @norberttech
- #1149 - Add
array_to_rowhelper function - @stloyd - #1144 - Filesystem - added getSystemTmpDir() method - @norberttech
- #1144 - Path - added suffix(string $suffix): Path method - @norberttech
- #1144 - Path - removed setExtension() - @norberttech
- #1144 - Path - removed startsWith() - @norberttech
- #1131 - Dependabot for github actions dependencies - @norberttech
- #1130 - typed functions to array-dot library - @norberttech
- #1127 - Explain the “ETL” acronym - @alexislefebvre
- #1122 - Generic algorithm abstraction instead of native calls - @mleczakm
- bd519c - discord server url - @norberttech
#Changed
- #1182 - Automate normalization of rows in JsonLoader - @norberttech
- #1177 - All scalar functions will now expect parameters to be a scalar function or literal value - @norberttech
- #1174 - Simplified posts HTML syntax - @norberttech
- #1174 - Minor UX adjustments on landing page and blog - @norberttech
- #1170 - XMLReaderExtractor is now deprecated as it can't read from remote files - @norberttech
- #1167 - XMLReaderExtractor will now return each row with node{\DOMElement} instead of node{\DOMDocument} - @norberttech
- #1167 - DOMElementAttribute scalar function is now deprecated in favor of DOMElementAttributeValue - @norberttech
- #1160 - Renamed PregMatch into RegexMatch - @norberttech
- #1160 - Renamed PregMatchAll into RegexMatchAll - @norberttech
- #1160 - Renamed PregReplex into RegexReplace - @norberttech
- #1147 - Simplified Cache abstraction - @norberttech
- #1147 - Cache implementations does not need to maintain index anymore, this logic was moved outside of Cache - @norberttech
- #1147 - Extracted Sorting related configuration to standalone Config/ConfigBuilder - @norberttech
- #1147 - Extracted Caching related configuration to standalone Config/ConfigBuilder - @norberttech
- #1147 - Reduced default cache batch size to 100 from 1000 - @norberttech
- 44e875 - criteria for fetching latest artifacts after workflow runs - @norberttech
- #1152 - Make "jawira/case-converter" a hard dependency - @stloyd
- #1137 - Deprecate Schema::entries in favor to Schema::references - @norberttech
- #1131 - Updated cache@v3 into cache@v4 across all github actions workflows - @norberttech
- #1125 - Replaced github discussions with discord server link at landing page - @norberttech
- #1123 - Rework
Referencesto do fewer loops - @stloyd - #1120 - Update Homebrew TAP formula: flow-php to version: 0.8.0 - @norberttech
#Fixed
- 83f9be - Posts provider for static content builder - @norberttech
- #1171 - Fix docblock tag in FlowVersion - @szepeviktor
- #1172 - Grammar in parquet.md - @szepeviktor
- #1165 - Use basenamePrefix instead of suffix when creating temporary file in overwrite save mode - @norberttech
- #1163 - Added missing split function to ScalarFunctionChain - @norberttech
- #1161 - Fixed invalid map type detection - @norberttech
- #1147 - External Sort memory consumption - @norberttech
- 6b275e - broken test-benchmark.yml file - @norberttech
- 926e3b - typo in test-benchmark.yml workflow - @norberttech
- bb50bd - uploading artificats action by setting overwrite: true - @norberttech
- #1148 - Typo in docs - @inmanturbo
- #1129 - Monolog http bridge http-message dependency range - @norberttech
- #1126 - Typo “Discrod” - @alexislefebvre
#Updated
- 9984bb - dependencies before a 0.9.0 release - @norberttech
- c5dbbd - dependencies - @norberttech
- 1390ef - introduction.md - @norberttech
- f5ad85 - CONTRIBUTING.md - @norberttech
#Removed
- #1177 - ToMoney scalar function and money optional dependency - @norberttech
- #1147 - NullCache implementation that wasn't used anywhere - @norberttech
- #1152 - Leftovers in main
composer.jsonrelated to AWS SDK - @stloyd
#[0.8.0] - 2024-07-19
#Added
- e4b84b - google converstion tag for landing page - @norberttech
- #1108 - Tests based on snappy extension and polyfill - @norberttech
- #1106 - Added support for BROTLI compression algorithm to parquet - @flavioheleno
- #1107 - Added support for LZ4 compression algorithm to parquet - @flavioheleno
- #1105 - zstd compression functions - @flavioheleno
- #1104 - Flow Filesystem Library - @norberttech
- #1104 - Flow Azure SDK Library - @norberttech
- #1104 - Flow Monolog HTTP Bridge - @norberttech
- #1104 - Flow Filesystem Azure Bridge - @norberttech
- #1096 - support for parquet deprecated ConvertedType::INT_16 in order to support reading files generated by Amazon Redshift - @norberttech
- #1083 - Allow to use max/min aggregations on date time columns - @norberttech
- #1082 - path partitions extractor - @norberttech
- #1082 - Partitions::get(string $name) : Partition - @norberttech
- #1079 - Enabled parallelization for cs fixer - @norberttech
- #1079 - Allowed to pass both string/reference to aggregating functions - @norberttech
- #1068 - Add new XMLElementEntry - @stloyd
- #1065 - Added cloud storage examples to homepage - @norberttech
- #1059 - allow to reorder entries through DataFrame::select - @norberttech
- #1059 - DataFrame::reorderEntries() with built-in custom ordering strategies - @norberttech
- #1054 - missing tests for parquet rows normalizer - @norberttech
#Changed
- #1117 - Parquet - reading byte arrays now returns strings when option byte string as array is set - @norberttech
- #1110 - Simplify making schema definitions nullable - @norberttech
- #1104 - Remote and Local files extractor are now merged into single FilesExtractor - @norberttech
- #1102 - Replace
uniqidwith guarantee uniqueness - @stloyd - #1087 - Prepare for PHPUnit 11 - @stloyd
- #1081 - String based Scalar functions are now using caster to cast values to string - @norberttech
- #1081 - Moved caster to dataframe configuration - @norberttech
- 747f19 - Simplify README.md - @norberttech
- #1058 - Replaced reflection with bind closure approach to set dataframe pipeline - @norberttech
- #1056 - GroupBy is now allowed only with aggregations - @norberttech
- #1056 - NestedPipeline was renamed to LinkedPipeline - @norberttech
- #1056 - All pipelines are now grouped by LinkedPipeline - @norberttech
- #1055 - NestedLoop join algorithm was replaced with HashJoin algorithm - @norberttech
- #1053 - Update Homebrew TAP formula: flow-php to version: 0.7.4 - @norberttech
#Fixed
- #1119 - RowsMinSort ASC/DESC sorting - @norberttech
- #1119 - RowsMinSort non numeric values sorting - @norberttech
- #1118 - calculating column chunk statistics for empty array values - @norberttech
- #1117 - Parquet flattened for empty nested structures - @norberttech
- #1117 - Parquet RLEHybrid bitWidth calculation - @norberttech
- #1114 - Fixed Flow to Parquet Schema converter not respecting deprecated parquet converted types - @norberttech
- #1112 - Any comparison function will now return false when comparing non null value wth nulls - @norberttech
- #1111 - Fixed merging nullable with non nullable schema definitions - @norberttech
- bad1f4 - failing tests - @norberttech
- 20b8f6 - etl core dependencies - @norberttech
- #1096 - handling negative numbers in parquet binary reader/writer - @norberttech
- #1094 - Recognize INT32 with deprecated ConvertedType as DateTimeImmutable object - @norberttech
- #1086 - Fix deprecated dynamic property usage - @stloyd
- #1091 - Avoid type casting when it's necessary in entry factory - @norberttech
- #1085 - Fix fragile test comparing console output - @stloyd
- #1084 - Fix for extracting XML attribute - @stloyd
- #1081 - Scalar comparison functions are now also detecting types of compared values to prevent comparing not compatible values - @norberttech
- #1079 - Group by will no longer change type of entries used for groupping - @norberttech
- #1072 - definition of list_entry function in dsl - @norberttech
- 6748a6 - CHANGELOG.md - @norberttech
- #1061 - checks on Ramsey UUID concrete class - @jguittard
- #1057 - DataFrame::aggregate returns the same instance of dataframe with updated pipeline - @norberttech
- #1055 - Right Join before duplicating right side rows in each batch from the left side dataset - @norberttech
#Updated
- ba8e35 - dependencies - @norberttech
- 92d9a5 - README.md - @norberttech
- c911e6 - documentations - @norberttech
- 90a2f0 - README.md - @norberttech
- 627883 - installation.md - @norberttech
- fafd11 - installation.md - @norberttech
- 20c8e7 - introduction.md - @norberttech
- e1b237 - introduction.md - @norberttech
- 03dc6d - installation.md - @norberttech
#Removed
- #1117 - BytesToString data converted as it became redundant - @norberttech
- #1104 - Parquet append to existing files - @norberttech
- #1101 - Temporarily drop support for Avro file format - @norberttech
- #1071 - removed empty aws/azure client credentials - @norberttech
- #1068 - Remove XMLNodeEntry - @stloyd
- #1056 - Pipeline::closure - @norberttech
- #1056 - Pipeline::cleanCopy - @norberttech
- #1055 - Join expression comparison types other than equal/identical/any/all - @norberttech
#Deprecated
- #1110 - Schema::nullable() in favor of Schema::makeNullable() - @norberttech
- #1110 - Definition::nullable() in favor of Definition::makeNullable(bool $nullable) - @norberttech
#[0.7.4] - 2024-04-18
#Added
- #1052 - Test that covers writing to a partitioned dataset with overwrite mode - @norberttech
- #1050 - Added support for parquet multifile pagination - @norberttech
- #1039 - join expressions to DSL - @norberttech
- #1038 - How to write a custom data extractor - blog post - @norberttech
- #1037 - Added Base64 serializer - @norberttech
- #1034 - cache batch size configuration - @norberttech
#Changed
- #1049 - Flysystem scan will sort files by file name - @norberttech
- #1037 - Compressing serializer is not longer using base64 inside - @norberttech
- #1034 - Replaced CompressingSerializer with NativeSerizer - @norberttech
- #1032 - Update Homebrew TAP formula: flow-php to version: 0.7.3 - @norberttech
#Fixed
- #1051 - Make sure that filesystem scans are returning files in proper order - @norberttech
- #1046 - Improve performance of merching rows into given batch size - @norberttech
- #1041 - Invalid inputs now throws InvalidArgumentException - @norberttech
- #1041 - Missing file/directory now throws FileNotFoundException - @norberttech
- #1040 - type value validation for nullable types - @norberttech
- #1036 - Improve performance of sorting operation by reducing number of writes to cache - @norberttech
#Removed
- #1033 - Removed null type - @norberttech
#[0.7.3] - 2024-03-30
#Added
- #1027 - Added Schema::match() with strict/evolving matchers - @norberttech
- #1026 - Added phpunit.xml to .gitignore - @norberttech
#Changed
- #1025 - updated dependencies - @norberttech
- #1024 - Update Homebrew TAP formula: flow-php to version: 0.7.2 - @norberttech
#Fixed
- #1031 - casting DateTime objects into datetime/date - @norberttech
- #1030 - Improved displaying floats as strings - @norberttech
- 963d32 - edge case where evolving schema is brings new definition but its missing some old ones (#1028) - @norberttech
- #1025 - writing nullable parquet values that are marked in the schema as optional - @norberttech
#[0.7.2] - 2024-03-27
#Added
- #1021 - output on landing page examples - @norberttech
- #1021 - writing to output.txt directly from examples - @norberttech
#Changed
- #1016 - Update Homebrew TAP formula: flow-php to version: 0.7.1 - @norberttech
#Fixed
- #1023 - merging schemas with different entries - @norberttech
- #1021 - when writing directly to file stream, loader is not closing stream after each chunk of rows - @norberttech
#[0.7.1] - 2024-03-18
#Changed
- #1015 - Updated dependencies - @norberttech
- #1010 - Update Homebrew TAP formula: flow-php to version: 0.7.0 - @norberttech
#[0.7.0] - 2024-03-11
#Added
- #1008 - group imports - @norberttech
- #1008 - make phpunit assertions static/self - @norberttech
- #1002 - changelog page to landing - @norberttech
- #996 - Schema::keep() - keep selected schema entries - @norberttech
- #991 - Schema::remove - @norberttech
- #991 - Schema::gracefulRemove - @norberttech
- #991 - Schema::add - @norberttech
- #991 - Schema::replace - @norberttech
- #988 - Respect additional/missing schema fields when creating rows - @norberttech
- #987 - DataFrame::dropPartitions can now additionally drop also partition columns - @norberttech
#Changed
- #1008 - disabled native functions invocation that was messing with namespaced functions - @norberttech
- #1006 - Update dependencies - @norberttech
- #998 - group by uuid/datetime objects without casting them to scalar first - @norberttech
- #993 - Writing to partitioned datasets is no longer creating random file names, even append will create new files with suffixed name of the original file - @norberttech
- #991 - Schema became mutable object [BC Break] - @norberttech
- 239226 - Stop triggering workflows when only changelog was updated - @norberttech
- 3fc5e7 - README - memory consumption description improvements - @norberttech
- #985 - Update Homebrew TAP formula: flow-php to version: 0.6.1 - @norberttech
#Fixed
- #1005 - Change the way of how dictionary page header is detected while reading column chunks - @norberttech
- #994 - build workflows - @norberttech
- #993 - updating file by ETL through overwrite save mode - @norberttech
- #993 - FilesystemStreams test suite - @norberttech
- #993 - even when writing to a partitioned dataset, flow will respect original filename given as destination path - @norberttech
- #989 - Fixed writing parquet to remote locations - @norberttech
#Updated
- 000d90 - test-website.yml - @norberttech
#Removed
- #994 - deprecated classes/methods - @norberttech
- #993 - DataFrame::threadSafe / DataFrame::appendSafe - @norberttech
#Deprecated
- #991 - Schema::without - @norberttech
#[0.6.1] - 2024-02-12
#Fixed
- 8da770 - release workflow - @norberttech
#[0.6.0] - 2024-02-12
#Added
- #982 - Added partitioning examples - @norberttech
- #979 - Added open graph related tags to a landing page - @owsiakl
- #977 - Added homepage SEO copy - @norberttech
- #975 - Converting parquet to flow schema - @norberttech
- #974 - Support Doctrine DBAL 4 - @stloyd
- #971 - Added key features to the landing page - @owsiakl
- #971 - Improved initial load of the landing page - @owsiakl
- #970 - Added possibility to copy code from landing page examples - @owsiakl
- #968 - Added more examples - @norberttech
- #967 - Added HTML meta description tag to each landing page - @owsiakl
- #966 - schema inferring example - @norberttech
- #965 - Added HTMX for smoother examples reloading - @norberttech
- #964 - Added google analytics tag - @norberttech
- #963 - PHP Humanizer to humanize topics/example names - @norberttech
- 33df4d - CNAME to website - @norberttech
- #962 - Setup CI/CD for website - @norberttech
- #960 - Separate routes for topics and examples to a landing page - @owsiakl
- #959 - Using Flow cache when reading contributors and fallback to GitHub only when cache expires or does not exists - @norberttech
- #957 - Row::hash and Rows::hash - @norberttech
- #956 - Added popover polyfill for a landing page - @owsiakl
- #954 - Added symfony stimulus to a landing page - @owsiakl
- #954 - Added controller for syntax hightlighting to a landing page - @owsiakl
- #951 - Add shortcut for building static content for landing page - @stloyd
- #946 - Addeding contributors section in a landing page - @owsiakl
- #945 - Adding html for a landing page - @owsiakl
- #941 - Added missing offset option to from_parquet dsl function - @norberttech
- #940 - Added offset option to parquet extractor - @norberttech
- #939 - Parquet documentation - @norberttech
- #938 - Parquet Pagination - @norberttech
- #937 - BranchingLoader - @norberttech
- #936 - DataFrame::run method can now return execution report with Schema and Statistics - @norberttech
- #935 - Schema::normalize() : array - @norberttech
- #935 - Schema::fromArray(array $data) : self - @norberttech
- #928 - Caster mechanism that works on top of Flow\PHP\Type - @norberttech
- #928 - AutoCaster that works on top of Caster - @norberttech
- #928 - print_schema function - @norberttech
- #928 - print_rows function - @norberttech
- #928 - possibility to pass predefined schema to CSVExtractor - @norberttech
- #928 - possibility to pass predefined schema to JsonExtractor - @norberttech
- #927 - Schema Definition::type() : Type - @norberttech
- #927 - Type::merge() : Type - @norberttech
- #926 - Uuid Logical Type - @norberttech
- #926 - DateTime Logical Type - @norberttech
- #926 - Json Logical Type - @norberttech
- #926 - XML Logical Type - @norberttech
- #926 - XML Node Logical Type - @norberttech
- #925 - DataFrame::schema method to just read schema from dataset - @norberttech
- #923 - DataFrame::autoCast() - @norberttech
- #922 - DataFrame::dropPartitions() transformation - @norberttech
- #918 - CSV options detection - @norberttech
- #910 - add csv adapter unit test for fixture not yet in use - @rzarno
- #905 - Base symfony skeleton for a landing page - @owsiakl
- #901 - partition_by example - @norberttech
- #898 - extra validation for column in parquet rows - @norberttech
- #893 - list select function - @norberttech
- #890 - Structure Select function - @norberttech
- #889 - between scalar function - @norberttech
- #887 - After partitionBy only write or fetch actions are available - @norberttech
- #887 - Moved all scalar functions to ScalarFunctionChain abstract factory implemented by all scalar functions - @norberttech
- #883 - RemoteFileListExtractor - @norberttech
- #882 - FileListExtractor - @norberttech
- #880 - Added possibility to convert rows into array without keys - @norberttech
- #880 - Monorepo test command - @norberttech
- #877 - Displaying partitions under data when using to_output or DataFrame::display - @norberttech
- #877 - dsl functions for save modes - @norberttech
- #877 - DataFrame::saveMode as an aliast for DataFrame::mode - @norberttech
- #873 - exclude DSL methods/functions through attributes - @norberttech
- #871 - DataFrame::fromJson() - @norberttech
- #871 - support for running dataframes from json through flow CLI - @norberttech
- #869 - RDSL library - @norberttech
#Changed
- #978 - Moved main text & install instruction to center on mobile landing page - @owsiakl
- #978 - Decresed mobile margin in key features in a landing page - @owsiakl
- #976 - Extracted static analyze to standalone workflow in order to run it always for website/code changes - @norberttech
- #976 - Moved website google analytics id to GH Actions variables - @norberttech
- #972 - Changed landing page mobile view to save some horizontal space - @owsiakl
- #972 - Changed to a faster font loading in a landing page - @owsiakl
- #960 - Moved
src/web/landingdirectory one lever higher - toweb/landing- @owsiakl - #959 - Extracted fetching contributors logic to standalone service - @norberttech
- #955 - Cleanup examples and prepare them to be used on landing page - @norberttech
- #952 - Hide data in
ArrayMemoryby default - @stloyd - #950 - Fetch latest contributors using FlowPHP itself - @stloyd
- #948 - Updated dependencies - @norberttech
- #938 - Tuned default parquet options - @norberttech
- #927 - reduced size of csv files to speedup tests - @norberttech
- #923 - Extracted isJson,isXML,isUuif from NativeEntryFactory to StringTypeChecker - @norberttech
- #919 - optimized Path::partitions method by using mnemonic - @norberttech
- #919 - updated dependencies - @norberttech
- #907 - Make sure that entries are "stringable" - @stloyd
- #901 - Return types of functions in DSL - @norberttech
- #899 - Reverted removed copmressing serializer - @norberttech
- #895 - Simplified partitioning datasets by DateTimeEntry - @norberttech
- #888 - Updated dependencies - @norberttech
- #880 - Updated dependencies - @norberttech
- #877 - Rows::merge accepts only one instance of Rows instead of many - @norberttech
- #872 - Exclude certain methods from being executed through rdsl access control configuration - @norberttech
- #868 - Adjust Homebrew commit message to match Flow CS - @stloyd
- #867 - Update Homebrew TAP formula: flow-php to version: 0.5.2 - @norberttech
#Fixed
- #983 - Added missing rdsl dependency - @norberttech
- #981 - Fixed generating urls in landing page - @norberttech
- #981 - dependabot landing page composer.json path - @norberttech
- #980 - Added base asset url to a landing page - @owsiakl
- #975 - Parquet JSON is now stored as BYTE_ARRAY with logical type JSON instead of STRING - @norberttech
- #975 - Parquet UUID is now stored as BYTE_ARRAY with logical type JSON instead of STRING - @norberttech
- #973 - Fixed static analysis in web landing page - @owsiakl
- #969 - Added trailing slash to landing urls to avoid github pages redirections - @norberttech
- ebd1fc - failing examples - @norberttech
- #967 - Fixed landing page mobile view - @owsiakl
- #967 - Limited landing page gh profiles avatars size to 128px - @owsiakl
- #967 - Fixed minifying tailwind css app file - @owsiakl
- #963 - Fixed links in website - @norberttech
- #961 - Separated main repo composer file from web - @owsiakl
- #958 - building phar - @norberttech
- #958 - CachingPipeline - by not clearing cache when it already has items - @norberttech
- #942 - handling empty headers in CSV files - @norberttech
- #931 - Make parquet rows normalizer to respect given schema - @norberttech
- #929 - Automatically cast datetime bulk entries into DateTime objects - @norberttech
- #928 - NativeEntryFactory fully respecting schema definitions - @norberttech
- #926 - Missing nullable property in Map/Struct/List logical types - @norberttech
- #909 - fixed unit testing csv load overwrite mode - @rzarno
- #902 - changing partitions order during partitioning - @norberttech
- #901 - writing uuid entries to parquet files - @norberttech
- #900 - converting list of structures to parquet schema - @norberttech
- #898 - parquet bug when writing/reading nullable list of structs - @norberttech
- #896 - Serialization of XMLElement and XMLNodeElement - @norberttech
- #896 - Serialization of multiline strings with special characters - @norberttech
- #892 - 2 small typos - @xaviermarchegay
- #887 - Double partitioning - @norberttech
- #884 - printing null type entries in schema formatted - @norberttech
- #877 - Inconsistent behavior of DataFrame::fetch for partitioned rows - @norberttech
- #877 - Merging rows from the same partition makes new rows keep that partition - @norberttech
- #871 - phar file - @norberttech
- #870 - Reduced number of files in phar - @norberttech
#Updated
- 9f8f8f - interdependencies before 0.6.0 release - @norberttech
- 83d81d - publish-website.yml - @norberttech
#Removed
- #935 - Schema Definition Constraints - @norberttech
- #935 - Schema Definition Metadata is no longer accepting objects - @norberttech
- #927 - Schema definition union type - @norberttech
- #927 - Schema narrowing that was replaced by Type::merge - @norberttech
- #897 - Serializable interface - @norberttech
- #897 - laravel/serializable-closure dependency - @norberttech
- #891 - Remove compression serializer - @stloyd
- #887 - Partitioning related configuration from Flow Execution Context - @norberttech
- b9a1fb - test DSL from composer.json in order to fix phar build - @norberttech
#[0.5.2] - 2023-12-05
#Added
- #861 - Add documentation about installation using Homebrew - @stloyd
- #861 - Add Homebrew formula into monorepo - @stloyd
#Removed
#[0.5.1] - 2023-12-03
#Added
- #860 - Added ArrayExtractor - @norberttech
- #859 - Add documentation about installation using PHIVE - @stloyd
#Fixed
- #862 - Dremel & Parquet performance improvements - @norberttech
- #858 - Spelling mistake in documentation - @xaviermarchegay
- #855 - Fix typo in Snappy polyfill filename - @stloyd
- #856 - Fix wrong namespace of
HashIdFactoryTesttest - @stloyd
#[0.5.0] - 2023-11-30
#Added
- #852 - Possibility to filter partitions using scalar functions - @norberttech
- #852 - DSL functions for maps/structs/list/types - @norberttech
- #847 - capitalize scalar function - @norberttech
- #844 - ref()->isTrue() - @norberttech
- #844 - ref()->isFalse() - @norberttech
- #832 - Allow to change hash algorithm in
HashIdFactory- @stloyd - #836 - Writing chartjs output to variable - @norberttech
- #830 - DataFrame::collectRefs() - @norberttech
- #825 - pivoting datasets - @norberttech
- #820 - Add testing of PHP 8.3 into the pipeline - @stloyd
- #808 - Added DataFrame::until - @norberttech
- #807 - validator to Parquet Writer - @norberttech
- #805 - Add
TypeDetectorBench- @stloyd - #801 - Add top-level options support for ChartJS - @stloyd
- #780 - Add
MapEntry- @stloyd - #780 - Add
EnumType- @stloyd - #795 - Window function count - @norberttech
- #795 - Window function dens rank - @norberttech
- #791 - Extracted Flysystem dependency to standalone adapter - @norberttech
- #788 - BatchSizeOptimization - @norberttech
- #788 - httpClient option to Meilisearch loader configuration - @norberttech
- d92b51 - Docker installation manual - @norberttech
- #571 - Dockerfile - @norberttech
- #778 - Dremel to properly shred/assemble nested structures with nullable elements - @norberttech
- #772 - Add
TypeFactory,ArrayType&NullType,ResourceType,CallableType- @stloyd - #773 - Added parquet commands to flow.phar - @norberttech
- #765 - Add new logical
StructureType- @stloyd - #763 - Implement recursive type allowance in
MapType&ListType- @stloyd - #764 - Added Flow style guide - @norberttech
- #762 - Implement new
MapTypelogical type - @stloyd - #759 - CLI App - Parquet viewer - @norberttech
- #749 - Implement new
ListTypelogical type - @stloyd - #755 - Parquet - DataPageV2 statistics - @norberttech
- #754 - write column chunk statistics - @norberttech
- #744 - Parquet statistics reader - @norberttech
- #736 - Parquet - DataPageV2 support - @norberttech
- #730 - Pipeline Optimizer - @norberttech
- #730 - LimitOptimization - @norberttech
- #729 - LimitTransformer - @norberttech
- #729 - Limit directly to Extractors - @norberttech
- #720 - DataFrame::batchSize(int $size) method - @norberttech
- #716 - batchSize argument to DataFrame::collect method - @norberttech
- #714 - Missing tests for FilesystemProcessor - @norberttech
- #712 - Added support for partitioning in parquet loader - @norberttech
- #711 - Allow to append into parquet files - @norberttech
- #704 - ConvertedType to column definitions in parquet for compatibility with other readers - @norberttech
- #704 - Repetitions/Definitions levels encodings in DataPage - @norberttech
- #701 - count() method to dataframe - @norberttech
- #702 - number_format expression - @norberttech
- #700 - StandWithUkrain, StandWithUs - @norberttech
- #693 - Added library version to parquet created_by metadata - @norberttech
- #692 - Allow to write rows in batches into file and streams - @norberttech
- 3bbd6f - signed phar to gitignore - @norberttech
- #680 - Add GPG Signature to "flow-php.phar" artifact - @flavioheleno
- #678 - Parquet - added support for GZIP and SNAPPY compressions - @norberttech
- #677 - Parquet - writing & reading nullable structures with nullable fields - @norberttech
- #668 - Added support for writing simple types nullable columns into parquet - @norberttech
- #661 - Loaders benchmarks - @norberttech
- #660 - Create a comment on each PR with phpbench results - @norberttech
- #654 - Parquet - implement logic deciding when to apply dictionary encoding - @norberttech
- #653 - Blackfire PHP SDK to tools - @norberttech
- #652 - Parquet - Calculate row group/page size on the fly in order to decide when to flush data to disk - @norberttech
- #648 - JSON/UUID/ENUM - to dictionary encoding - Parquet - @norberttech
- #646 - Parquet - dictionary encoded pages - @norberttech
- #644 - Possibility to iterate through all parquet file column chunk page headers - @norberttech
- #642 - Extracted data conversion between parquet/php types to a standalone class - @norberttech
- #638 - date and datetime support for parquet writter - @norberttech
- #637 - first draft of parquet writer - @norberttech
- #632 - Add missing tools to the dependabot config - @stloyd
- #627 - Added possibility to easily identify schema root in Parquet Schema - @norberttech
- #622 - Possibility to build schema through static factories at Scheam,FlatColumn,NestedColumn - @norberttech
- #621 - static factories to Flat and Nested columns in parquet schema - @norberttech
- #621 - Decimal column support to parquet - @norberttech
- #611 - RLEBigPackingHybrid encode function - @norberttech
- #613 - Pure PHP implementation of Google Snappy library - @norberttech
- #601 - output of benchmark tests into github step summary - @norberttech
- #601 - Benchamrks for NativeEntryFactory - @norberttech
- #601 - Benchamrk groups - @norberttech
- #602 - allow to manually trigger benchmark tag workflow - @norberttech
- #581 - Add PHPBench tool and first benchmark example - @stloyd
- #587 - NativeEntryFactory structures detection - @norberttech
- #587 - Metadata to StructureEntry Definition - @norberttech
#Changed
- #854 - All documentation pages are now moved to monorepo - @norberttech
- #853 - Updated dependencies - @norberttech
- #852 - Deprecated all DSL static classes in favor of functions - @norberttech
- #852 - Moved whole DSL to ETL functions.php - @norberttech
- #851 - Allow usage of Symfony 7 - @stloyd
- #849 - Rework Doctrine Bulk tests to not use deprecated code - @stloyd
- #842 - Default cache path - @norberttech
- #840 - reorganized data frame tests - @norberttech
- #824 - Improve performance of
ArrayContentDetector- @stloyd - #835 - Simplified how charts are handling references - @norberttech
- #834 - Added php ~8.3 constraint to composer.json files - @norberttech
- #833 - Use references instead of array of strings in Charts - @norberttech
- #822 - Rework Psalm configuration & adjust codebase - @stloyd
- #831 - Updated dependencies - @norberttech
- #823 - Improve Dbal Bulk coverage - @stloyd
- #821 - Simplify PHPUnit configuration - @stloyd
- #819 - Simplify
ScalarType::isValid()method - @stloyd - #813 - Improve performance of
ArrayContentDetector- @stloyd - #810 - Moved handling SaveMode to FilesystemStreams - @norberttech
- #812 - Improve performance of
Types- @stloyd - #811 - Improve performance of
TypeDetector- @stloyd - #809 - Changed default value for format in toDate scalar function - @norberttech
- #799 - Expanded Parquet schema converter in order to support deeply nested data types - @norberttech
- 700dc7 - Docs fixes - @norberttech
- #797 - Expression is now ScalarFunction - @norberttech
- #797 - Aggregator is now AggregationFunction - @norberttech
- #780 - Rework
StructureEntryto use types - @stloyd - #780 - Rework
NativeEntryFactoryto use types - @stloyd - #788 - Optimizer can be now configured through ConfigBuilder - @norberttech
- #788 - Execution Plan Processors can be now configured through ConfigBuilder - @norberttech
- #786 - Reduce docker image size - @norberttech
- #778 - Dremel algorithms are no longer working as Generators - @norberttech
- #777 - Make types implementation serializable, mark native types as nullable - @stloyd
- #773 - renamed phar file to flow.phar - @norberttech
- #770 - Rework
ScalarTypeto hold optional value - @stloyd - #761 - Move PHAR runtime into
bin- @stloyd - #728 - Extract entry types into new namespace for further re-usage - @stloyd
- #732 - Renamed threadSafe into appendSafe - @norberttech
- #730 - Renamed LogicalPlan into ExecutionPlan - @norberttech
- #726 - GoogleSheet rows_in_batch was renamed into rows_per_page - @norberttech
- #716 - Closure was moved to Loader namespace as it applies to Loaders, not Pipelines - @norberttech
- #708 - Rename
docker-compose.ymltocompose.ymlto match specification - @stloyd - #710 - Improved parquet writer performance - @norberttech
- #706 - Adjusted time related columns to be compatibile with other parquet libraries - @norberttech
- #705 - Add missing flag for GPG 2.2+ - @stloyd
- #704 - Boolean columns can't be anymore dictionary packed for compatibility with spark - @norberttech
- 1e756d - CS Fixes - @norberttech
- #698 - Updated readme - @norberttech
- #694 - Replaced codename parquet with flow parquet library in parquet adapter - @norberttech
- #690 - Reduce a bit randomness in
NativeEntryFactoryBench- @stloyd - #683 - Improve adapters benchmark stability - @stloyd
- #676 - Improve performance for
Rows:dropRight,partitionBy&sortBy- @stloyd - #675 - Reduce amount of runs for benchmark testing - @stloyd
- #674 - Reduce amount of runs for infection testing - @stloyd
- #671 - Improve performance for a few
Rowsmethods - @stloyd - #671 - Rework benchmark GH action to use artifact for baseline - @stloyd
- #673 - Generate baseline benchmark in one run not per group - @stloyd
- #670 - Cover most methods of
Rowsclass by benchmark - @stloyd - #666 - Simplify
Rows::drop()method - @stloyd - #666 - Rework benchmark scripts in composer.json - @stloyd
- 91d6e8 - key and restore-keys for benchmark cache - @norberttech
- #662 - Rework benchmarks to set up test data in constructors - @stloyd
- #656 - Adjust Rows::chunk() to work on generators instead of arrays - @stloyd
- f17d62 - Save Benchmark baseline in cache - @norberttech
- 05d251 - Unified steps in pr-comment workflow - @norberttech
- 524fce - Use different action to download artifacts based on workflow_id - @norberttech
- #664 - Reverted pull-requests to issues write permissions - @norberttech
- #663 - benchmark workflow trigger and permissions - @norberttech
- #661 - Github benchmark comment template - @norberttech
- #655 - Rework
GroupBy::result()method to not recreate entries & rows in loop - @stloyd - #655 - Use
FlowContextinGroupBy- @stloyd - #651 - Update
.php-cs-fixer.phpin matter to use predefined rule-sets - @stloyd - #651 - Run new cs-fixer configuration against codebase - @stloyd
- #650 - Run cs-fixer against codebase - @stloyd
- #649 - Cleanup of parquet PageBuilders - @norberttech
- #645 - Rework
SnappyCompressor::compressFragment()method - @stloyd - #645 - Add code of Snappy to static analysis - @stloyd
- #644 - PHPUnit code coverage thresholds - @norberttech
- #642 - Parquet flat path is now cached inside of the column to reduce number of iterations through schema - @norberttech
- #643 - Infection will no longer format output for GitHub - @norberttech
- #643 - PHPStan and Psalm will now report in GitHub format - @norberttech
- #636 - Reduced analyse strictness - @norberttech
- #635 - Rework
NativeEntryFactoryto be stateless - @stloyd - #630 - Unify
LICENSEfiles - @stloyd - #629 - Adjust
SheetRange&GoogleSheetExtractorwith to low values - @stloyd - #624 - Remove
array_merge()when adding input into rows - @stloyd - #627 - Simplified Schema cache - @norberttech
- #626 - Columns in GoggleSheet Adapter cannot contain unicode characters - @stloyd
- #623 - Adjust CI setup to ignore changes in a changelog file - @stloyd
- #621 - Calculation of max definitions/repetitions level to column - @norberttech
- #621 - Python parquet file generators compression from gzip to snappy - @norberttech
- #619 - Move implementation of entry structure creation into the
NativeEntryFactory- @stloyd - #620 - Reduce CI load by cancelling previous runs with every new commit in PR - @stloyd
- #617 - Invalid schema has no fallback in
NativeEntryFactory- @stloyd - #616 - Entry factory moved from extractors to
FlowContext- @stloyd - #615 - Improve quality of snappy implementation - @stloyd
- #612 - Improve performance of array comparison & sorting - @stloyd
- #608 - Rework
FlysystemFS::scan()to improve performance - @stloyd - #609 - Move
Context::shouldPutInputIntoRows()out of loop - @stloyd - #605 - Improve performance of Path class - @stloyd
- #607 - Rework
Entries::toArray()to improve performance - @stloyd - #604 - Adjust benchmark report to be more useful - @stloyd
- #600 - Unify adapter benchmark datasets - @stloyd
- #598 - Rework GH testing actions to run only after code changes - @stloyd
- #597 - Reduce the amount of test data in ElasticSearch tests - @stloyd
- #596 - Simplify
CacheSpytest double class - @stloyd - #595 - Cleanup tests before starting tests - @norberttech
- #594 - Replace hashing algorithm from
sha256toxxh128- @stloyd - #591 - Skip JSON & XML checks for a string that doesn't look like this type of data - @stloyd
- #588 - Update minimum required version of Flow in all packages - @stloyd
- #586 - Rework adapter tests namespaces to be consistent - @stloyd
- #587 - Schema Formatter - support for structures - @norberttech
- #587 - Parquet Loader - simplified with support for Structure Entry - @norberttech
- #587 - Avro Loader - simplified with support for Structure Entry - @norberttech
- #587 - Parquet Extractor - default options - @norberttech
- #585 - Rework text adapter test fixtures to reduce memory load - @stloyd
- #584 - Adjust
phpunit.xmlto be more efficient - @stloyd
#Fixed
- #848 - Use platform for column escaping in bulk insert - @stloyd
- #840 - multiple group by execution in single pipeline - @norberttech
- #840 - moved elasticsearch HTTP Spy test double under Test namespace - @norberttech
- #838 - Fix
Definition::isEqual()with random class order - @stloyd - #826 - overwriting pivot columns - @norberttech
- #817 - Fixed some warnings in parquet library - @norberttech
- #816 - Prevent reading multiple times from the same partitioning cache - @norberttech
- #815 - Add missing
EnumTypedetection inNativeEntryFactory- @stloyd - #814 - Fix wrong return type on entry reference DSL functions - @stloyd
- #798 - Deprecated notice for using Connection::getSchemaManager() - @tomaszhanc
- #795 - Window function rank - @norberttech
- #789 - Fix hardcoded entry name for enum entry with schema - @stloyd
- cc4bd8 - incorrect tags in docker building workflows - @norberttech
- #779 - Covered additional parquet edge cases - @norberttech
- 523741 - broken phar builds - @norberttech
- #766 - Fix wrong namespace in PHAR runtime file - @stloyd
- eb7cc8 - Reverted snappy compressor if statements order - @norberttech
- #759 - missing dependencies in parquet lib - @norberttech
- #760 - Fixed snappy warnings - @norberttech
- #751 - Fixed reading varInt - @norberttech
- #750 - CSV loader working on remote streams - @norberttech
- #743 - Prevent uninitialized string check in
NativeEntryFactory- @stloyd - #731 - bitpacking zero values - @norberttech
- #726 - JsonLoader when writing empty Rows - @norberttech
- #714 - Added missing FileExtractor interface to all file based extractors - @norberttech
- #707 - Small typo in build workflow - @norberttech
- #704 - Bug in RLEBitPackHybrid algorithm that was always bitpacking values - @norberttech
- #703 - Fix for signing PHAR in CI - @stloyd
- #672 - Fix for wrong cache data & key in benchmark baseline action - @stloyd
- #667 - Cleanup old summaries before creating new artifacts - @norberttech
- 35a55d - baseline cache restoring - @norberttech
- fdcaa3 - cmposer cache in benchmark baseline workflow - @norberttech
- 1f172c - pr-comment workflow job name - @norberttech
- a3df35 - restoring cache during test-benchmark workflow - @norberttech
- bfec21 - paths to downloaded artifacts in pr comment workflo - @norberttech
- #661 - NativeEntryFactoryBench - @norberttech
- #658 - Prevent fatal error when no values are set in
ColumnChunkStatistics- @stloyd - #657 - parquet writer performance degradation - @norberttech
- #653 - Optimized BinaryBufferWriter - @norberttech
- #647 - bug in calculating number of values when pages are encoded with dictionary - @norberttech
- #641 - Fix extracting data from empty Google Sheet. - @scyzoryck
- #640 - bug in RLE/bitpacking hybrid algorithm - @norberttech
- #606 - Fix wrong truncate in
ASCIIValueclass - @stloyd - #601 - benchmarks not executing extractors - @norberttech
- 61e035 - github markdown syntax in benchmark tag workflow - @norberttech
- 4f820f - default PHPBENCH_TAG value for push events - @norberttech
- 14c092 - benchmark-tag workflow - @norberttech
- #603 - Fix Avro adapter handling nullable values - @stloyd
- f512e1 - benchmark-tag - @norberttech
- #599 - Reduced total available memory to make sure that MemorySort is doing a fallback to cache - @norberttech
- #593 - Change behavior of xml adapter when xml->deep > 1 and previousDeep > xml->deep - @norberttech
- #587 - JsonLoader closing not only json streams - @norberttech
- #583 - Fix warning when bytes are missing in Parquet
BinaryBufferReader- @stloyd
#Updated
- 8216ed - minimum required version of flow components - @norberttech
- a1db35 - README.md - @norberttech
- 6e0dd4 - README.md - @norberttech
- db45c3 - list of adapter - @norberttech
- a32cc4 - pr-check.yml - @norberttech
- 02e1c4 - style_guide.md - @norberttech
- e641e7 - README.md - @norberttech
- c9fb26 - test-benchmark.yml - @norberttech
#Removed
- 749bb1 - specific version from composer require instructions - @norberttech
- #841 - removed class reference not available in the scope from README example in CSV adapter - @rzarno
- #832 - Remove
Sha1IdFactory- @stloyd - #810 - Execution Plan and Processors - @norberttech
- #804 - Remove
from*methods from scalar entry classes - @stloyd - #797 - struct reference - @norberttech
- #796 - Remove Faker library from benchmark - @stloyd
- #776 - Remove
CollectionEntry- @stloyd - #794 - Removed async processing - @norberttech
- #794 - DataFrame::pipeline method - @norberttech
- #787 - Removed DSL functions:
datetime_string(),json_string()- @stloyd - #750 - BufferExtractor - @norberttech
- #750 - Batch Size parameter from MemoryExtractor - @norberttech
- #733 - Loaders are no longer allowing for setting chunk size - @norberttech
- #729 - LimitPipeline - @norberttech
- #726 - batching logic from extractors - @norberttech
- #716 - Rows from Closure::closure method - @norberttech
- #716 - BufferLoader - @norberttech
- #709 - Removed logger from parquet - @norberttech
- #694 - Codename Parquet library dependency - @norberttech
- 8d4882 - additional char in cache restore-keys paremeters for phpbench - @norberttech
- #661 - EntryExpressionEvalTransformerBench - @norberttech
- #634 - Remove Rector tool - @stloyd
- #618 - Remove dead
ArrayRowsFactoryclass - @stloyd
#Deprecated
- #732 - DataFrame::threadSafe() - @norberttech
- #720 - DataFrame::parallelize() - @norberttech
#[0.4.0] - 2023-10-13
#Added
- #579 - Add note about rework of transformers into
UPGRADE.mdfile - @stloyd - #576 - Parquet library - reading only for now - @norberttech
- #576 - Implementation of algorithms from Google Dremel paper - @norberttech
- #568 - Add way to run all examples - @stloyd
- #569 - Add binary comparisons integration test - @stloyd
- #566 - array_to_map() DSL function - @norberttech
- #566 - optional expression to work with optional entries - @norberttech
- #566 - UPGRADE.md to help with migrations between flow versions - @norberttech
- #557 - Add integration tests for
combine& missing unit test for math expressions - @stloyd - #553 - Add integration tests for
count,hash¬expressions - @stloyd - #552 - Add integration tests for string related expressions - part 2 - @stloyd
- #551 - Add integration tests for string related expressions - part 1 - @stloyd
- #550 - Add integration tests for
jsonDecode&jsonEncodeexpressions - @stloyd - #546 - Add integration tests for array related expression - @stloyd
- #547 - Add integration tests for
when,any&allexpressions - @stloyd - #543 - Add options to
array_expandexpression - @stloyd - #541 - Add
ArrayKeysStyleConvertexpression - @stloyd - #527 - Add new
ref()->arrayReverse()entry expression - @stloyd - #521 - Add new
Any&Allexpressions - @stloyd - #516 - Add new IsNumeric & IsNotNumeric expressions - @stloyd
- #514 - Add new StrPad expression - @stloyd
#Changed
- #582 - Simplified casting entries to strings - @norberttech
- #580 - Polish content of README.md file - @stloyd
- #576 - Simplified composer.json files across all sub repositories - @norberttech
- #574 - Update Box package to the latest - @stloyd
- #566 - ref is no longer null safe - @norberttech
- #566 - Extractors are no longer returning rows under "row" ArrayEntry, instead all values are unpacked to dedicated rows - @norberttech
- #565 - Change detection of PHAR in examples - @stloyd
- #564 - Block running incompatible examples via PHAR - @stloyd
- #561 - Rework string checks to skip json, xml or uuid as much as possible - @stloyd
- #562 - Rework examples to allow running them outside the phar - @stloyd
- #558 - Optimized NativeEntryFactory - @norberttech
- #556 - Rework expressions to return
nullinstead of throwing exception on failure - @stloyd - #554 - Adjust the
sizeexpression to behave similarly to thecountone - @stloyd - #545 - Prevent using
strlen&counton empty input - @stloyd - #544 - Optimize
DropDuplicatesTransformerhashing - @stloyd - #542 - Allow enum as style param in
ArrayKeysStyleConvertexpression - @stloyd - #535 - README files structure of all repositories - @norberttech
- #530 - Rework
Trimexpression to use enum instead of constants - @stloyd - #529 - Rework
ArraySortexpression to work predefined sort methods - @stloyd - #529 - Add
recursive&flagsoptions to theArraySortexpression - @stloyd - #528 - Use default value for
json_decode()inNativeEntryFactory- @stloyd - #526 - Simplify
RenameEntriesTransformerto work only on one entry - @stloyd
#Fixed
- #578 - added missing dremel dependency to parquet library - @norberttech
- #572 - php extractor output in examples - @norberttech
- #570 - Prevent fatal error with aggregate avg on empty group - @stloyd
- #569 - Fixed issue in
jsonDecode()entry expression - @stloyd - #564 - Fix broken path to autoloader in async examples - @stloyd
- #539 - Corrected misspellings - @szepeviktor
- #540 - just some typos - @voku
- #532 - Prevent double run of main integration tests - @stloyd
- #515 - Fixed
Castexpression to handlenullas first - @stloyd
#Updated
- 5042fe - README.md - @norberttech
#Removed
- #577 - Remove "scripts" from
composer.jsonin subpackages - @stloyd - #563 - Remove "issue" examples as outdated & covered by tests - @stloyd
- #541 - Remove
ArrayKeysStyleConverterTransformer- @stloyd - #537 - Remove
ChainTransformer- @stloyd - #536 - Remove
DynamicEntryTransformer- @stloyd - #533 - Remove
StaticEntryTransformer- @stloyd - #531 - Remove
ArraySortTransformer- @stloyd - #525 - Remove
ArrayPushTransformer&CallbackEntryTransformer- @stloyd - #527 - Remove
ArrayReverseTransformer- @stloyd - #524 - Remove
FilterRowsTransformer& related code - @stloyd - #523 - Remove
CallUserFunctionTransformer&CloneEntryTransformer- @stloyd - #522 - Remove
CastTransformer& related code - @stloyd - #520 - Remove
ConditionalTransformer& related code - @stloyd - #519 - Remove
ObjectToArrayTransformer& related code - @stloyd - #518 - Remove
CastTransformer- @stloyd - #518 - Remove
NullStringIntoNullEntryTransformer- @stloyd - #518 - Remove
CastToDateTime- @stloyd - #516 - Remove covered filters from
FilterRowsTransformer- @stloyd - #517 - Remove SF Validator based filters & conditions - @stloyd
- #514 - Remove ObjectMethodTransformer &
StringEntryValueCaseConverterTransformer- @stloyd - #514 - Cleanup
Transformclass from transform methods covered by expressions - @stloyd - #509 - Remove
HashTransformer,StringConcatTransformer&StringFormatTransformer- @stloyd
#Deprecated
- #576 - Codename ParquetExtractor - @norberttech
#[0.3.3] - 2023-10-03
#Changed
#[0.3.2] - 2023-10-03
#Added
#Changed
- #497 - Rework most of the examples to be runnable via PHAR - @stloyd
- #495 - Use git tag for version name in PHAR - @stloyd
- #496 - Allow to run
runtime.phpoutside of phar - @stloyd
#Fixed
- #502 - Add dev files to PHAR to allow usage of adapters - @stloyd
- #499 - Prevent calling runtime outside of CLI - @stloyd
- #500 - Prevent fatal error when passing empty string to
\DOMDocument- @stloyd - #494 - Use more accurate version for PHAR - @stloyd
#[0.3.1] - 2023-10-02
#Added
#[0.3.0] - 2023-10-02
#Added
- #477 - Added new Phar module that generates Flow-PHP phar file - @stloyd
- #488 - Allow to pass options when using
GoogleSheetExtractor- @stloyd - #474 - XMLEntry - @norberttech
- #474 - XMLNodeEntry - @norberttech
- #474 - ref('...')->xpath('...') - for extracting specific nodes from XMLEntry - @norberttech
- #474 - ref('...')->domNodeAttribute('...') - for extracting value of attribute - @norberttech
- #474 - ref('...')->domNodeValue('...') - for extracting value of node - @norberttech
- #450 - Add new
ulid()expression based on Symfony Uid - @stloyd - #445 - Add
fig/log-testpackage for mock logger - @stloyd - #440 - Add MariaDB to supported platforms for Doctrine adapter - @stloyd
- #438 - triggers always execute on clone instead of using original instance - @norberttech
- #434 - Add new adapter for Meilisearch - @stloyd
- #431 - withEntries method to DataFrame API - @norberttech
- #430 - WindowFunctions - Avg, Sum, Rank, RowNumber - @norberttech
- #430 - From::all as a alias for From::chain Extractor - @norberttech
- #428 - Added new expressions to entry expression trait - @owsiakl
- #427 - Add more cache for static analysis on GH actions - @stloyd
- #427 - Add more cache for inflection on GH actions - @stloyd
- #426 - ChartJS Loader - @norberttech
- #426 - Round expression - @norberttech
- #426 - Cast to datetime and date - @norberttech
- #426 - dateFormat to EntryExpression trait - @norberttech
- #426 - dateTimeFormat to EntryExpression trait - @norberttech
- #423 - ArrayMerge expression - @norberttech
- #417 - Add new sanitize expression - @stloyd
- #415 - Added regex_match expression - @norberttech
- #415 - Added regex_match_all expression - @norberttech
- #415 - Added regex_replace expression - @norberttech
- #415 - Added sprintf expression - @norberttech
- #414 - Added CallMethod expression - @ghost
- #412 - Added uuid expression - @ghost
- #411 - Add MoneyPHP expression - @stloyd
- #413 - to_date expression - @norberttech
- #410 - to timezone expression - @norberttech
- #409 - Not expression - @norberttech
- #409 - DataFrame::renameAll - @norberttech
- #409 - DataFrame::renameAllStyle - @norberttech
- #409 - DataFrame::renameAllUpperCase - @norberttech
- #409 - DataFrame::renameAllUpperCaseFirst - @norberttech
- #409 - DataFrame::renameAllUpperCaseWord - @norberttech
- #409 - DataFrame::renameAllLowerCase - @norberttech
- #408 - extra padding to ascii table headers/body - @norberttech
- #407 - more examples - @norberttech
- 686b5e - more tests and changed default sorting algorithm to sort - @norberttech
- #406 - array sort expression - @norberttech
- #403 - fallback extractor to cache extractor - @norberttech
- #403 - TTL parameter to PSRSimpleCache implementation of cache - @norberttech
- #402 - trim expression - @norberttech
- #401 - strReplace expression - @norberttech
- #400 - json endode/decode expressions - @norberttech
- #398 - exists expression - @norberttech
- #397 - DataFram extractor - @norberttech
- #396 - lower/upper expressions - @norberttech
- #395 - size expression - @norberttech
- #394 - array_unpack expression - @norberttech
- #394 - array_expand_expression - @norberttech
- #393 - DataFrame::get() : \Generator - @norberttech
- #393 - DataFrame::getEach() : \Generator - @norberttech
- #393 - DataFrame::getAsArray() : \Generator - @norberttech
- #393 - DataFrame::getEachAsArray() : \Generato - @norberttech
- #388 - Added
HashIdFactoryinto Elastic adapter - @stloyd - #388 - Added
ext-hashPHP extension as required for Flow - @stloyd
#Changed
- #492 - Add Google services cleanup tasks to composer - @stloyd
- #472 - Allow to use Symfony UID for UUID generation - @stloyd
- #482 - Move rector to the tools - @stloyd
- #481 - Update GH actions to the latest - @stloyd
- #478 - Remove unnecessary template overwrite in ChartJS adapter - @stloyd
- #479 - Updated cs-fixer to latest and bump min version - @stloyd
- #479 - Run the latest cs-fixer against codebase - @stloyd
- #474 - XMLReaderExtractor is now returning XMLEntry type instead of casting XML's to array - @norberttech
- #445 - Allow usage of
psr/logv2 & v3` - @stloyd - #438 - Mark methods on DataFrame api as @lazy or @trigger - @norberttech
- #436 - Moved limit functionality into LimitingPipeline - @norberttech
- #430 - Caching mechanism was moved to dedicated CachingPipeline - @norberttech
- #428 - ArrayCollectionGetTransformer into ArrayGetCollection expression - @owsiakl
- #428 - ArrayCollectionMergeTransformer into ArrayMergeCollection expression - @owsiakl
- #428 - ArrayDotRenameTransformer into ArrayKeyRename expression - @owsiakl
- #425 - Simplify setting limit in monitoring configuration - @stloyd
- #420 - Skip phpstan analyse in
Sanitizeextension - @stloyd - #419 - Modify
StrReplaceexpression to work with arrays - @stloyd - #418 - Adjust string value extraction in ASCIIValue to match PHP docs - @stloyd
- 7a676d - default array sort to asort from ksort - @norberttech
- #404 - Simplify cache usage - @norberttech
- #397 - sha256 to xxh128 default hashing algorithm - @norberttech
- #391 - Update PHPUnit to version ^10 - @stloyd
- #391 - Replace deprecated PHPUnit code - @stloyd
- #388 - Replaced usage of
md5()withxxh128hash algorithm - @stloyd - #387 - Reorganized testsuite - @norberttech
#Fixed
- #447 - Fixed wrong namespace in expression unit tests - @stloyd
- #448 - Fix coding standards for PHP-CS-fixer ^3.18 - @stloyd
- #437 - Removed assertion library references from google sheet adapter - @norberttech
- #429 - Add missing adapters into static analyse - @stloyd
- #429 - Fixed static analyse for GoogleSheet adapter - @stloyd
- #429 - Fixed static analyse for ChartJS adapter - @stloyd
- #426 - EntryExpression return types in order to fix IDEs autocompletion - @norberttech
- bd3088 - DataFrame::filter method docblocks - @norberttech
- #407 - isOdd expression - @norberttech
- #407 - isEven expression - @norberttech
- b33143 - parameter types in Dbal DSL - @norberttech
#Updated
- 38ff7a - dependencies - @norberttech
- 939cf0 - dependencies - @norberttech
- 10550b - dependencies - @norberttech
- 5ee4d6 - monorepo-split.yml - @norberttech
- 8eb674 - README.md - @norberttech
#Removed
- #489 - Remove deprecated
Sortclass - @stloyd - #446 - Drop non-stable version of
halaxa/json-machine- @stloyd - #445 - Remove Monolog v2 from allowed dependencies - @stloyd
- #424 - Remove support for not maintained Symfony & Doctrine dependencies - @stloyd
- #424 - Remove BC code from Doctrine adapter - @stloyd
- #423 - deprecated transformers that are replaced by Entry Expressions - @norberttech
- #390 - Remove impure psalm suppress leftovers - @stloyd
#Deprecated
#[0.2.7] - 2023-04-06
#Added
- #386 - count expression - @norberttech
- #385 - DataFrame::dropDuplicates - @norberttech
- #382 - hash function to DSL - @norberttech
- #381 - concat expression - @norberttech
- #380 - hash expression - @norberttech
- #379 - combine expression - @norberttech
- #378 - split expression - @norberttech
- #375 - array_get - expression - @norberttech
- #375 - array_exists - expression - @norberttech
- #375 - now - expression - @norberttech
- #375 - to_date_time - expression - @norberttech
- #375 - date_time_format - expression - @norberttech
- #374 - Allow to change source from which ES extractor is extracting rows - @norberttech
- #371 - allow to pass literal parameter to DbalDataFrameFactory - @norberttech
#Fixed
- #383 - edge case in array_dot_exists - @norberttech
#Updated
- b8b852 - DbalLoader options annotations - @norberttech
- e45157 - flow-php/doctrine-dbal-bulk dependency - @norberttech
- c2386d - internal flow-php dependencies - @norberttech
#Removed
- #381 - ValueExtractor was removed and replaced by Expression::eval - @norberttech
#[0.2.6] - 2023-03-29
#Fixed
- #370 - Memorize entry reference to speedup Rows comparison - @norberttech
#[0.2.5] - 2023-03-29
#Fixed
- #369 - Reduce number of References initializations that affects processing performance - @norberttech
#[0.2.4] - 2023-03-28
#Fixed
- 437b0d - missing files autoload in ETL - @norberttech
- #368 - accessing empty arrays using array_get with nullsafe operator - @norberttech
#[0.2.2] - 2023-03-28
#Updated
- f5136f - inter dependencies - @norberttech
#[0.2.1] - 2023-03-27
#Added
- #364 - When expression - @norberttech
- #363 - Dbal DataFrameFactory - @norberttech
#[0.2.0] - 2023-03-23
#Added
- #362 - Entry Reference Expression - @norberttech
- #362 - DataFrame::withEntry method - @norberttech
- #362 - Basic Expression for filtering and creating entries - @norberttech
#Changed
- #362 - DataFrame::filter can now use entry references - @norberttech
- #359 - Moved sortBy into entry ref - @norberttech
- #358 - Replaced string column names with ref/col/struct functions - @norberttech
#Updated
- 1e72f4 - CHANGELOG.md - @norberttech
- cf0ff4 - README.md - @norberttech
- 7ae116 - README.md - @norberttech
#Removed
#[0.1.1] - 2023-03-13
#Updated
- c2605e - flow dependencies - @norberttech
#[0.1.0] - 2023-03-13
#Added
- #354 - sequence extractor with date period and number sequence generators - @norberttech
- #353 - DataFrame::crossJoin - @norberttech
- #343 - Add support for Sqlite database - @stloyd
- #305 - config option that can be later used by extractor to decide if input options should be added to extracted rows - @norberttech
- #304 - Added Google Sheet ETL adapter - @jwojtyra-aterian
- #292 - PHP 8.2 support - @norberttech
- #292 - execute tests at PHP 8.2 - @norberttech
- c52568 - more verbose error for failing tests - @norberttech
- #259 - array_push transformer - @norberttech
- #243 - array push transformer - @norberttech
- #241 - Reference - representing reference to given entry/entries in DataFrame - @norberttech
- #240 - Aggregation::collect_unique - @norberttech
- #240 - Aggregation::collect - @norberttech
- #234 - Allow to use QueryBuilder while creating DBAL limit offset extractor for more advanced use cases - @norberttech
- #197 - Mysql dialect for bulk update/insert/upsert - @mleczakm
- #225 - Allow to read complex nested jsons from a specific pointer - @norberttech
- #178 - Elasticsearch Exractor - @norberttech
- #178 - Elasticsearch Hits to Rows transformer - @norberttech
- #175 - Dbal DSL - @norberttech
- #175 - DbalLimitOffsetExractor - @norberttech
- #170 - Advanced Join Expression - @norberttech
- #170 - Join usage examples - @norberttech
- #167 - left_anti join - @norberttech
- #165 - Pipeline Execution Plan - @norberttech
- #164 - Allow configuring amount of characters per line in CSV extractor - @stloyd
- #153 - Added assertion preventing from using pattern paths in filesystem based loders - @norberttech
- #149 - support for Elasticsearch 8 client - @norberttech
- #112 - Added PSRSimpleCache implementation of Flow Cache - @norberttech
- #109 - Print Rows/Schema alias to improve DX by not making dev to remember about To:: formatters - @norberttech
- #103 - Added threadSafe flag to FlowContext - @norberttech
- #101 - SaveMode allowing to control how to deal with existing files - @norberttech
- #101 - Filesystem::exists - @norberttech
- #101 - Filesystem::rm - @norberttech
- #101 - few missing unit tests - @norberttech
- #96 - reading partitioned CSV example - @norberttech
- #95 - examples into the main flow repository - @norberttech
- #93 - more PR checks to github actions - @norberttech
- #92 - [Core] Filesystem Streams - @norberttech
- #92 - [Json] Partitioning - @norberttech
- #92 - [Monorepo] Contributing section in README - @norberttech
- 0e0952 - changelog - @norberttech
- 04858c - PGSQL database url to testsuite setup - @norberttech
- 27ee7a - monorepo tools and settings - @norberttech
- 2db069 - partitioning, filesystem, and path manipulation (#278) - @norberttech
- e4021b - installation section to the docs - @norberttech
- ddd414 - binary flag to stream read mode (#250) - @norberttech
- 09c246 - banner - @norberttech
- be87f0 - new aggregations, first and last (#246) - @norberttech
- fb43f0 - support for Flow FileStream - @norberttech
- f5c91f - streams support (#108) - @norberttech
- 942c0d - DSL and support for FileStream (#109) - @norberttech
- f6c718 - missing dependency exception (#245) - @norberttech
- 88ef25 - default metadata to EnumEntry type (#235) - @norberttech
- 864b6e - missing tests - @norberttech
- a3e49e - github actions configuration - @norberttech
- eea2f6 - in memory cache implementation (#223) - @norberttech
- c7ff04 - entry/prefix DSL methods (#222) - @norberttech
- 6a7135 - more php native functions to DSL::Transform (#219) - @norberttech
- c68f5f - math value operation transformer (#218) - @norberttech
- 646205 - EnumEntry (#216) - @norberttech
- ef0797 - first schema constraints (#211) - @norberttech
- 1ed6bc - hash transformer for non cryptographic entry hashing (#204) - @norberttech
- 8c7432 - Rows::join methods (#201) - @norberttech
- 8ae33c - union types to schema (#199) - @norberttech
- 48c266 - possibility to set delimiter, enclouser and escape string in loader/extractor (#95) - @norberttech
- eab9ab - ETL::groupBy and ETL::aggregate to the ETL api (#191) - @norberttech
- 4998a0 - select/drop method to ETL api (#190) - @norberttech
- b3e169 - callback to run method (#172) - @norberttech
- da1f14 - DSL elements (#169) - @norberttech
- 81460b - read/write/filter/map functions to ETL (#165) - @norberttech
- c91473 - json_array doctrine type to bulk data (#88) - @owsiakl
- 682af9 - missing test - @DawidSajdak
- b9332e - missing test - @DawidSajdak
- 7a453a -
updateoperation to thefromConnectionmethod - @DawidSajdak - ef0c8a - entries to serialize/unserialize methods - @DawidSajdak
- 27c502 - CallbackEntryValueTransformer - @DawidSajdak
- 1dc7a9 -
updateoperation. - @DawidSajdak - bae3e8 - partial update to loader (#90) - @norberttech
- a084e7 - limit to ETL API (#157) - @norberttech
- 41393b - StreamLoader (#156) - @norberttech
- e2565e - JsonLoader (#88) - @norberttech
- f311dd - JsonEntry from flow-php/etl-adapter-json - @norberttech
- 85f934 - suggested packages - @norberttech
- ae5579 - more customizable abstraction for BulkInserts (#80) - @norberttech
- 4d9320 - possibility to display selected number of rows (#149) - @norberttech
- 5f9386 - fetch feature to return rows from ETL in other way than through Loader (#147) - @norberttech
- 4a6848 - ETL::collect() / ETL::parallelize(int $chunks) methods to ETL Api (#137) - @norberttech
- 23ec97 - PGSQL env for mutation tests - @tomaszhanc
- ea4ea2 - PGSQL env for mutation tests - @tomaszhanc
- 65117a - ENV for PGSQL - @tomaszhanc
- 02727e - ENV for PGSQL - @tomaszhanc
- cfbcab - workflow for auto-merge dependabot PRs (#44) - @tomaszhanc
- 0dd6ac - workflow for auto-merge dependabot PRs - @tomaszhanc
- 4c27e8 - workflow for auto-merge dependabot PRs - @tomaszhanc
- b1b10e - workflow for auto-merge dependabot PRs - @tomaszhanc
- 9ca0c2 - workflow for auto-merge dependabot PRs - @tomaszhanc
- e13ea8 - workflow for auto-merge dependabot PRs - @tomaszhanc
- 2f77f9 - workflow for auto-merge dependabot PRs - @tomaszhanc
- 881f4f - workflow for auto-merge dependabot PRs - @tomaszhanc
- c3a037 - workflow for auto-merge dependabot PRs - @tomaszhanc
- 43805f - workflow for auto-merge dependabot PRs - @tomaszhanc
- 3ec80d - upsert on conflict columns (#23) - @norberttech
- 6a8507 - dependabot for tools - @tomaszhanc
- 6e300e - dependabot for tools - @tomaszhanc
- f74a90 - Rows helper methods (#68) - @norberttech
- 648b1f - array_dot_rename function (#6) - @tomaszhanc
- dc8080 - missing keys to multiselect result array (#5) - @norberttech
- 4d6261 - array_dot_set function - @norberttech
- 3e39c9 - small optimization - @norberttech
- 484348 - multiselect syntax - @norberttech
- b71301 - detecting first/last Rows inside of ETL (#50) - @norberttech
- fd0b43 - access methods to Rows and Entries (#49) - @norberttech
- 286dc8 - pre/post request callables to extractors (#9) - @norberttech
- db218a - memory safe XMLReaderExtractor (#13) - @norberttech
- 2e5f0c - more data about request/response to row (#6) - @norberttech
- 8169ce - precisio to the float entry in order to fix comparisons (#48) - @norberttech
- 456cb1 - readme and fixed logger class name - @norberttech
- 540224 - Rows flatMap (#46) - @norberttech
- c97121 - FloatEntry (#44) - @norberttech
- c7e493 - static http extractor (#4) - @norberttech
- ff0956 - possibility to extract data from multiple queries (#3) - @norberttech
- 24bae1 - DbalQueryExtractor (#1) - @norberttech
- 40a51b - XMLEntry (#28) - @norberttech
- 873e3c - Rows::unique method (#24) - @norberttech
- a87050 - Rows::sortEntries method (#25) - @tomaszhanc
- 291d15 - merge method for Rows (#23) - @tomaszhanc
- 1052f8 - sort and find methods (#21) - @norberttech
- cb548d - each method to the Rows class and use the latest version of phi… (#13) - @DawidSajdak
- 237b88 - Run Tests section (#10) - @peter279k
- 22bc54 - norberttech/md-link-linter integration - @norberttech
- 74ffe8 - aeon-php/automation integration - @norberttech
- fe271d - aeon integration & updated dependencies - @norberttech
- be6ccd - Changelog - @norberttech
- 636d83 - badges - @norberttech
- 474e90 - description of use case into README - @norberttech
- 243a21 - missing tests and README - @norberttech
- 7e71f8 - missing dependency - @norberttech
- 856870 - license - @norberttech
#Changed
- 7cf0ca - allow to manually trigger changelog update - @norberttech
- #331 - Update PHPStan to
^1.10- @stloyd - #317 - Update PHPUnit to
^9.6& fix deprecated code usage - @stloyd - #271 - Updated dependencies - @norberttech
- #263 - Rewritten ASCII table formatted - @norberttech
- #235 - minimum required avro php version - @norberttech
- #234 - Updated psalm to the latest version - @norberttech
- #178 - excluded composer.lock from PR size calculation - @norberttech
- #171 - Examples cleanup - @norberttech
- #153 - Moved streams to FlowContext - @norberttech
- #148 - Updated tools & project dependencies - @norberttech
- 0488f3 - Lock avro in order to avoid BC breaks - @norberttech
- #111 - Moved ErrorHandler to FlowContext - @norberttech
- #104 - Simplified Parquet Loader writing to groups - @norberttech
- #101 - renamed color into t_shirt_color in examples - @norberttech
- #97 - Improved partitioning performance - @norberttech
- ead619 - Use pull_request_target for labeler - @norberttech
- 595617 - Disabled labelers due to github security issues - @norberttech
- #92 - [CSV] Partitioning is now using Filesystem Streams - @norberttech
- d9ef9b - Unified installation guide in all readme files - @norberttech
- 1ec7b6 - Merge etl-adapter-xml/1.x - @norberttech
- 0f4399 - Merge etl-adapter-text/1.x - @norberttech
- 2cabd8 - Merge etl-adapter-reactphp/1.x - @norberttech
- 457625 - Merge etl-adapter-parquet/1.x - @norberttech
- e1c5de - Merge etl-adapter-logger/1.x - @norberttech
- 630aa3 - Merge etl-adapter-json/1.x - @norberttech
- ddbd55 - Merge etl-adapter-http/1.x - @norberttech
- cf5d90 - Merge etl-adapter-elasticsearch/1.x - @norberttech
- 83f124 - Merge etl-adapter-doctrine/1.x - @norberttech
- 6ca61c - Merge etl-adapter-csv/1.x - @norberttech
- 260bc8 - Merge etl-adapter-avro/1.x - @norberttech
- de9c5a - Merge etl-adapter-amphp/1.x - @norberttech
- c0114f - Merge doctrine-dbal-bulk/1.x - @norberttech
- 91ced7 - Merge array-dot/1.x - @norberttech
- 6068bb - Merge etl/1.x - @norberttech
- 1ba4bd - Root commit for monorepo branch 1.x - @norberttech
- 3be53e - Adjust adapter to the latest changes in core etl library - @norberttech
- 5f4f3d - Adjust adapter to the latest changes in core etl library - @norberttech
- 1376fe - Adjust adapter to the latest changes in core etl library - @norberttech
- 451635 - Adjust adapter to the latest changes in core etl library - @norberttech
- 546393 - Adjust adapter to the latest changes in core etl library - @norberttech
- e86925 - Adjust adapter to the latest changes in core etl library - @norberttech
- a9b921 - Adjust adapter to the latest changes in core etl library - @norberttech
- 12126a - Adjust adapter to the latest changes in core etl library - @norberttech
- 6a3602 - Adjust adapter to the latest changes in core etl library - @norberttech
- 4137db - Adjust adapter to the latest changes in core etl library - @norberttech
- d77206 - Adjust adapter to the latest changes in core etl library - @norberttech
- 219ea7 - Adjust adapter to the latest changes in core etl library - @norberttech
- b4ef88 - Allow infection/extension-installer in tools (#271) - @szepeviktor
- 61dd1a - Function
uniqid()must be used with 2nd parameter to increase uniqueness (#264) - @stloyd - d576ba - Remove
IsAssociativeArrayclass in favor ofarray_is_list()native function (#262) - @stloyd - d6928c - Simplify PHPUnit configuration by removing bootstrap file (#261) - @stloyd
- 9ad0eb - parquet into mandatory dependency - @norberttech
- 83b30a - json-machine into mandatory dependency - @norberttech
- 752d9f - elasticsearch into mandatory dependency - @norberttech
- b760d6 - doctrine-dbal-bulk into mandatory dependency - @norberttech
- 35c2ef - avro-php into mandatory dependency - @norberttech
- 53ae6f - Create LICENSE - @norberttech
- 4e77cf - Create LICENSE - @norberttech
- ca56e1 - Create LICENSE - @norberttech
- 2df9c1 - Create LICENSE - @norberttech
- ee72a1 - Create LICENSE - @norberttech
- 109e26 - Create LICENSE - @norberttech
- 712ed0 - Create LICENSE - @norberttech
- b69f42 - Create LICENSE - @norberttech
- b59dec - Create LICENSE - @norberttech
- d3ae27 - Transformers cleanup (#252) - @norberttech
- 84692d - Allowed to use more advanced callbacks in call user function transformer (#251) - @norberttech
- 946aea - rtrim row values (#1) - @norberttech
- ecd637 - Adjusted avro to use flow streams (#1) - @norberttech
- 906337 - Initial commit - @norberttech
- 3d4731 - Merge pull request #1 from norberttech/feature/file-stream - @norberttech
- e1cbee - CS Fixes - @norberttech
- e88ab7 - File stream abstraction (#243) - @norberttech
- 8058f9 - Unified JsonLoader behavior (#108) - @norberttech
- e14d50 - Transformations grouping (#242) - @norberttech
- b1957f - Define schema for array unpack to support complex types unpacking (#237) - @norberttech
- 9a8107 - Moved default entries metadata to dedicated class (#236) - @norberttech
- 867681 - Initial commit - @norberttech
- f1bae0 - Expose min/max in Memory/Consumption monitor (#233) - @norberttech
- 429b67 - Initial commit - @norberttech
- cb193b - Improved native entry factory entry type detection (#232) - @norberttech
- 960706 - Schema definition metadata (#231) - @norberttech
- d85586 - List Entry (#230) - @norberttech
- 98b352 - Feature/csv dsl (#105) - @norberttech
- b9e0b4 - Adjusted to latest changes in Flow - @norberttech
- aead49 - Local Socket Pipeline and async processing abstraction (#227) - @norberttech
- 4b1f78 - Initial commit - @norberttech
- 94c83b - Initial commit - @norberttech
- 99d6d1 - Cache serialization (#226) - @norberttech
- b0d73b - Nested pipeline (#225) - @norberttech
- c5bd0e - Reorganized configuration (#224) - @norberttech
- fc544f - DSL Unifications (#221) - @norberttech
- 80a679 - default transformers behavior from Entries::add to Entries::set (#220) - @norberttech
- febc8a - Display schema (#214) - @norberttech
- cde965 - Upgrade php81 (#86) - @norberttech
- aada02 - Join each (#210) - @norberttech
- 90ac3e - DataFrame join (#202) - @norberttech
- b3e393 - Get schema from existing rows (#198) - @norberttech
- b789fc - Extracted DataFrame from ETL class (#197) - @norberttech
- 0aeb3b - Feature/cleanup (#196) - @norberttech
- 22c256 - Make entry names case sensitive (#186) - @norberttech
- 5283f3 - Renamed find into findOne and added new find method to Rows (#180) - @norberttech
- 2ffdb8 - Enabled php 8.1 (#179) - @norberttech
- f22d1c - Keep entries case insensitive without changing entry name (#178) - @norberttech
- 2c78a8 - Psalm types detection (#177) - @norberttech
- 6407ce - Schema::isValid with SchemaValidator (#176) - @norberttech
- 858011 - Row schema validation mechanism (#175) - @norberttech
- 7f3ae8 - Group by Rows (#174) - @norberttech
- dbeec5 - Revert unintended BC break (#170) - @norberttech
- 5246ef - Improved code coverage in tests (#168) - @norberttech
- 4a8f84 - Domain Specific Language (#167) - @norberttech
- bbb37a - In Memory SortBy (#164) - @norberttech
- a6f009 - Merge pull request #161 from DawidSajdak/feature/add-callback-antry-value-transformer - @DawidSajdak
- ce57c1 - Fixes - @DawidSajdak
- 758225 - Fixes - @DawidSajdak
- ba4680 - Pipeline clousre (#163) - @norberttech
- b223c5 - ETL::sortBy (#162) - @norberttech
- 9bc5f2 - Detect JSON type values and automatically cast them from string to array in order to satisfy dbal (#87) - @norberttech
- 31f9e0 - to EntryValueTransformer - @DawidSajdak
- 7b1476 - to EntryValueTransformer - @DawidSajdak
- f6888a - Merge pull request #80 from DawidSajdak/feature/add-update-to-from-connection-method - @DawidSajdak
- ffd90e - Fix - @DawidSajdak
- 46a7e2 - Merge pull request #79 from DawidSajdak/feature/add-update-operation - @DawidSajdak
- 522f24 - CR fixes - @DawidSajdak
- 4f244d - Fix - @DawidSajdak
- 33227f - Merge pull request #86 from DawidSajdak/feature/update-multiple-rows-at-once - @DawidSajdak
- 1eea5c - Fixes - @DawidSajdak
- 6ef4cb - Use proper dbal types when executing insert statement (#84) - @norberttech
- ce449b - Cleaned up factories defined by transformers - @norberttech
- 4806d5 - Cleanup converters that are leftovers from multirepo approach (#158) - @norberttech
- d4138f - Adjusted adapter fore serialization (#82) - @norberttech
- f5ea58 - Merged flow-php/etl-adapter-memory into flow-php/etl - @norberttech
- 2d6583 - Moved JsonEntry to flow-php/etl library - @norberttech
- 03c4c3 - Row::merge (#154) - @norberttech
- 5f7333 - Merged flow-php/etl-transformers and flow-php/etl-loaders repositories into etl repo - @norberttech
- 4e3589 - Simplified worker and updated README - @norberttech
- 869be7 - Initial commit - @norberttech
- 7e3c23 - Adjusted adapter for serialization (#80) - @norberttech
- 5535f8 - Adjusted Adapter for Serialization (#82) - @norberttech
- cd622d - Adjusted adapter for serialization (#88) - @norberttech
- fc3e50 - Adjusted adapter for serialization (#75) - @norberttech
- b840f5 - Adjust adapter for Serialization (#86) - @norberttech
- 72d786 - Serialization (#152) - @norberttech
- 9502c6 - Merge pull request #148 from flow-php/dependabot/composer/tools/phpstan/phpstan-1.4.6 - @tomaszhanc
- ebbcfd - Adjusted JsonEntry to the lastest changes - @norberttech
- 25b495 - Merge pull request #79 from flow-php/dependabot/composer/tools/vimeo/psalm-4.20.0 - @tomaszhanc
- e64b55 - Implement toString for XMLEntry - @tomaszhanc
- c0231d - ETL::process (#150) - @norberttech
- 0515c6 - Merge pull request #73 from tomaszhanc/hotfix/improve-performance - @tomaszhanc
- 3d43d0 - Improve performance for DbalQueryExtractor - @tomaszhanc
- e384e0 - Revert pipelines from generators to callbacks (#144) - @norberttech
- 6965ec - Small performance improvement (#74) - @norberttech
- 5eec89 - Performance improvements (#136) - @norbertmwk
- 17087b - Reuse workflows from aeon-php/actions (#70) - @tomaszhanc
- 0d1be6 - Merge pull request #72 from tomaszhanc/feature/update-workflows - @tomaszhanc
- a146e0 - Merge pull request #60 from tomaszhanc/feature/update-workflows - @tomaszhanc
- 489eb4 - Merge pull request #54 from tomaszhanc/feature/update-workflows - @tomaszhanc
- 4fea30 - Adjust workflow with PostgreSQL - @tomaszhanc
- 76e229 - Adjust test workflow to add PostgreSQL - @tomaszhanc
- 518a3e - Merge pull request #72 from tomaszhanc/feature/update-workflows - @tomaszhanc
- 3af1dd - Adjust test workflow with ES service - @tomaszhanc
- d8cc4c - Merge pull request #126 from tomaszhanc/feature/update-workflows - @tomaszhanc
- 44d95b - Merge pull request #62 from tomaszhanc/feature/update-workflows - @tomaszhanc
- 616d0e - Merge pull request #68 from tomaszhanc/feature/update-workflows - @tomaszhanc
- b982f1 - Merge pull request #52 from tomaszhanc/feature/update-workflows - @tomaszhanc
- cd9ac9 - Merge pull request #67 from tomaszhanc/feature/update-workflows - @tomaszhanc
- 6a8ee1 - Merge pull request #67 from tomaszhanc/hotfix/static - @tomaszhanc
- 101de6 - Reuse workflows from aeon-php/actions - @tomaszhanc
- fdd36e - Reuse workflows from aeon-php/actions - @tomaszhanc
- b31dbf - Reuse workflows from aeon-php/actions - @tomaszhanc
- 810a02 - Reuse workflows from aeon-php/actions - @tomaszhanc
- 83a7e5 - Reuse workflows from aeon-php/actions - @tomaszhanc
- 684192 - Reuse workflows from aeon-php/actions - @tomaszhanc
- 1f97a6 - Reuse workflows from aeon-php/actions - @tomaszhanc
- 50bbb3 - Reuse workflows from aeon-php/actions - @tomaszhanc
- 62fb8b - Reuse workflows from aeon-php/actions - @tomaszhanc
- 658315 - Dont use deprecated getName() method on Doctrine Dbal Platform class (#47) - @tomaszhanc
- 29b68c - Merge pull request #43 from tomaszhanc/hotifx/dbal - @tomaszhanc
- 53af2c - Merge pull request #113 from tomaszhanc/feature/update-tools - @tomaszhanc
- efe36b - Supress phpstan errors - @tomaszhanc
- 929e46 - Merge pull request #59 from tomaszhanc/hotfix/static - @tomaszhanc
- 50e5fd - Merge pull request #31 from flow-php/hotfix/doctrine - @tomaszhanc
- 20335c - Merge pull request #42 from flow-php/dependabot/composer/tools/friendsofphp/php-cs-fixer-3.2.1 - @tomaszhanc
- d5fd72 - Fix - @tomaszhanc
- 2b12e2 - Merge pull request #97 from tomaszhanc/1.x - @tomaszhanc
- ab4681 - Merge pull request #28 from tomaszhanc/feature/auto-merge - @tomaszhanc
- feb1b3 - Merge pull request #28 from tomaszhanc/feature/auto-merge - @tomaszhanc
- 2627d1 - Merge pull request #44 from tomaszhanc/feature/auto-merge - @tomaszhanc
- ebfc54 - Merge pull request #23 from tomaszhanc/feature/auto-merge - @tomaszhanc
- 494d12 - Merge pull request #46 from tomaszhanc/feature/auto-merge - @tomaszhanc
- 412f73 - Merge pull request #44 from tomaszhanc/feature/auto-merge - @tomaszhanc
- c4294d - Merge pull request #36 from tomaszhanc/feature/auto-merge - @tomaszhanc
- b5dbee - Merge pull request #42 from tomaszhanc/feature/auto-merge - @tomaszhanc
- 0880b9 - Merge pull request #45 from flow-php/dependabot/composer/tools/vimeo/psalm-4.11.1 - @tomaszhanc
- ae2929 - Merge pull request #40 from flow-php/dependabot/composer/tools/phpunit/phpunit-9.5.10 - @DawidSajdak
- 3d68ac - Merge pull request #42 from flow-php/dependabot/composer/elasticsearch/elasticsearch-7.15.0 - @DawidSajdak
- 3e2397 - Merge pull request #20 from flow-php/dependabot/composer/tools/phpunit/phpunit-9.5.10 - @DawidSajdak
- 7bcc68 - Merge pull request #92 from flow-php/dependabot/composer/tools/phpunit/phpunit-9.5.10 - @DawidSajdak
- 8f05af - Merge pull request #32 from flow-php/dependabot/composer/tools/phpunit/phpunit-9.5.10 - @DawidSajdak
- d9307a - Merge pull request #40 from flow-php/dependabot/composer/tools/phpunit/phpunit-9.5.10 - @DawidSajdak
- 7cb480 - Merge pull request #39 from flow-php/dependabot/composer/tools/phpunit/phpunit-9.5.10 - @DawidSajdak
- 3ec04b - Merge pull request #25 from flow-php/dependabot/composer/tools/phpunit/phpunit-9.5.10 - @DawidSajdak
- cbc5b7 - Merge pull request #43 from flow-php/dependabot/composer/tools/phpunit/phpunit-9.5.10 - @DawidSajdak
- 09174b - Merge pull request #25 from flow-php/dependabot/composer/tools/infection/infection-0.25.3 - @DawidSajdak
- d63849 - Merge pull request #21 from flow-php/dependabot/composer/tools/infection/infection-0.25.3 - @DawidSajdak
- bed993 - Merge pull request #93 from flow-php/dependabot/composer/tools/infection/infection-0.25.3 - @DawidSajdak
- 8d2df0 - Merge pull request #33 from flow-php/dependabot/composer/tools/infection/infection-0.25.3 - @DawidSajdak
- 18e588 - Merge pull request #41 from flow-php/dependabot/composer/tools/infection/infection-0.25.3 - @DawidSajdak
- 661c04 - Merge pull request #34 from flow-php/dependabot/composer/tools/friendsofphp/php-cs-fixer-3.2.1 - @DawidSajdak
- 55d836 - Merge pull request #41 from flow-php/dependabot/composer/league/csv-9.72 - @DawidSajdak
- 361137 - Merge pull request #40 from flow-php/dependabot/composer/tools/friendsofphp/php-cs-fixer-3.2.1 - @DawidSajdak
- b77178 - Merge pull request #44 from flow-php/dependabot/composer/tools/friendsofphp/php-cs-fixer-3.2.1 - @DawidSajdak
- 6d532c - Merge pull request #42 from flow-php/dependabot/composer/tools/friendsofphp/php-cs-fixer-3.2.1 - @DawidSajdak
- 240ca3 - Merge pull request #26 from flow-php/dependabot/composer/tools/friendsofphp/php-cs-fixer-3.2.1 - @DawidSajdak
- 1ef92c - Merge pull request #94 from flow-php/dependabot/composer/tools/friendsofphp/php-cs-fixer-3.2.1 - @DawidSajdak
- 77f9f9 - Merge pull request #24 from flow-php/dependabot/composer/doctrine/dbal-3.1.3 - @DawidSajdak
- 46a3fb - Merge pull request #21 from flow-php/dependabot/composer/tools/infection/infection-0.25.2 - @DawidSajdak
- a88ea8 - Merge pull request #19 from flow-php/dependabot/composer/tools/infection/infection-0.25.2 - @DawidSajdak
- 1908f9 - Merge pull request #91 from flow-php/dependabot/composer/tools/infection/infection-0.25.2 - @DawidSajdak
- ca49fb - Merge pull request #31 from flow-php/dependabot/composer/tools/infection/infection-0.25.2 - @DawidSajdak
- 235ba1 - Merge pull request #39 from flow-php/dependabot/composer/tools/infection/infection-0.25.2 - @DawidSajdak
- 54fba3 - Merge pull request #37 from flow-php/dependabot/composer/tools/infection/infection-0.25.1 - @DawidSajdak
- 54e07b - Merge pull request #38 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.99 - @DawidSajdak
- dcb593 - Merge pull request #38 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.99 - @DawidSajdak
- 1456fa - Merge pull request #24 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.99 - @DawidSajdak
- fc1867 - Merge pull request #41 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.99 - @DawidSajdak
- ebf787 - Merge pull request #27 from flow-php/dependabot/composer/tools/vimeo/psalm-4.10.0 - @DawidSajdak
- 2bbb92 - Merge pull request #35 from flow-php/dependabot/composer/tools/vimeo/psalm-4.10.0 - @DawidSajdak
- 5ce49a - Merge pull request #36 from flow-php/dependabot/composer/tools/infection/infection-0.25.0 - @DawidSajdak
- bd8d9a - Merge pull request #18 from flow-php/dependabot/composer/doctrine/dbal-3.1.2 - @DawidSajdak
- 9a3946 - Merge pull request #37 from flow-php/dependabot/composer/tools/vimeo/psalm-4.10.0 - @DawidSajdak
- ce0323 - Merge pull request #23 from flow-php/dependabot/composer/tools/vimeo/psalm-4.10.0 - @DawidSajdak
- f962d9 - Merge pull request #40 from flow-php/dependabot/composer/tools/vimeo/psalm-4.10.0 - @DawidSajdak
- b1173c - Merge pull request #39 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.99 - @DawidSajdak
- 35ba2e - Merge pull request #19 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.99 - @DawidSajdak
- 587145 - Merge pull request #89 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.99 - @DawidSajdak
- 5c54a7 - Merge pull request #17 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.99 - @DawidSajdak
- 352276 - Merge pull request #20 from flow-php/dependabot/composer/tools/infection/infection-0.25.1 - @DawidSajdak
- 9afd2a - Merge pull request #18 from flow-php/dependabot/composer/tools/infection/infection-0.25.1 - @DawidSajdak
- 09956f - Merge pull request #90 from flow-php/dependabot/composer/tools/infection/infection-0.25.1 - @DawidSajdak
- 2ad74d - Merge pull request #29 from flow-php/dependabot/composer/tools/infection/infection-0.25.1 - @DawidSajdak
- 9d170a - Merge pull request #30 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.99 - @DawidSajdak
- 3a7b13 - Merge pull request #87 from flow-php/dependabot/composer/tools/vimeo/psalm-4.10.0 - @tomaszhanc
- 925d36 - Merge pull request #88 from flow-php/dependabot/composer/tools/infection/infection-0.25.0 - @tomaszhanc
- 30c08d - Merge pull request #16 from flow-php/dependabot/composer/tools/friendsofphp/php-cs-fixer-3.1.0 - @tomaszhanc
- be32d5 - Merge pull request #38 from flow-php/dependabot/composer/tools/vimeo/psalm-4.10.0 - @tomaszhanc
- 69611f - Merge pull request #15 from flow-php/dependabot/composer/tools/infection/infection-0.25.0 - @tomaszhanc
- b3d052 - Merge pull request #17 from flow-php/dependabot/composer/tools/vimeo/psalm-4.10.0 - @tomaszhanc
- 4289af - Merge pull request #14 from flow-php/dependabot/composer/tools/infection/infection-0.25.0 - @tomaszhanc
- 8a9fb4 - Merge pull request #15 from flow-php/dependabot/composer/tools/vimeo/psalm-4.10.0 - @tomaszhanc
- 96d141 - Merge pull request #9 from flow-php/dependabot/composer/tools/phpunit/phpunit-9.5.9 - @tomaszhanc
- 8a7842 - Merge pull request #8 from flow-php/dependabot/composer/tools/vimeo/psalm-4.9.3 - @tomaszhanc
- 472ae8 - Merge pull request #11 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.98 - @tomaszhanc
- 0236c3 - Merge pull request #10 from flow-php/dependabot/composer/tools/infection/infection-0.24.0 - @tomaszhanc
- d40254 - Merge pull request #12 from flow-php/dependabot/composer/tools/friendsofphp/php-cs-fixer-2.19.2 - @tomaszhanc
- 4d5d69 - Merge pull request #13 from tomaszhanc/hotfix/pr-description - @tomaszhanc
- 91b6b1 - Merge pull request #36 from tomaszhanc/hotifx/php-cs-config - @tomaszhanc
- 426300 - Remove unsued PHP-CS config (#38) - @tomaszhanc
- ac4643 - Merge pull request #39 from tomaszhanc/hotifx/php-cs-config - @tomaszhanc
- 7f0c17 - Merge pull request #7 from tomaszhanc/hotfix/dpenedabot - @tomaszhanc
- 3bc415 - Merge pull request #37 from tomaszhanc/hotifx/php-cs-config - @tomaszhanc
- efbc1b - Merge pull request #86 from tomaszhanc/hotifx/php-cs-config - @tomaszhanc
- ee3c4c - Remove unsued PHP-CS config - @tomaszhanc
- 8e47dd - Remove unsued PHP-CS config - @tomaszhanc
- 94afaa - Remove unsued PHP-CS config - @tomaszhanc
- 5fa5b0 - Remove unsued PHP-CS config - @tomaszhanc
- 6344a7 - Merge pull request #23 from flow-php/dependabot/composer/tools/friendsofphp/php-cs-fixer-3.1.0 - @tomaszhanc
- b47b2c - Merge pull request #33 from flow-php/dependabot/composer/tools/friendsofphp/php-cs-fixer-3.1.0 - @tomaszhanc
- a932ca - mend - @tomaszhanc
- 810865 - Merge pull request #32 from flow-php/dependabot/composer/tools/friendsofphp/php-cs-fixer-3.1.0 - @tomaszhanc
- b107d6 - Merge pull request #35 from flow-php/dependabot/composer/tools/friendsofphp/php-cs-fixer-3.1.0 - @tomaszhanc
- c6c671 - Merge pull request #82 from flow-php/dependabot/composer/tools/friendsofphp/php-cs-fixer-3.1.0 - @tomaszhanc
- 8f2a52 - Merge pull request #14 from flow-php/dependabot/composer/tools/phpunit/phpunit-9.5.9 - @tomaszhanc
- 198a59 - Merge pull request #12 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.98 - @tomaszhanc
- d8dffe - Merge pull request #13 from flow-php/dependabot/composer/tools/infection/infection-0.24.0 - @tomaszhanc
- 03676b - Merge pull request #11 from flow-php/dependabot/composer/tools/vimeo/psalm-4.9.3 - @tomaszhanc
- 8600ad - Merge pull request #10 from flow-php/dependabot/composer/tools/friendsofphp/php-cs-fixer-2.19.2 - @tomaszhanc
- 04214c - Merge pull request #9 from tomaszhanc/hotfix/dependabot - @tomaszhanc
- 2b1cd8 - Merge pull request #38 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.98 - @tomaszhanc
- b30569 - Merge pull request #36 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.98 - @tomaszhanc
- 8999f3 - Merge pull request #85 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.98 - @tomaszhanc
- b700b2 - Merge pull request #22 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.98 - @DawidSajdak
- 16bead - Merge pull request #36 from flow-php/dependabot/composer/tools/phpunit/phpunit-9.5.9 - @DawidSajdak
- a06519 - Merge pull request #34 from flow-php/dependabot/composer/tools/phpunit/phpunit-9.5.9 - @DawidSajdak
- c6990a - Merge pull request #35 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.97 - @DawidSajdak
- 5418bb - Merge pull request #83 from flow-php/dependabot/composer/tools/phpunit/phpunit-9.5.9 - @DawidSajdak
- e95a9d - Merge pull request #21 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.97 - @DawidSajdak
- fcf22f - Merge pull request #37 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.97 - @DawidSajdak
- a80e97 - Merge pull request #84 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.97 - @DawidSajdak
- ffd4db - Merge pull request #26 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.98 - @DawidSajdak
- fdc61b - Merge pull request #34 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.98 - @DawidSajdak
- f80bae - Merge pull request #35 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.98 - @DawidSajdak
- fd9bc4 - Use content type header for a request (#31) - @tomaszhanc
- 5dce1e - Merge pull request #33 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.97 - @tomaszhanc
- 4d5db4 - Merge pull request #29 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.96 - @tomaszhanc
- 7da48c - Merge pull request #31 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.96 - @tomaszhanc
- e29458 - Merge pull request #18 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.96 - @tomaszhanc
- 4d97be - Merge pull request #34 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.96 - @tomaszhanc
- 991d5d - Merge pull request #22 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.96 - @tomaszhanc
- 017c42 - Merge pull request #32 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.96 - @tomaszhanc
- e9cd0d - Merge pull request #78 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.96 - @tomaszhanc
- 9fe660 - Merge pull request #21 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.95 - @tomaszhanc
- 02cd93 - Merge pull request #28 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.95 - @tomaszhanc
- 3a0ef0 - Merge pull request #30 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.95 - @tomaszhanc
- 2c5d1d - Merge pull request #17 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.95 - @tomaszhanc
- 5beed4 - Merge pull request #33 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.95 - @tomaszhanc
- d8b636 - Merge pull request #29 from flow-php/dependabot/composer/tools/vimeo/psalm-4.9.3 - @DawidSajdak
- 9a7acb - Merge pull request #28 from flow-php/dependabot/composer/tools/phpunit/phpunit-9.5.8 - @DawidSajdak
- 99adbd - Merge pull request #26 from flow-php/dependabot/composer/tools/phpunit/phpunit-9.5.8 - @DawidSajdak
- e8f900 - Merge pull request #74 from flow-php/dependabot/composer/tools/phpunit/phpunit-9.5.8 - @DawidSajdak
- b13421 - Merge pull request #72 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.94 - @DawidSajdak
- cc94a0 - Merge pull request #30 from flow-php/dependabot/composer/elasticsearch/elasticsearch-7.14.0 - @DawidSajdak
- ecf296 - Merge pull request #23 from flow-php/dependabot/composer/tools/phpunit/phpunit-9.5.8 - @DawidSajdak
- f7b037 - Merge pull request #16 from flow-php/dependabot/composer/tools/phpunit/phpunit-9.5.8 - @tomaszhanc
- 764867 - Merge pull request #20 from flow-php/dependabot/composer/tools/vimeo/psalm-4.9.3 - @tomaszhanc
- a43e18 - Merge pull request #77 from flow-php/dependabot/composer/tools/vimeo/psalm-4.9.3 - @tomaszhanc
- c69292 - Merge pull request #31 from flow-php/dependabot/composer/tools/vimeo/psalm-4.9.3 - @tomaszhanc
- caef03 - Merge pull request #16 from flow-php/dependabot/composer/tools/vimeo/psalm-4.9.3 - @tomaszhanc
- 2813bb - Merge pull request #32 from flow-php/dependabot/composer/tools/vimeo/psalm-4.9.3 - @tomaszhanc
- cf1156 - Merge pull request #27 from flow-php/dependabot/composer/tools/vimeo/psalm-4.9.3 - @tomaszhanc
- bfa8a7 - Merge pull request #24 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.94 - @tomaszhanc
- fd333d - Merge pull request #11 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.94 - @tomaszhanc
- a41aee - Merge pull request #26 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.94 - @tomaszhanc
- 4238f7 - Merge pull request #71 from flow-php/dependabot/composer/tools/infection/infection-0.24.0 - @tomaszhanc
- 13a87e - Merge pull request #14 from flow-php/dependabot/composer/tools/infection/infection-0.24.0 - @tomaszhanc
- 0a3af2 - Merge pull request #15 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.94 - @tomaszhanc
- 99e090 - Merge pull request #22 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.94 - @tomaszhanc
- 46ff9c - Merge pull request #10 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.93 - @tomaszhanc
- 562388 - Merge pull request #25 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.93 - @tomaszhanc
- 18c001 - Merge pull request #25 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.93 - @tomaszhanc
- 4fddc9 - Merge pull request #70 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.93 - @tomaszhanc
- c8f0fd - Merge pull request #23 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.93 - @tomaszhanc
- 68531e - Merge pull request #20 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.93 - @tomaszhanc
- fe2b1c - Merge pull request #13 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.93 - @tomaszhanc
- 16272c - Merge pull request #24 from flow-php/dependabot/composer/tools/phpunit/phpunit-9.5.7 - @DawidSajdak
- 24c41c - Merge pull request #24 from flow-php/dependabot/composer/tools/phpunit/phpunit-9.5.7 - @DawidSajdak
- 1bdcf9 - Merge pull request #69 from flow-php/dependabot/composer/tools/phpunit/phpunit-9.5.7 - @DawidSajdak
- a9ee38 - Merge pull request #12 from flow-php/dependabot/composer/tools/phpunit/phpunit-9.5.7 - @tomaszhanc
- 2c4649 - Merge pull request #19 from flow-php/dependabot/composer/tools/phpunit/phpunit-9.5.7 - @tomaszhanc
- 596878 - Merge pull request #22 from flow-php/dependabot/composer/tools/phpunit/phpunit-9.5.7 - @tomaszhanc
- 930ae4 - Merge pull request #23 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.92 - @tomaszhanc
- a2efef - Merge pull request #8 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.92 - @tomaszhanc
- 733e5b - Merge pull request #21 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.92 - @tomaszhanc
- f278f7 - Merge pull request #18 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.92 - @tomaszhanc
- a10cf9 - Merge pull request #11 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.92 - @tomaszhanc
- 160c72 - Merge pull request #67 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.92 - @tomaszhanc
- 67fcf4 - Merge pull request #23 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.92 - @tomaszhanc
- f1681d - Merge pull request #22 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.91 - @tomaszhanc
- 1045f3 - Merge pull request #20 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.91 - @tomaszhanc
- 6f2510 - Merge pull request #17 from flow-php/dependabot/composer/nyholm/psr7-1.4.1 - @tomaszhanc
- 24a908 - Merge pull request #16 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.91 - @tomaszhanc
- 7610b6 - Merge pull request #10 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.91 - @tomaszhanc
- 465014 - Merge pull request #66 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.91 - @tomaszhanc
- 4ae30c - Merge pull request #22 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.91 - @tomaszhanc
- b49f81 - Structure entry (#65) - @norberttech
- f2fdb0 - Merge pull request #13 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.90 - @tomaszhanc
- 90d324 - Merge pull request #15 from flow-php/dependabot/composer/tools/phpunit/phpunit-9.5.6 - @tomaszhanc
- d341a2 - Error Handlers (#62) - @norberttech
- afa25b - DateEntries arguments from DateTimeImmutable into DateTimeInterface (#63) - @norberttech
- 5d9771 - Merge pull request #8 from tomaszhanc/hotfix/update-dependencies - @tomaszhanc
- 90d6fa - Merge pull request #7 from flow-php/tomaszhanc-patch-1 - @tomaszhanc
- 5ac69b - Merge pull request #18 from flow-php/dependabot/composer/elasticsearch/elasticsearch-7.13.1 - @tomaszhanc
- fd28ed - Merge pull request #19 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.90 - @tomaszhanc
- 0feff6 - Merge pull request #20 from flow-php/dependabot/composer/tools/vimeo/psalm-4.8.1 - @tomaszhanc
- 4fb816 - Merge pull request #56 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.90 - @tomaszhanc
- 15e779 - Merge pull request #58 from flow-php/dependabot/composer/tools/phpunit/phpunit-9.5.6 - @tomaszhanc
- 151c0c - Merge pull request #17 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.90 - @tomaszhanc
- 4d8ef0 - Merge pull request #18 from flow-php/dependabot/composer/tools/vimeo/psalm-4.8.1 - @tomaszhanc
- 90ed4b - Merge pull request #19 from flow-php/dependabot/composer/tools/phpunit/phpunit-9.5.6 - @tomaszhanc
- be2fa5 - Merge pull request #21 from flow-php/dependabot/composer/tools/phpunit/phpunit-9.5.6 - @tomaszhanc
- 166a7d - Merge pull request #19 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.90 - @tomaszhanc
- 40c3aa - Merge pull request #20 from flow-php/dependabot/composer/tools/vimeo/psalm-4.8.1 - @tomaszhanc
- 94ffb8 - Extract array_dot_path function from array_dot_get - @norberttech
- 4461ea - Initial commit - @norberttech
- dac37a - Pass parameter types when executing query (#5) - @tomaszhanc
- 78019b - Sort entries before passing them to BulkData (#5) - @tomaszhanc
- c8fd0b - Merge pull request #55 from tomaszhanc/hotfix/array-comparison - @tomaszhanc
- df1490 - Support null values in comparison - @tomaszhanc
- bee2c1 - Upgrade flow-php/etl dependency (#18) - @tomaszhanc
- 836fc8 - Merge pull request #54 from norberttech/bug/comparison - @tomaszhanc
- 1c1619 - Initial commit - @norberttech
- 5c429b - Merge pull request #43 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.87 - @DawidSajdak
- 72efdc - Merge pull request #13 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.87 - @DawidSajdak
- f0b49e - Merge pull request #12 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.87 - @DawidSajdak
- 8593f8 - Merge pull request #11 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.87 - @DawidSajdak
- 77c2f3 - Initial commit - @norberttech
- 418660 - Merge pull request #12 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.86 - @DawidSajdak
- 5dda61 - Merge pull request #42 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.86 - @DawidSajdak
- c9722d - Merge pull request #11 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.86 - @DawidSajdak
- 20f555 - Merge pull request #10 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.86 - @DawidSajdak
- b11be3 - Merge pull request #8 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.85 - @DawidSajdak
- 58631e - Merge pull request #9 from flow-php/dependabot/composer/tools/vimeo/psalm-4.7.2 - @DawidSajdak
- 6228b4 - Merge pull request #10 from flow-php/dependabot/composer/tools/friendsofphp/php-cs-fixer-2.19.0 - @DawidSajdak
- f7fdd0 - Merge pull request #7 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.85 - @DawidSajdak
- 177aa1 - Merge pull request #8 from flow-php/dependabot/composer/tools/vimeo/psalm-4.7.2 - @DawidSajdak
- e53956 - Merge pull request #9 from flow-php/dependabot/composer/tools/friendsofphp/php-cs-fixer-2.19.0 - @DawidSajdak
- 70799c - Merge pull request #6 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.85 - @DawidSajdak
- 3c130b - Merge pull request #7 from flow-php/dependabot/composer/tools/vimeo/psalm-4.7.2 - @DawidSajdak
- 3f857c - Merge pull request #8 from flow-php/dependabot/composer/tools/friendsofphp/php-cs-fixer-2.19.0 - @DawidSajdak
- d1a7c4 - Merge pull request #37 from flow-php/dependabot/composer/tools/infection/infection-0.22.0 - @DawidSajdak
- 112801 - Merge pull request #39 from flow-php/dependabot/composer/tools/phpstan/phpstan-0.12.85 - @DawidSajdak
- 03f8c0 - Merge pull request #41 from flow-php/dependabot/composer/tools/friendsofphp/php-cs-fixer-2.19.0 - @DawidSajdak
- 321d2e - Moved rows processing to the pipeline (#32) - @norberttech
- f0ca8b - Moved JsonEntry from main ETL library (#3) - @norberttech
- b976ea - Moved all json related features to etl-adapter-json (#33) - @norberttech
- 7109f9 - Moved XMLEntry into etl-adapater-xml (#34) - @norberttech
- 91b656 - Initial commit - @norberttech
- e2a1c6 - Initial commit - @norberttech
- 377a21 - Automaticlly instll tools - @norberttech
- 1fc838 - Allow entries to take any string as a name (#31) - @norberttech
- f3f4ad - Extracted Memory into memory adapter (#30) - @norberttech
- 1ba67d - Row remove (#29) - @norberttech
- ee9921 - Improved test suite - @norberttech
- 0e96e7 - Feature/tests (#1) - @norberttech
- b71018 - Initial commit - @norberttech
- 202442 - Cleanup Entries (#26) - @norberttech
- 4e478e - Rename to etl-adapter-doctrine - @tomaszhanc
- c68ad6 - Initial commit - @norberttech
- b371b8 - Improve return type for Rows::toArray() (#18) - @tomaszhanc
- 5e0791 - phive with tools dedicated composer.json (#17) - @norberttech
- 3ea958 - Initial commit - @tomaszhanc
- 917267 - Pull Requests template (#14) - @DawidSajdak
- cdbc76 - Initial commit - @norberttech
- 032ef2 - Remove Webmozart/Assert dependency (#3) - @Wiktor6
- e48062 - Intial commit - @norberttech
#Fixed
- #333 - Make internal serializer more error reliable - @stloyd
- #332 - Adjust README.md file, missing adapter, fixed typos - @stloyd
- bf1260 - monorepo split github action - @norberttech
- 82f681 - monorepo builder config - @norberttech
- #320 - Sort entries when using select - @norberttech
- #318 - Fixed dependency for
amphp/socket&hp/process- @stloyd - #318 - Fixed wrong class name used in amphp
SocketServerclass - @stloyd - #318 - Don't use do real http calls in tests - @stloyd
- #319 - Fixed typos in Github PR template - @stloyd
- 88b413 - json_encode in test suite - @norberttech
- 894ecb - type in code - @norberttech
- #233 - Skip corrupted (more columns than headers) rows in CSV extractor - @norberttech
- 1e7ced - static analysis - @norberttech
- #172 - Documentation typos for left anti join - @Wirone
- #166 - Typo in code example - @drupol
- #110 - limit behavior when expanding rows during transformations - @norberttech
- #108 - keep_entries transformer behavior for missing entries - @norberttech
- #108 - native entry factory behavior for empty lists - @norberttech
- #108 - CSV Loader SaveMode when used with partitions - @norberttech
- #104 - Avro Loader - detecting already existing file - @norberttech
- #104 - Avro Loader - error message when converting entries with name not supported by Avro library - @norberttech
- #104 - Parquet Loder - detecting already existing files - @norberttech
- #103 - SaveMode ExceptionIfExists behavior across all loaders. - @norberttech
- #101 - opening single stream more than once in FilesystemStreams - @norberttech
- #97 - amphp react parallel processing examples - @norberttech
- #96 - Sort behavior when used after DataFrame::collect() - @norberttech
- 915c80 - broken markdown links in documentation - @norberttech
- c05fc1 - invalid access token in workflows - @norberttech
- 3909b0 - restore remvoved composer json from array-dot library - @norberttech
- 86407c - lowest dependencies tests in test suite - @norberttech
- 802b90 - codding standards - @norberttech
- b5ed23 - test suite setup - @norberttech
- dbdbcf - testsuite workflow - @norberttech
- da25f6 - mutation tests by disabling integration tests - @norberttech
- 248591 - filesystem cache in integration tests - @norberttech
- ffe5ae - FlysystemWrapper path and tests cache path - @norberttech
- 6ceb80 - tools/composer.json - disabled plugins - @norberttech
- 5d0b3a - accessing connection string in azure blob stream adapter - @norberttech
- bd9465 - FlysystemFS::open - use uri for remote resources - @norberttech
- f3f2ba - FlysystemWrapper: fallback to host when path not present - @norberttech
- 361d78 -
Handlerclass to not use0777mode & reduce code duplicates (#266) - @stloyd - 1d706d - wrong name comparison in
CollectionEntryclass (#263) - @stloyd - 820189 - invalid dbal type in tests - @norberttech
- 338cf6 - codding standard - @norberttech
- afc893 - missing dependency - @norberttech
- 8c0f01 - single row ASCII table (#260) - @norberttech
- fdd296 - ascii table when working with multibyte strings (#254) - @norberttech
- e70bfe - expanding lists, not only arrays (#253) - @norberttech
- ebb301 - stream reading mode - @norberttech
- 093b39 - Stream Handler behavior when working with local files (#244) - @norberttech
- 5acc57 - BC break - @norberttech
- 00122b - BC break - @norberttech
- 2148dc - dependencies - @norberttech
- 56853d - bug with empty first row and headers (#106) - @scyzoryck
- c18bd5 - using numeric column names for display (#217) - @norberttech
- 968e0d - schema ascii formatter separators (#215) - @norberttech
- e13e06 - sum aggregation float alias (#193) - @norberttech
- dfe32b - GroupByPipeline execution (#192) - @norberttech
- 612ca1 - failing tests - @DawidSajdak
- 38c119 - typo in readme - @norberttech
- ef1bcb - display function for arrays (#155) - @norbertmwk
- d2c3af - array_dot edge case of accessing non array through wildcard (#66) - @norberttech
- 9004d9 - PHPStan - @tomaszhanc
- 80f08b - PHPStan; - @tomaszhanc
- 4e7a49 - memory consumption broken by using iterator_to_array on pipeline (#139) - @norberttech
- aa81c2 - Psalm - @tomaszhanc
- 6c123a - workflow indentation - @tomaszhanc
- ee6c19 - workflow indtentation - @tomaszhanc
- c7e6f0 - infection config - @tomaszhanc
- e974dc - infection config - @tomaszhanc
- 0cd93a - infection config - @tomaszhanc
- cca14f - infection config - @tomaszhanc
- a7d737 - infection config - @tomaszhanc
- f4a628 - static analyze errors - @tomaszhanc
- d41ac7 - PHPStan - @tomaszhanc
- d9a22f - errors from static analyze (#41) - @tomaszhanc
- 413601 - errors from static analyze (#61) - @tomaszhanc
- 0ec037 - errors from static analyze (#38) - @tomaszhanc
- ca57df - removed things from the fixer - @tomaszhanc
- 13daa4 - PR description check configuration - @tomaszhanc
- f54ba3 - removed things from the fixer - @tomaszhanc
- 19b2e4 - removed things from the fixer - @tomaszhanc
- a41b22 - removed things from the fixer - @tomaszhanc
- 31b928 - removed things from the fixer - @tomaszhanc
- 2f07f3 - removed things from the fixer - @tomaszhanc
- 1f0da0 - multiselect nested paths - @norberttech
- 754ced - psalm errors after upgrade (#59) - @tomaszhanc
- 3217a5 - comparison by using weak comparison only against objects - @norberttech
- eacaf3 - loading csv to file (#15) - @norberttech
- b86bff - reading from streams (#8) - @norberttech
- 769283 - setting response body (#7) - @jpiatko
- 59e5b8 - failing tests after etl BC break change (#2) - @norberttech
- f0ef40 - invalid variable name - @norberttech
- 1a6eec - failing tests - @norberttech
#Updated
- d197ed - readme and changelog - @norberttech
- 4d2ac1 - monorepo-split.yml - @norberttech
- e72c38 - auto merge workflow - @norberttech
- e69edf - tools - @norberttech
- fa6a6f - dependencies - @norberttech
- 6c08cf - dependencies - @norberttech
- 756543 - tools dependencies - @norberttech
- 808687 - dependencies - @norberttech
- a68ae3 - dependencies - @norberttech
- 5a8c01 - phpstan - @norberttech
- 0c5830 - dependencies - @norberttech
- 413739 - labeler.yml - @norberttech
- ffa5c2 - dependencies - @norberttech
- 193040 - pr-check.yml - @norberttech
- fb496d - doctrine/dbal dependency - @norberttech
- 573ab1 - README - @norberttech
- 25aa47 - dependencies - @norberttech
- 6a3d0e - dependabot-auto-merge.yml - @norberttech
- d4ad4f - dependabot-auto-merge.yml - @norberttech
- 53ca28 - dependencies - @norberttech
- 8b147e - dependencies - @norberttech
- 796d42 - README - @norberttech
- d844d6 - README - @norberttech
- c9c197 - README - @norberttech
- 313cb8 - dependencies - @norberttech
- 60883f - README.md - @norberttech
- 6c5a3f - README.md - @norberttech
- 58fe18 - README.md - @norberttech
- d8858c - dependencies - @norberttech
- 2c54c0 - README.md - @norberttech
- 617d79 - README.md - @norberttech
- bc7653 - README.md - @norberttech
- 644bbf - README.md - @norberttech
- b8b05f - README.md - @norberttech
- 4f9c7e - dependnecies, cs fixes - @norberttech
- ab1ca3 - README.md - @norberttech
- a7139f - flow-php dependency - @norberttech
- 518e6a - dependabot-auto-merge.yml - @norberttech
- 0aeee7 - project to php 8.1 (#109) - @norberttech
- 5dc9ce - project to php 8.1 (#102) - @norberttech
- b8f3ae - project to php 8.1 (#102) - @norberttech
- 9d29c2 - project to php 8.1 (#111) - @norberttech
- 6d1456 - project to php 8.1 (#104) - @norberttech
- 160204 - project to php 8.1 (#107) - @norberttech
- cb99ee - project to php 8.1 (#102) - @norberttech
- 534a13 - to PHP 8.1 (#110) - @norberttech
- 6b96b2 - project to PHP 8.1 (#212) - @norberttech
- 56df9b - README.md - @norberttech
- 6521a2 - tools dependencies - @norberttech
- ad748a - multiple rows ar once. - @DawidSajdak
- 0f01ff - dependencies - @norberttech
- 2844ae - dependncies - @norberttech
- 577e7d - dependencies - @norberttech
- d204d2 - dependencies - @norberttech
- 21d3ef - dependencies - @norberttech
- 5eb1d9 - dependencies - @norberttech
- 60942d - dependencies - @norberttech
- bee0b4 - dependencies - @norberttech
- 0f739f - dependencies - @norberttech
- eb8a5c - README.md - @norberttech
- c14ee8 - README by fixing smoe missing pieces and making bullet points lowercase - @norberttech
- 15c7c5 - README.md - @norberttech
- 247c2f - dependencies - @norberttech
- 44272b - README.md - @norberttech
- 42fb80 - README.md - @norberttech
- 7ff2da - README.md - @norberttech
- a6bea0 - doctrine dbal - @tomaszhanc
- 5714e6 - tools dependencies - @tomaszhanc
- 56b836 - composer lock (#56) - @tomaszhanc
- d73a8d - composer.json - @tomaszhanc
- 64031f - dependencies - @tomaszhanc
- 83dc98 - pull-request-description-check.yml - @tomaszhanc
- 56cc82 - Adapters and Extensions section - @norberttech
- bf5960 - README.md - @norberttech
- 424aa9 - README.md - @norberttech
- 6113d9 - README.md - @norberttech
- a7c4a4 - dependencies (#5) - @norberttech
- 758afc - dependencies - @norberttech
- 8fc505 - README.md - @norberttech
- 15cc7c - README.md - @norberttech
- e3d99d - tests.yml (#2) - @norberttech
- 4098cb - README.md - @norberttech
- 8f6cb0 - README.md - @norberttech
- 4ec891 - README.md - @norberttech
- be775d - docs - @norberttech
- 6d2a31 - tools dependencieS - @norberttech
- 63633c - docs - @norberttech
- c66f6f - pull-request-description-check.yml - @norberttech
- 55faa8 - README.md - @norberttech
#Removed
- #342 - Remove support for not maintained Doctrine DBAL versions - @stloyd
- #331 - Removed not reachable throw in a
match()inMathOperationTransformer&MathValueOperationTransformer- @stloyd - #177 - psalm-immutable annotation from transformers and extractors - @norberttech
- #103 - safe_mode argument from all loaders constructors - @norberttech
- fd8072 - github actions and tools settings from readonly repositories - @norberttech
- 155e5d - failing test in dbal platform - @norberttech
- 6b7826 - uuid dev dependency - @norberttech
- c07e08 - hard doctrine dbal dependency (#104) - @norberttech
- 94b36a - XML Entry (#103) - @norberttech
- a58cef - unused php extensions dependencies - @norberttech
- 838278 - psalm config - @norberttech
- 28579b - deprecated code - @norberttech
- b255e9 - callbacks from pipeline process (#195) - @norberttech
- 0e835c - DateEntry and fixed DateTimeEntry::value (#64) - @norberttech
- bd6bae - php extensions dependencies - @norberttech
- 2777ce - tests at windows on github - @norberttech
- 57c585 - redundant workflow - @norberttech
- 420f4c - unused php extension from dev requirements - @norberttech
#Contributors
- @alexislefebvre
- @Bellangelo
- @bendavies
- @blacksmith-sh[bot]
- @broncha
- @christianc1
- @codedmonkey
- @darenas31415
- @DawidSajdak
- @drupol
- @f-lapinski
- @flavioheleno
- @gCass
- @ghost
- @inmanturbo
- @jaapio
- @jdecool
- @jguittard
- @jmortlock
- @jpiatko
- @jwojtyra-aterian
- @Krizhnikov
- @leith
- @mleczakm
- @MrHDOLEK
- @norbertmwk
- @norberttech
- @owsiakl
- @paul-court
- @peter279k
- @radozato
- @rzarno
- @scyzoryck
- @sprtk-ches
- @stloyd
- @szepeviktor
- @tomaszhanc
- @voku
- @Wiktor6
- @Wirone
- @xaviermarchegay
- @zenas1210
Generated by Automation