Skip to content

feat: prefixItems, unevaluatedItems, unevaluatedProperties support (C38) - #1182

Merged
jsenko merged 2 commits into
feature/json-schema-rewrite-cleanfrom
c38-modern-keywords-2
Aug 10, 2026
Merged

feat: prefixItems, unevaluatedItems, unevaluatedProperties support (C38)#1182
jsenko merged 2 commits into
feature/json-schema-rewrite-cleanfrom
c38-modern-keywords-2

Conversation

@jsenko

@jsenko jsenko commented Aug 10, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Normalize d4-d7 tuple items into compound prefixItems during conversion
  • Single-schema items stays as items — cross-version d7↔2020-12 works
  • diffFullSchemaPrefixItems: full tuple comparison with additionalItems awareness
  • diffFullSchemaItems: simplified to single-schema only
  • diffFullSchemaUnevaluatedItems/diffFullSchemaUnevaluatedProperties: schema comparison
  • 5 new test cases (prefixItems, cross-version tuple, unevaluatedProperties)

Context

C38 in #1042.

Test plan

  • All 160 CC data-driven tests pass (155 + 5 new)

jsenko added 2 commits August 10, 2026 16:26
Normalize d4-d7 tuple items into compound prefixItems during conversion.
Single-schema items stays as items. Cross-version comparison works:
d7 tuple items vs 2020-12 prefixItems land in the same compound field.

- D4/D6/D7 converters: normalizeItems splits tuple→prefixItems
- diffFullSchemaPrefixItems: full tuple comparison with additionalItems
  awareness (moved from diffFullSchemaItems)
- diffFullSchemaItems: simplified to single-schema only
- diffFullSchemaUnevaluatedItems: schema comparison (like additionalItems)
- diffFullSchemaUnevaluatedProperties: schema comparison (like additionalProperties)
5 new test cases:
- prefixItems basic compatibility (2020-12)
- prefixItems narrowed (added item)
- Cross-version: d7 tuple items vs 2020-12 prefixItems
- unevaluatedProperties added/removed (2019-09)
@jsenko
jsenko merged commit 5df4fef into feature/json-schema-rewrite-clean Aug 10, 2026
2 checks passed
@jsenko
jsenko deleted the c38-modern-keywords-2 branch August 10, 2026 17:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant