Skip to content

docs: explain versioning guarantees and format evolution - #9947

Merged
connortsui20 merged 12 commits into
developfrom
ct/versioning-docs
Sep 23, 2026
Merged

connortsui20 merged 12 commits into
developfrom
ct/versioning-docs

Conversation

@connortsui20

@connortsui20 connortsui20 commented Sep 18, 2026

Copy link
Copy Markdown
Member

Summary

Explains backward compatibility and how newer writers can target older readers, with separate practical guidance and design documentation. Distinguishes current guarantees from planned compressor behavior.

Changes

Adds an older-reader example, Rust configuration, a writer-to-reader diagram, a full compatibility matrix with explanatory footnotes, and an edition registry. The proof remains in draft #9950. Validation was limited to source inspection.

@codspeed

codspeed Bot commented Sep 18, 2026

Copy link
Copy Markdown

Merging this PR will degrade performance by 4.31%

⚠️ Unknown Walltime execution environment detected

Using the Walltime instrument on standard Hosted Runners will lead to inconsistent data.

For the most accurate results, we recommend using CodSpeed Macro Runners: bare-metal machines fine-tuned for performance measurement consistency.

⚠️ Different runtime environments detected

Some benchmarks with significant performance changes were compared across different runtime environments,
which may affect the accuracy of the results.

Open the report in CodSpeed to investigate

⚡ 4 improved benchmarks
❌ 7 regressed benchmarks
✅ 2197 untouched benchmarks
⏩ 293 skipped benchmarks1

Warning

Please fix the performance issues or acknowledge them on CodSpeed.

Performance Changes

Mode Benchmark BASE HEAD Efficiency
Simulation decode_primitives[f32, (1000, 512)] 42 µs 59.6 µs -29.52%
Simulation take_fsl_u64_random[64, 10] 112.7 µs 138 µs -18.31%
WallTime dbp_assemble_kernel_avx512[(I128, 1024)] 463 ns 555 ns -16.58%
Simulation take_fsl_nullable_random[256, 10] 169.8 µs 197.1 µs -13.88%
WallTime dbp_assemble_kernel_avx2[(I128, 1024)] 464 ns 534 ns -13.11%
Simulation take_fsl_f16_random[256, 100] 204.9 µs 230.6 µs -11.17%
Simulation allocate_drop_arrow[65536] 90.6 µs 101.9 µs -11.05%
Simulation take_fsl_f16_random[16, 100] 179.5 µs 119.4 µs +50.3%
WallTime filtered_sink_i64_avx2[OneNullInEight] 26.2 µs 23 µs +13.6%
Simulation take_fsl_nullable_random[16, 100] 188 µs 165.7 µs +13.42%
WallTime dbp_split_kernel_mixed_null_avx2[(I128, 1024)] 1.2 µs 1.1 µs +12.03%

Tip

Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.


Comparing ct/versioning-docs (1f81692) with develop (a542cbd)

Open in CodSpeed

Footnotes

  1. 293 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

@connortsui20 connortsui20 added the changelog/docs A docs change label Sep 18, 2026
@connortsui20 connortsui20 changed the title docs: explain crate versioning and editions docs: explain versioning guarantees and format evolution Sep 20, 2026
@connortsui20
connortsui20 marked this pull request as ready for review September 21, 2026 13:49

@mprammer mprammer left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Overall, really good! I've left a few comments; feel free to take or leave them.

Comment thread docs/specs/versioning/compatibility.md Outdated
Comment thread docs/_static/versioning-flow.svg
Comment thread docs/specs/versioning/compatibility.md Outdated
Comment thread docs/specs/versioning/design.md Outdated
Comment thread docs/specs/versioning/design.md
@connortsui20

Copy link
Copy Markdown
Member Author

I rewrote a big chunk of this

Signed-off-by: "Connor Tsui" <connor.tsui20@gmail.com>
Signed-off-by: "Connor Tsui" <connor.tsui20@gmail.com>
Signed-off-by: "Connor Tsui" <connor.tsui20@gmail.com>
Signed-off-by: "Connor Tsui" <connor.tsui20@gmail.com>
Signed-off-by: "Connor Tsui" <connor.tsui20@gmail.com>
Signed-off-by: Connor Tsui <connor.tsui20@gmail.com>
Signed-off-by: Connor Tsui <connor.tsui20@gmail.com>
Signed-off-by: "Connor Tsui" <connor.tsui20@gmail.com>
Signed-off-by: Connor Tsui <connor.tsui20@gmail.com>
Signed-off-by: Connor Tsui <connor.tsui20@gmail.com>
Signed-off-by: Connor Tsui <connor.tsui20@gmail.com>
@connortsui20 connortsui20 added the action/preview-docs Keep docs previews enabled for this PR label Sep 21, 2026
@github-actions
github-actions Bot temporarily deployed to docs-preview/pr-9947 September 21, 2026 20:24 Inactive
Signed-off-by: Connor Tsui <connor.tsui20@gmail.com>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we not make this from a markdown system?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think its a bit hard, and not sure what is wrong with an svg

@robert3005 robert3005 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@connortsui20 can you follow up with maybe simpler diagrams in markdown?

@connortsui20
connortsui20 merged commit 9e8abca into develop Sep 23, 2026
101 of 102 checks passed
@connortsui20
connortsui20 deleted the ct/versioning-docs branch September 23, 2026 17:56

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this diagram is a bit misrepresentative and the bottom text is irrelevant

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would be better to have something that differentiates original encoding to revved encoding. Vertical partition in diagram maybe.

Something like

DBP array (1 child, doesn't support 128 and 256) <- serde -> decimal_byte_parts serialized

                                                                             | Encoding update

DBP array (1 - 4 children, supports 128 and 256) <- serde -> decimal_byte_parts serialized (v1) OR decimal_byte_parts serialized (v2)

connortsui20 added a commit that referenced this pull request Sep 23, 2026
## Summary

Addresses the [diagram
feedback](#9947 (comment))
and [suggested before/after
comparison](#9947 (comment))
from #9947. Shows how adding multi-child decimal support preserves the
v1 wire contract while adding v2.

## Changes

Separates the implementations before and after multi-child support,
labels their read/write paths, and removes the unrelated footer details.
Updates the example and caption to distinguish the implementation change
from serialization.

Signed-off-by: "Connor Tsui" <connor.tsui20@gmail.com>

This branch was successfully deployed

1 active deployment
docs-preview/pr-9947 1f81692c Deployed Sep 21, 2026 by github-actions[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

action/preview-docs Keep docs previews enabled for this PR changelog/docs A docs change

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants