Snapshot codec builders#26590
Merged
CraigMacomber merged 4 commits intomicrosoft:mainfrom Mar 17, 2026
Merged
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Adds a utility to snapshot all supported codec format schemas across versions, and updates several tests/snapshots to use it.
Changes:
- Introduced
snapshotCodecFormatshelper for capturing{ version, minVersionForCollab, schema }per codec version. - Updated/added tests and snapshot outputs to use versioned codec-format snapshots (e.g., Schema, DetachedFieldIndex).
- Refactored versioned codec builder typing/exports to expose schema for snapshotting.
Reviewed changes
Copilot reviewed 14 out of 14 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| packages/dds/tree/src/test/snapshots/snapshotTools.ts | Adds snapshotCodecFormats helper to snapshot all codec format versions. |
| packages/dds/tree/src/test/snapshots/schema.spec.ts | Adjusts schema snapshot encoding options (removes minVersionForCollab). |
| packages/dds/tree/src/test/snapshots/output/files/EncodedFieldBatch.json | Updates existing snapshot content to versioned format list. |
| packages/dds/tree/src/test/snapshots/output/codecFormats/formats_Schema_codec.json | Adds snapshot output for Schema codec formats across versions. |
| packages/dds/tree/src/test/snapshots/output/codecFormats/formats_DetachedFieldIndex_codec.json | Adds snapshot output for DetachedFieldIndex codec formats across versions. |
| packages/dds/tree/src/test/snapshots/index.ts | Re-exports snapshotCodecFormats. |
| packages/dds/tree/src/test/feature-libraries/schema-index/schemaSummarizer.spec.ts | Adds a codec format snapshot test for Schema codec builder. |
| packages/dds/tree/src/test/feature-libraries/chunked-forest/codec/format.spec.ts | Removes old single-schema snapshot test file. |
| packages/dds/tree/src/test/feature-libraries/chunked-forest/codec/codecs.spec.ts | Adds codec format snapshot test for fieldBatchCodecBuilder. |
| packages/dds/tree/src/test/core/tree/detachedFieldIndexCodec.spec.ts | Adds codec format snapshot test for DetachedFieldIndex codec builder. |
| packages/dds/tree/src/core/tree/detachedFieldIndexCodecs.ts | Updates build options typing to ICodecOptions and makes fields readonly. |
| packages/dds/tree/src/codec/versioned/index.ts | Removes makeVersionedValidatedCodec export. |
| packages/dds/tree/src/codec/versioned/codec.ts | Refactors versioned codec typing to propagate schema; changes builder generics. |
| packages/dds/tree/src/codec/index.ts | Removes makeVersionedValidatedCodec export from the main codec barrel. |
CraigMacomber
commented
Mar 11, 2026
| TContext, | ||
| TFormatVersion extends FormatVersion, | ||
| TBuildOptions extends CodecWriteOptions, | ||
| TBuildOptions extends ICodecOptions = ICodecOptions, |
Contributor
Author
There was a problem hiding this comment.
These are reordered so cases which only want to specify TBuildOptions (which is the main thing impacting the exposed API) can do so without having to specify default values for the others.
Josmithr
reviewed
Mar 11, 2026
Josmithr
reviewed
Mar 11, 2026
Josmithr
approved these changes
Mar 11, 2026
Co-authored-by: Joshua Smithrud <54606601+Josmithr@users.noreply.github.com>
Josmithr
approved these changes
Mar 11, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Add a util for snapshotting the format for all versions of a codec, and use it for a few codecs.
Reviewer Guidance
The review process is outlined on this wiki page.