Repository navigation
Merge v1.4 to main - #1106
Merge v1.4 to main#1106AArnott wants to merge 1 commit into
Conversation
* Preserve Color.Empty when serializing Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * Keep nullable Color values distinct Use a boolean marker for Color.Empty so nullable null remains nil, and cover nullable color schemas across dialects.\n\nCo-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * Record nullable Color schemas Make nullable schema composition tolerate overlapping null branches and record the generated Color schemas for both dialects. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
🟡 Changes recommended
The newly introduced rejection path for a boolean true color marker lacks regression coverage.
1 open finding
What changed in this PR
Forward-merges the v1.4.82 Color.Empty preservation fix into main.
Changes:
- Encodes
Color.Emptyasfalse, preserving nullablenil. - Updates nullability-aware schemas and documentation.
- Adds round-trip and schema regression coverage.
| File | Description |
|---|---|
src/Nerdbank.MessagePack/Converters/BclConverters.cs |
Implements the new color encoding. |
src/Nerdbank.MessagePack/MessagePackConverter\1.cs` |
Handles nullable composed schemas. |
test/Nerdbank.MessagePack.TUnit/BuiltInConverterTests.cs |
Tests color round trips. |
test/Nerdbank.MessagePack.TUnit/SchemaTests.cs |
Tests nullable color schemas. |
test/.../Draft4/NullableColorSchema.schema.json |
Records Draft 4 color schema. |
test/.../Draft4/SubTypeSchema.schema.json |
Updates expected composition. |
test/.../Draft4/Surrogates.schema.json |
Updates expected composition. |
test/.../Draft2020_12/NullableColorSchema.schema.json |
Records Draft 2020-12 color schema. |
test/.../Draft2020_12/SubTypeSchema.schema.json |
Updates expected composition. |
test/.../Draft2020_12/Surrogates.schema.json |
Updates expected composition. |
docfx/docs/built-in-converters.md |
Documents the color wire representation. |
🧠 Review effort: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #1106 +/- ##
==========================================
+ Coverage 82.80% 82.85% +0.05%
==========================================
Files 259 259
Lines 21296 21327 +31
Branches 2810 2814 +4
==========================================
+ Hits 17634 17671 +37
+ Misses 2762 2756 -6
Partials 900 900
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
Closing: we only forward-merge v1.4 into main when actively working in main or right before a release from it. |

Forward-merge of v1.4 into main, bringing the Color.Empty fix (#1103) released in v1.4.82.