-
-
Notifications
You must be signed in to change notification settings - Fork 369
Comparing changes
Open a pull request
base repository: jsonrainbow/json-schema
base: 6.8.2
head repository: jsonrainbow/json-schema
compare: 6.9.0
- 10 commits
- 13 files changed
- 6 contributors
Commits on May 27, 2026
-
fix: allow "#", "?", and "?#" as valid URI references per RFC 3986 (#910
) ## Summary - Removes two incorrect checks in `RelativeReferenceValidator` that rejected `#`, `?`, and `?#` as invalid relative references - Moves these values to the valid test data provider and adds additional valid cases (`#section`, `?query#fragment`) Per [RFC 3986 Section 4.2](https://www.rfc-editor.org/rfc/rfc3986#section-4.2), these are valid relative-references composed of `path-empty` + fragment and/or query. The grammar allows zero-length paths, queries, and fragments. This is a real-world issue: Drupal's [Canvas](https://drupal.org/project/canvas) component builder and [Byte](https://drupal.org/project/byte) theme use `format: uri-reference` for link props in SDC (Single Directory Components), and `href="#"` is common in HTML. Fixes #909 --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Co-authored-by: Danny van der Sluijs <danny.vandersluijs@icloud.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Configuration menu - View commit details
-
Copy full SHA for e444d9d - Browse repository at this point
Copy the full SHA e444d9dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 00de879 - Browse repository at this point
Copy the full SHA 00de879View commit details
Commits on Jun 3, 2026
-
feat: add bin/run-test-case to run a single test suite case by descri…
…ption (#914) ## Description Adds a CLI tool that runs one test case from the official JSON Schema Test Suite by filename and human-readable description, making it faster to debug spec compliance without running the full 6928-test suite. ## Related Issue N/A ## Type of Change - [ ] Bug fix (non-breaking change which fixes an issue) - [X] New feature (non-breaking change which adds functionality) - [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected) - [ ] Documentation update - [ ] Code refactoring - [ ] Other (please describe): ## Checklist <!-- Mark completed items with an "x" --> - [X] I have read the [CONTRIBUTING](CONTRIBUTING.md) guidelines - [X] My code follows the code style of this project - [ ] I have added tests that prove my fix is effective or that my feature works - [ ] All new and existing tests pass - [ ] I have updated the documentation accordingly - [ ] My changes generate no new warnings ## Additional Notes <!-- Add any additional information that might be helpful for reviewers --> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Configuration menu - View commit details
-
Copy full SHA for 3cf163a - Browse repository at this point
Copy the full SHA 3cf163aView commit details -
Configuration menu - View commit details
-
Copy full SHA for fa5cd81 - Browse repository at this point
Copy the full SHA fa5cd81View commit details -
fix: annotate resolved schemas with dialect-aware id keyword (#912)
## Summary - `UriRetriever::retrieve()` now reads the root schema's `$schema` keyword to determine whether to annotate with `id` (Draft-3/4) or `$id` (Draft-6+) - Schemas without a `$schema` keyword default to `$id`, matching the library's Draft-6 default dialect - Updated `testRetrieveSchemaFromPackage` to assert structure instead of a brittle md5 hash ## Context `UriRetriever::retrieve()` unconditionally stamped `$jsonSchema->id = $resolvedUri` on every resolved schema. Draft-6 [renamed `id` to `$id`](https://json-schema.org/draft-06/json-schema-release-notes#backwards-incompatible-changes), but the annotation was never updated. This leaks a Draft-4 keyword into schemas resolved under Draft-6/7, causing errors in strict validators (e.g. Ajv: `NOT SUPPORTED: keyword "id", use "$id" for schema ID`). The dialect is detected from the root schema *before* pointer resolution, so sub-schemas inherit the correct keyword from their parent document. Internally safe — `SchemaStorage::findSchemaIdInObject()` already reads both `id` and `$id`. ## Test plan - [x] Full test suite passes (6928 tests, 0 failures) - [x] Verified Draft-04 meta-schema → `id`, Draft-07 → `$id`, no `$schema` → `$id` Fixes #911 --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Configuration menu - View commit details
-
Copy full SHA for a10f275 - Browse repository at this point
Copy the full SHA a10f275View commit details -
Configuration menu - View commit details
-
Copy full SHA for f45aaa1 - Browse repository at this point
Copy the full SHA f45aaa1View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4499dfa - Browse repository at this point
Copy the full SHA 4499dfaView commit details
Commits on Jun 5, 2026
-
fix: treat optional JSON Schema test suite cases as real tests (#913) (…
…#915) * fix: treat optional JSON Schema test suite cases as real tests (#913) Previously, any optional test that threw an exception or produced the wrong validation result was silently skipped via markTestSkipped, making regressions in optional test coverage invisible in CI. Remove the two dynamic markTestSkipped blocks so optional tests are treated identically to required tests. The 76 currently-failing optional tests are added explicitly to the $skip allowlist with comments explaining why each group is not yet supported (bignum, float-overflow, ecmascript-regex, cross-draft, idn-email, idn-hostname, iri, iri-reference, regex format, relative-json-pointer). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: Correct for +00:00 and zulu inputs * refactor: Allow run-test-case without tes, running all test from group * test: Skip more optional failling tests * fix: Correct for zulu when used with PHP > 8.0 --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Configuration menu - View commit details
-
Copy full SHA for eeef76b - Browse repository at this point
Copy the full SHA eeef76bView commit details -
Configuration menu - View commit details
-
Copy full SHA for 91eb113 - Browse repository at this point
Copy the full SHA 91eb113View commit details -
Configuration menu - View commit details
-
Copy full SHA for bd1bda2 - Browse repository at this point
Copy the full SHA bd1bda2View commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff 6.8.2...6.9.0