Skip to content

Conversation

@norberttech
Copy link
Member

Resolves: #xxx

Change Log


Changed

  • SpanEvent timestamp changed from nanoseconds (int) to DateTimeImmutable for better type safety and consistency
  • span_event() DSL function now requires explicit timestamp parameter
  • Span::recordException() now requires explicit timestamp parameter

Removed

  • GenericEvent::now() method - use GenericEvent::create() with explicit timestamp instead
  • Carrier::keys() method from propagation interface - unused in the codebase

Fixed

  • Mermaid diagrams responsiveness on documentation pages - diagrams now scale properly and don't overlap

- changed: SpanEvent timestamp changed from nanoseconds (int) to
DateTimeImmutable for better type safety and consistency
- changed: span_event() DSL function now requires explicit timestamp
parameter
- changed: Span::recordException() now requires explicit timestamp
parameter
- removed: GenericEvent::now() method - use GenericEvent::create() with
explicit timestamp instead
- removed: Carrier::keys() method from propagation interface - unused in
the codebase
- fixed: Mermaid diagrams responsiveness on documentation pages -
diagrams now scale properly and don't overlap
@norberttech norberttech added this to the 0.31.0 milestone Jan 16, 2026
@norberttech norberttech moved this from Todo to In Progress in Roadmap Jan 16, 2026
@github-actions
Copy link
Contributor

github-actions bot commented Jan 16, 2026

Flow PHP - Benchmarks

Results of the benchmarks from this PR are compared with the results from 1.x branch.

Extractors
+--------------------------+--------------------------------+------+-----+-----------------+-------------------+-----------------+
| benchmark                | subject                        | revs | its | mem_peak        | mode              | rstdev          |
+--------------------------+--------------------------------+------+-----+-----------------+-------------------+-----------------+
| CSVExtractorBench        | bench_extract_10k              | 1    | 2   | 6.285mb +0.01%  | 478.643ms -6.04%  | ±1.43% -60.98%  |
| DbalExtractorBench       | bench_extract_10k_keyset       | 1    | 2   | 41.962mb -0.01% | 357.918ms -10.90% | ±3.42% -44.94%  |
| DbalExtractorBench       | bench_extract_10k_limit_offset | 1    | 2   | 41.938mb +0.02% | 342.447ms +0.43%  | ±4.15% +139.67% |
| ExcelExtractorBench      | bench_extract_10k_ods          | 1    | 2   | 67.416mb +0.00% | 1.414s +4.35%     | ±9.07% +343.52% |
| ExcelExtractorBench      | bench_extract_10k_xlsx         | 1    | 2   | 68.280mb +0.00% | 2.219s -2.51%     | ±0.95% -73.20%  |
| JsonExtractorBench       | bench_extract_10k              | 1    | 2   | 7.003mb +0.00%  | 1.437s -6.84%     | ±1.12% -41.37%  |
| ParquetExtractorBench    | bench_extract_10k              | 1    | 2   | 12.113mb +0.00% | 12.507s -8.56%    | ±2.47% -67.58%  |
| PostgreSqlExtractorBench | bench_extract_10k_cursor       | 1    | 2   | 43.589mb -0.03% | 357.504ms -0.95%  | ±1.42% +91.26%  |
| PostgreSqlExtractorBench | bench_extract_10k_keyset       | 1    | 2   | 43.554mb +0.08% | 579.886ms -1.02%  | ±3.95% +408.00% |
| PostgreSqlExtractorBench | bench_extract_10k_limit_offset | 1    | 2   | 43.561mb +0.01% | 530.243ms -2.48%  | ±3.81% +191.32% |
| TextExtractorBench       | bench_extract_10k              | 1    | 2   | 6.276mb +0.01%  | 87.478ms -7.69%   | ±1.17% -83.88%  |
| XmlExtractorBench        | bench_extract_10k              | 1    | 2   | 6.296mb +0.01%  | 929.079ms +12.45% | ±3.84% +72.30%  |
+--------------------------+--------------------------------+------+-----+-----------------+-------------------+-----------------+
Transformers
+---------------------------------+--------------------------+------+-----+------------------+-------------------+----------------+
| benchmark                       | subject                  | revs | its | mem_peak         | mode              | rstdev         |
+---------------------------------+--------------------------+------+-----+------------------+-------------------+----------------+
| RenameEachEntryTransformerBench | bench_transform_10k_rows | 1    | 2   | 27.075mb +0.00%  | 114.075ms -8.71%  | ±1.82% -71.00% |
| RenameEntryTransformerBench     | bench_transform_10k_rows | 1    | 2   | 182.340mb +0.00% | 158.782ms -11.56% | ±5.25% -31.78% |
+---------------------------------+--------------------------+------+-----+------------------+-------------------+----------------+
Loaders
+-----------------------+---------------------+------+-----+------------------+-------------------+-----------------+
| benchmark             | subject             | revs | its | mem_peak         | mode              | rstdev          |
+-----------------------+---------------------+------+-----+------------------+-------------------+-----------------+
| CSVLoaderBench        | bench_load_10k      | 1    | 2   | 102.363mb +0.02% | 133.671ms +5.26%  | ±0.74% -71.93%  |
| DbalLoaderBench       | bench_load_10k      | 1    | 2   | 108.747mb +0.02% | 698.916ms +0.38%  | ±4.36% +118.36% |
| ExcelLoaderBench      | bench_load_10k_ods  | 1    | 2   | 102.878mb +0.01% | 368.038ms +9.07%  | ±2.49% +152.62% |
| ExcelLoaderBench      | bench_load_10k_xlsx | 1    | 2   | 103.024mb -0.03% | 341.906ms -0.22%  | ±9.10% +425.63% |
| JsonLoaderBench       | bench_load_10k      | 1    | 2   | 102.406mb -0.04% | 116.634ms +1.16%  | ±5.35% +42.51%  |
| ParquetLoaderBench    | bench_load_10k      | 1    | 2   | 130.419mb +0.00% | 3.083s +9.34%     | ±7.68% +736.05% |
| PostgreSqlLoaderBench | bench_load_10k      | 1    | 2   | 110.442mb +0.02% | 664.967ms +10.58% | ±3.50% +661.01% |
| TextLoaderBench       | bench_load_10k      | 1    | 2   | 107.577mb +0.02% | 41.131ms -11.73%  | ±1.35% -21.52%  |
+-----------------------+---------------------+------+-----+------------------+-------------------+-----------------+
Building Blocks
+-------------------+-----------------------------------+------+-----+------------------+-------------------+------------------+
| benchmark         | subject                           | revs | its | mem_peak         | mode              | rstdev           |
+-------------------+-----------------------------------+------+-----+------------------+-------------------+------------------+
| TypeDetectorBench | bench_type_detector               | 1    | 2   | 43.810mb +0.00%  | 431.242ms -4.00%  | ±3.39% -35.32%   |
| TypeDetectorBench | bench_type_detector               | 1    | 2   | 12.868mb +0.00%  | 89.583ms -1.59%   | ±3.21% -29.98%   |
| EntryFactoryBench | bench_entry_factory               | 1    | 2   | 128.176mb +0.00% | 747.548ms -26.49% | ±0.45% -62.15%   |
| EntryFactoryBench | bench_entry_factory               | 1    | 2   | 67.357mb +0.00%  | 393.802ms -10.56% | ±5.13% +679.91%  |
| EntryFactoryBench | bench_entry_factory               | 1    | 2   | 18.446mb +0.00%  | 88.627ms -2.91%   | ±3.81% +457.58%  |
| RowsBench         | bench_chunk_1_000_on_10k          | 1    | 2   | 111.311mb -0.00% | 637.990μs -8.86%  | ±0.78% -8.57%    |
| RowsBench         | bench_diff_left_100_on_1k         | 1    | 2   | 111.246mb +0.00% | 112.735ms +0.85%  | ±7.99% +41.13%   |
| RowsBench         | bench_diff_right_100_on_1k        | 1    | 2   | 111.128mb +0.01% | 102.098ms -3.48%  | ±7.38% +481.61%  |
| RowsBench         | bench_drop_100_on_1k              | 1    | 2   | 111.106mb -0.01% | 56.500μs -4.24%   | ±0.88% +0.00%    |
| RowsBench         | bench_drop_right_10_on_1k         | 1    | 2   | 111.106mb -0.02% | 58.505μs -4.87%   | ±4.27% +425.64%  |
| RowsBench         | bench_entries_on_1k               | 1    | 2   | 111.087mb -0.05% | 207.505μs -4.60%  | ±1.20% -85.03%   |
| RowsBench         | bench_filter_on_1k                | 1    | 2   | 111.060mb -0.01% | 995.935μs +10.05% | ±3.31% -6.30%    |
| RowsBench         | bench_find_on_1k                  | 1    | 2   | 111.071mb -0.03% | 981.500μs +2.45%  | ±9.02% +66.12%   |
| RowsBench         | bench_find_one_on_1k              | 1    | 2   | 111.062mb -0.00% | 932.000μs -1.34%  | ±7.19% -13.50%   |
| RowsBench         | bench_first_on_1k                 | 1    | 2   | 111.063mb -0.03% | 5.000μs -9.09%    | ±0.00% -100.00%  |
| RowsBench         | bench_merge_100_on_1k             | 1    | 2   | 111.074mb +0.03% | 55.000μs +7.84%   | ±0.00% -100.00%  |
| RowsBench         | bench_partition_by_on_1k          | 1    | 2   | 111.150mb -0.01% | 3.478ms +6.50%    | ±2.24% -67.95%   |
| RowsBench         | bench_schema_on_1k_identical_rows | 1    | 2   | 118.663mb -0.02% | 284.305ms -1.78%  | ±3.74% -38.52%   |
| RowsBench         | bench_sort_asc_on_1k              | 1    | 2   | 111.095mb +0.01% | 7.972ms +6.75%    | ±2.21% +40.31%   |
| RowsBench         | bench_sort_by_on_1k               | 1    | 2   | 111.109mb -0.01% | 7.180ms -3.82%    | ±1.98% +4.34%    |
| RowsBench         | bench_sort_desc_on_1k             | 1    | 2   | 111.094mb +0.02% | 7.204ms -9.20%    | ±2.98% -41.96%   |
| RowsBench         | bench_sort_entries_on_1k          | 1    | 2   | 111.960mb -0.04% | 8.245ms -2.78%    | ±2.59% +1526.75% |
| RowsBench         | bench_unique_on_1k                | 1    | 2   | 111.200mb +0.01% | 563.218ms -6.65%  | ±5.05% +126.99%  |
+-------------------+-----------------------------------+------+-----+------------------+-------------------+------------------+
Parquet Library
+--------------------+---------------------------------+------+-----+-----------------+-------------------+-----------------+
| benchmark          | subject                         | revs | its | mem_peak        | mode              | rstdev          |
+--------------------+---------------------------------+------+-----+-----------------+-------------------+-----------------+
| ParquetReaderBench | bench_page_headers              | 1    | 2   | 8.174mb +0.00%  | 2.341s -10.49%    | ±3.71% +61.01%  |
| ParquetReaderBench | bench_read_metadata             | 1    | 2   | 6.803mb +0.00%  | 11.135ms -1.70%   | ±2.15% +79.82%  |
| ParquetReaderBench | bench_read_schema               | 1    | 2   | 6.803mb +0.00%  | 11.183ms +0.07%   | ±5.15% +37.53%  |
| ParquetReaderBench | bench_read_values_all_columns   | 1    | 2   | 10.426mb +0.00% | 7.698s +9.07%     | ±8.44% +805.11% |
| ParquetReaderBench | bench_read_values_single_column | 1    | 2   | 7.657mb +0.00%  | 285.748ms -8.27%  | ±5.31% -45.88%  |
| ParquetReaderBench | bench_read_values_with_limit    | 1    | 2   | 8.173mb +0.00%  | 26.195ms +3.91%   | ±2.87% -1.41%   |
| ParquetWriterBench | bench_write_batch               | 1    | 2   | 11.373mb +0.00% | 281.055ms +11.61% | ±6.71% +85.53%  |
| ParquetWriterBench | bench_write_gzip                | 1    | 2   | 11.715mb +0.00% | 288.562ms +0.32%  | ±3.22% +79.13%  |
| ParquetWriterBench | bench_write_row_by_row          | 1    | 2   | 11.373mb +0.00% | 256.030ms +2.56%  | ±0.85% +99.06%  |
| ParquetWriterBench | bench_write_snappy              | 1    | 2   | 11.373mb +0.00% | 251.824ms -47.96% | ±3.89% +499.32% |
| ParquetWriterBench | bench_write_uncompressed        | 1    | 2   | 11.373mb +0.00% | 275.049ms -23.22% | ±5.77% -18.14%  |
+--------------------+---------------------------------+------+-----+-----------------+-------------------+-----------------+

@codecov
Copy link

codecov bot commented Jan 16, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 83.85%. Comparing base (99bb3be) to head (77aba4f).
⚠️ Report is 4 commits behind head on 1.x.
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@            Coverage Diff             @@
##              1.x    #2152      +/-   ##
==========================================
+ Coverage   83.62%   83.85%   +0.23%     
==========================================
  Files        1269     1269              
  Lines       45500    45476      -24     
==========================================
+ Hits        38051    38136      +85     
+ Misses       7449     7340     -109     
Components Coverage Δ
etl 90.54% <ø> (+0.89%) ⬆️
cli 85.76% <ø> (ø)
lib-array-dot 95.00% <ø> (ø)
lib-azure-sdk 60.01% <ø> (ø)
lib-doctrine-dbal-bulk 95.16% <ø> (ø)
lib-filesystem 80.44% <ø> (ø)
lib-types 88.98% <ø> (+1.51%) ⬆️
lib-parquet 68.25% <ø> (ø)
lib-parquet-viewer 83.04% <ø> (ø)
lib-snappy 90.18% <ø> (ø)
bridge-filesystem-async-aws 90.95% <ø> (ø)
bridge-filesystem-azure 89.38% <ø> (ø)
bridge-monolog-http 96.89% <ø> (ø)
bridge-openapi-specification 91.50% <ø> (ø)
symfony-http-foundation 74.11% <ø> (ø)
adapter-chartjs 86.33% <ø> (ø)
adapter-csv 89.30% <ø> (ø)
adapter-doctrine 92.00% <ø> (ø)
adapter-elasticsearch 97.02% <ø> (ø)
adapter-google-sheet 97.05% <ø> (ø)
adapter-http 65.94% <ø> (ø)
adapter-json 89.69% <ø> (ø)
adapter-logger 83.33% <ø> (ø)
adapter-meilisearch 97.77% <ø> (ø)
adapter-parquet 79.92% <ø> (ø)
adapter-text 86.84% <ø> (ø)
adapter-xml 82.66% <ø> (ø)
🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@norberttech norberttech merged commit a07fc34 into 1.x Jan 16, 2026
22 checks passed
@norberttech norberttech deleted the telemetry-adjustments branch January 16, 2026 22:44
@github-project-automation github-project-automation bot moved this from In Progress to Done in Roadmap Jan 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants