feat(std/json-schema): $dynamicRef, $dynamicAnchor and the 2020-12 meta-schemas #574
Loading…
Reference in a new issue
No description provided.
Delete branch "loop/567-dynamic-ref"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #567
Task: step 2b of epic #80: JSON Schema dynamic references and the 2020-12 meta-schemas in
std/json-schema.What:
$dynamicRef/$dynamicAnchorwith a dynamic scope (outermost resource with the same-named dynamic anchor wins),$vocabularyread (unknown required vocabulary refused), dynamicRef suite cases enabled.src/metaschema.trb, lazily parsed, a caller's own document under the same URI wins), root$schemavocabularies restrict evaluated keywords, meta-schema exclusions removed from the suite, docs andskills/regenerated.Deviation from the issue's split: the
vocabularysuite file runs in commit 2, not 1, because it needs the bundled meta-schemas.Test: locally
json-schema.test.trb51 passed,suite.test.trb885 passed,torb format --checkclean,check-commits.shclean. Full gates in CI.Follow-ups:
unevaluated*andformatare step 3; only the root$schemadecides vocabularies; a requiredformat-assertionvocabulary is refused; compiler bug: a free function with the same name as a private static method of another type mis-resolves (IR internal error).std/json-schema(step 2b of #80) #567std/json-schema(step 2b of #80) #567Review of
ec540cb:$schema); suite filesdynamicRefandvocabularyenabled, 7 meta-schema exclusions removed. CI green on this head (tier A, tier B, bootstrap, same-C, playground, pdisc, commit messages).dynamicLookupfalls back to the static target for pointer fragments, plain anchors and unresolved resources; outermost dynamic-scope match wins; cycle guard (activemark) is applied to$dynamicReftoo. Unknown required vocabularies are refused with the URI and a pointer; a missing custom$schemayields a$schemavalidation error naming it.vocabularysuite file landing in commit 2 is explained in the body.docs/standard-library/json-schema.md, index and regeneratedskills/updated.metaSchemaUrisexported.Non-blocking: none. The compiler bug named in the follow-ups should get its own issue.
Merging with rebase to keep the two Conventional Commits.