Skip to content

feat(ack): support Draft 2020-12 runtime import and export - #171

Open
leoafarias wants to merge 1 commit into
mainfrom
feat/json-schema-2020-12-runtime
Open

leoafarias wants to merge 1 commit into
mainfrom
feat/json-schema-2020-12-runtime

Conversation

@leoafarias

@leoafarias leoafarias commented Sep 28, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Extend Ack.fromJsonSchema() to the full required JSON Schema Draft 2020-12 validation suite:

  • Draft 2020-12 runtime validation: Support dynamic references ($dynamicRef / $dynamicAnchor), unevaluated keywords (unevaluatedProperties / unevaluatedItems), tuple validation (prefixItems), patternProperties, dependentRequired / dependentSchemas, minContains / maxContains, supplied dialects, offline standard meta-schemas, and opt-in format assertions (assertFormats: true).
  • Resource-preserving export by default: toJsonSchema() and toSchemaModel() preserve imported Draft 2020-12 resources by default. Add toJsonSchemaDraft7() and toSchemaModelDraft7() to lower compatible imported schemas into legacy Draft-7 definitions; imported schemas that require 2020-12-only semantics reject Draft-7 lowering explicitly.
  • Conformance suite: Validate all 384 required upstream Draft 2020-12 test groups against source validation and export/re-import using the pinned conformance corpus (test(ack): pin Draft 2020-12 conformance fixtures #169).

Stack (Ack 2.0)

@leoafarias
leoafarias added this pull request to stack #172 September 28, 2026 23:11
leoafarias added a commit that referenced this pull request Sep 29, 2026
Ack 1.7 excludes the Draft 2020-12 runtime (#171) and JSON Schema model
generator (#167). Restore unreleased changelog headings, 1.6.2 package
versions, and main's dependency bounds so this branch carries no 1.7
release claims. The 2.0 release PR will set final versions.
@leoafarias
leoafarias removed this pull request from stack #172 September 29, 2026 14:10
@leoafarias
leoafarias added this pull request to stack #177 September 29, 2026 14:10
leoafarias added a commit that referenced this pull request Sep 29, 2026
Align the six publishable packages at 1.7.0-beta.1 and move unreleased
notes into the 1.7.0-beta.1 changelog sections. The release includes
shared inference, model adapter schemas, CodecSchema.canEncode, typed
copyWith, stricter constrained-Set validation, the @AckInfer schema
shorthand (#174), generated string-literal escaping (#164), and explicit
schema descriptions (#176). Update PUBLISHING.md for this candidate.

The Draft 2020-12 runtime (#171), JSON Schema-to-Dart generation (#167),
and the decoder error contract (#163) are deferred to 2.0.
@leoafarias
leoafarias marked this pull request as draft September 29, 2026 22:03
@leoafarias leoafarias added the 2.0 Planned for Ack 2.0 label Oct 1, 2026
@leoafarias
leoafarias force-pushed the feat/json-schema-2020-12-runtime branch 3 times, most recently from e9fc95f to 0010b9e Compare October 9, 2026 14:09
@leoafarias
leoafarias force-pushed the feat/json-schema-2020-12-runtime branch from 0010b9e to 64b22e2 Compare October 9, 2026 17:23
@leoafarias
leoafarias marked this pull request as ready for review October 12, 2026 13:11

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

2.0 Planned for Ack 2.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant