Skip to content

Commit

Permalink
Squashed 'JSON-Schema-Test-Suite/' changes from 689d2f28..7950d9e0
Browse files Browse the repository at this point in the history
7950d9e0 Merge pull request #674 from jmigual/feature/alah
e6a089ae Changed description about `main` branch
b3c07477 Add comment about live at head philosophy
ab4bd012 Merge pull request #671 from marksparkza/schemaloc-fragment
e7aba097 Include fragment in schemaLocation
6afa9b38 Merge pull request #664 from santhosh-tekuri/empty-tokens
e4bceb1a Bump the python-jsonschema version used for the sanity check.
8025fc0d Merge pull request #128 from iainbeeston/foundations-of-json-schema-paper
cf767707 Make all root $ids absolute URIs
07fd389a Added test cases from Foundations of JSON Schema research paper
1008edce ref: test empty tokens in json-pointer
9beb3cfb Merge pull request #627 from json-schema-org/ether/output-readme-fixes
f2b0490b minor edit to trigger gh action
c305ce54 Merge pull request #669 from hauner/typo
5e2845c1 Merge pull request #668 from hauner/if-without-then-else-creates-annotations
2f1df229 typo
c1fae002 test unevaluated* can see annotations from if without then/else
987a4c8f Merge pull request #666 from json-schema-org/gregsdennis/file-refs
90b2a58c fix *nix uris
68d18c6a rename tests to fix sanity check
e9166bcb fix indentation
1d1ec749 add file-id ref tests
fb60ed17 Merge pull request #663 from json-schema-org/ether/restore-format-tests
f32cd8b8 Revert "Revert "by default, "format" only annotates, not validates""
47958f82 Merge pull request #654 from santhosh-tekuri/output-escape
5262997e Merge pull request #661 from santhosh-tekuri/2019-output
ce2c1657 output-tests: correct 2019 output-schema.json
0788c226 Merge pull request #659 from jvtm/python311-date-iso8601-values
4248f3c7 test: cover ISO8601 date values accepted by Python 3.11 datetime module
19947eaa test: unevaluatedProperties not affected by propertyNames
c9d94385 output: ensure ~ and / are escaped in json-pointer
82927063 Check that large integers are multiples of small multipleOf
b59543f6 Merge pull request #647 from santhosh-tekuri/ref-start-slash
6e5d45d7 Merge pull request #646 from santhosh-tekuri/vocab-optional
0311dfda Merge pull request #651 from santhosh-tekuri/dynamicref-without-anchor
4503eeaf test: A $dynamicRef without anchor in fragment behaves identical to $ref
39af4c1b test: $ref with absolute-path-reference
880c9933 test/vocabulary: ignore unrecognized optional vocabulary
fd80307f Merge pull request #642 from santhosh-tekuri/time-2digit
a76ae650 Merge pull request #645 from json-schema-org/gregsdennis/add-vocab-tests-link
0e2b4eef Merge pull request #643 from 0xSudarshan/main
2b78ccfc slight tweaking to wording
8716c405 add link for vocab test suite to readme
c49ba544 Fix an incorrect $schema identifier.
f0e5ce71 Added  test for schema-items alongside "ignored" additionalItems
76dae88a Merge pull request #640 from santhosh-tekuri/refRemote-anchor
cb82e237 Merge pull request #641 from json-schema-org/gregsdennis/unevaluated-not-draft-next
e4afd233 test/format: hour, min, sec must be two digits
7efd5131 fix unevaluatedProperties/not tests for draft-next
e39c6ea6 test/refRemote: anchor within remote ref
bf51b32f Merge pull request #639 from json-schema-org/additionalItems-unevaluatedItems
52160b36 Add a test for 2019's interaction between additional/unevaluatedItems
69a09a33 Fixed tests for annotation collection inside not.
e4e1a220 Draft7 if/then/else ref tests need to be wrapped in an allOf.
f5bd2f6c Merge pull request #632 from json-schema-org/ether/annotations-inside-not
626b433e test that annations are collected inside a "not"
f57d3e0c Merge pull request #631 from json-schema-org/if-then-else-ref
3b8c281f Ensure $ids are collected within if/then/else schemas.
02905b21 Fix a sloppy bug in the sanity checks in CI.
f6b2324b minor spelling and markdown formatting fixes; `valid` has also been removed from the tests
d21ed578 Merge pull request #628 from json-schema-org/catch-unknown-keywords
42b4c364 Ensure we don't use unknown keywords unless intended.
6b3cac42 Merge pull request #624 from json-schema-org/gregsdennis/propertyDependencies-fixups
ef6fb998 update unevaluatedProperties test to define foo with properties
19130148 add definition for expectedTypes
197cb33a fixed propertyDependencies $schema & $id; removed invalid test cases
a390e321 Merge pull request #619 from json-schema-org/gregsdennis/output-tests
b538fe75 Bump the validator version used for suite sanity checks.
c2644010 Blacked.
8ee43236 add some more detail in readme; add redundant keyword to some tests
c8835529 absoluteKeywordLocation is not required when there is no `$ref`
1a860cfb added $id to all output schemas; reindexed test cases to 0 (instead of 1)
930e87e7 add clarification on no changes between 2019 and 2020
f5197e08 Fix the output check to ignore output-schema.json.
a8b28057 Minor style tweaks.
3413863a Inline the relevant parts of the test schema to output tests.
dc6e8204 Merge remote-tracking branch 'origin/main' into gregsdennis/output-tests
b1267590 Update bin/jsonschema_suite
b40a6cac Update bin/jsonschema_suite
691d039c update $dynamic* value in schemas
d263bf01 add blank lines at the end of all the files
78c88827 Merge pull request #618 from json-schema-org/gregsdennis/contentschema-should-fail-content
5cbc53bc Merge pull request #613 from santhosh-tekuri/rjp-multidigit
bb000ce9 Merge pull request #620 from json-schema-org/ether/remove-unused-remotes
c4c490f1 Merge pull request #617 from json-schema-org/gregsdennis/dynamicAnchor-inside-propertyDependencies
0189831a remove schemas that are never referenced
cf1b9424 Merge pull request #610 from handrews/rm-remotes
daf42a74 attempt to update ci for output tests
d6490e81 move anchors into defs
2f9d117c Merge pull request #616 from json-schema-org/gregsdennis/propertyDependencies-and-unevaluated
4e5649cd move tests to draft-next
46bc7ace add readme note about output-schema.json files
efeee1d4 update tests to reference output schemas
147df486 add output schemas
fe25ba95 updated readme; fixed $schema typo; tests for 2020-12
87c184d2 add .editorconfig; rearrange folders
e9f54002 initial run at creating output tests
a41f2f6c added type:object to contentSchema schemas
2f50e786 add tests for $dynamicAnchor in multiple branches of propertyDependencies
4794a199 add tests for unevaluatedProperties seeing inside propertyDependencies
27cc299f Add RJP test 'multi-digit integer prefix'
716b95d9 Merge pull request #612 from santhosh-tekuri/rjp-positive
320c804d Add RJP test 'explicit positive prefix'
c8f210c3 Merge pull request #611 from santhosh-tekuri/time-alpha
3faeb222 add time test 'contains letters'
642441f2 Merge pull request #603 from santhosh-tekuri/uuid-nonstr
94d5043c add non-string uri tests
0c81374a Remove unneeded remotes
97a3e215 Merge pull request #608 from json-schema-org/json-everything-uses-the-test-suite
bdaf7e8b added json-everything to 'who uses' section of readme; removed manatee.json (deprecated)
f00ec100 Merge pull request #606 from santhosh-tekuri/duration-nounit
13448072 Merge pull request #607 from santhosh-tekuri/time-offsetprefix
dd4538ee Test time format 'offset not starting with plus or minus'
80fe2db1 test duration format 'element without unit'
38ea1511 Merge pull request #604 from santhosh-tekuri/time-offset
613ec170 second fraction, not offset
ee4bd4eb Add time format test with second fraction, no offset
86c2517c Merge pull request #605 from santhosh-tekuri/rjp-empty
cfe80006 Add relative-json-pointer test with empty string
31796b3b add non-string uuid tests
9251ebff Merge pull request #602 from santhosh-tekuri/format-assertion
69a36154 Fix vocabulary metaschema uris in format-assertion-*.json
0fa89d2a Merge pull request #595 from json-schema-org/ether/cousins-reverse
2b1f711d Merge pull request #598 from flaksp/patch-1
104f9f98 Merge pull request #599 from tristanpenman/main
209ba640 Add Valijson to 'Who Uses the Test Suite'
47bf107c Fix typo in comment of "order of evaluation: $id and $anchor and $ref" suite
dee0edad Merge pull request #597 from json-schema-org/contributing
f54f00a2 Explicitly mention that one approval doesn't override other concerns.
e17668ec Add additional notes about writing good tests.
a6520db4 Add in a contributors document outlining the repo's process.                                                                                                                julian@Airm
6ce9bc4c Merge pull request #596 from json-schema-org/steering
8defd758 Add a note about the future TSC.
b9bb50bc also test allOf schemas presented in the reverse order
ed0b855e Merge pull request #594 from json-schema-org/differing-uris
ae065139 Merge pull request #593 from json-schema-org/gregsdennis-propertyDependencies-tests
6eaf7dff Merge pull request #586 from handrews/dollar-schema
0ba0976d more varied test cases
b78035ee Merge branch 'gregsdennis-propertyDependencies-tests' of github.com:json-schema-org/JSON-Schema-Test-Suite into gregsdennis-propertyDependencies-tests
8c2b46f7 rework functional tests to better illustrate purpose of keyword
33d9c648 Update tests/draft-next/propertyDependencies.json
de3f7691 Add tests for some more differing URI scenarios.
e5951050 additional 'ignore' tests with nested matches
fc6cee5a propertyDependencies non-string property value tests
99f3b60c add basic propertyDependencies tests
b5270c56 Update all draft-next $schema, $id, $ref.
dd343685 Copy remotes to draft-next without changes.
8919ce99 Add $schema to optional/format 2019-09 tests
d88c04ff Add $schema for optional/format 2020-12
da237da5 draft-specific 2020-12 remotes, $refs, and $ids
0eb6893f draft-specific 2019-09 remotes, $refs, and $ids
4cfead7b Fix #585 on Windows.
14d05dce Merge pull request #585 from json-schema-org/absolute-uri
b3c8672a Merge pull request #587 from json-schema-org/cross-draft-tests
b643e11f Tweak the remotes retrieval README language a bit more.
e2a681ac $comment -> comment
c0ba85b6 Remove accidental duplication
52eb2790 add draft 2020-12 -> draft 2019-09 test
c4ed16df add draft 2019-09 -> draft 7 test
3df4712a add draft 2019-09 -> draft 2020-12 test
dab94fac add draft 7 -> draft 2019-09 test
e8851f1a Add "$schema" to all document roots
8d653be4 Copy remotes to draft dirs, no changes yet
113a08e5 Optional tests for no $schema (2019-09+)
90983590 Update README to reflect $schema detection
be49e5b0 Add $schema to all 2019-09 tests
64793fe6 Add $schema for all 2020-12 tests.
0c90a5f9 Explicitly mention the base URI for those not using jsonschema_remotes.
79daf05b Emit fully absolute URIs from `jsonschema_suite remotes`.
dfcea626 Merge pull request #584 from json-schema-org/doi
e4a59d96 Add a badge for a Zenodo DOI.
597b1fb0 Ensure JS implementations don't traverse the prototype chain.
0015d524 Merge pull request #583 from santhosh-tekuri/defs
e14c68bb Replace '$defs' with 'definitions' in drafts 6,7
c4341bd0 Merge pull request #582 from santhosh-tekuri/defs
4ae2c9b9 Replace '$defs' with 'definitions' in draft 6,7
91ecacf6 Forward port a missing null instance property test.
fe3eda22 Apply #579 to case descriptions as well.
f8276408 Merge pull request #579 from json-schema-org/sanity-check-strengthening
2782d7c2 Fix two last clashing $ids in draft-next too.
e5d5e0a2 Also prevent 'tests that' from descriptions.
eaf06b1e Remove the last few 'shoulds' from items descriptions.
b7da24fb Kill more shoulds from ECMA and ref tests.
85899fdf More description cleanup for Bengali non-ASCII tests.
b84b900f Remove 'should' from a format test which anyhow needed a clearer description.
721397c1 Prevent tests from using 'should' in sanity check.
68f380c6 Fix the last non-unique case descriptions.
6383ef63 Remove mistakenly duplicated anyOf tests in draft{4,6,7}.
a5b459fa Make sure bignum cases have unique descriptions.
b82b18cd Assert case descriptions are also unique in sanity checks.
d3d08221 Also check case description length in sanity checks.
5e7804c5 Use subtests when running sanity checks.
8ade9234 Fix two last clashing $ids in draft-next too.
685ac631 Merge pull request #578 from json-schema-org/urn
5347f29e Deduplicate URIs in the URN tests.
87cf3257 Also add tests for refs with URN+pointer and URN+fragment.
96255eff Add some simple tests for URN base URIs.
fd9bcfbd Merge pull request #421 from willson-chen/bug601_addtestcase
13685a6c Forward port the nested ref test.
5be19e21 Give the nested ref schema a clearer name, and fix refs to it.
e9db2e58 subschema nested ref in remote ref
69acf529 Merge pull request #572 from json-schema-org/default-reviewers
26a51ca3 Merge pull request #575 from jdesrosiers/add-package-json
d0e80a96 Re-add package.json
88d69482 Merge pull request #573 from json-schema-org/handling-nulls-in-instances
bd653f34 fixed findings by julian
eab34ba6 fix `prefixItems` tests to actually use it (instead of `items`, copy-paste error)
6680a003 fixed typo in `type` declaration: surround with quotes
257f5220 added null-handling tests for unevaluatedItems
e3c007dd added null-handling tests for unevaluatedProperties
3d3bdf4e added null-handling tests for properties
54cc5703 added null-handling tests for patternProperties
28419842 added null-handling tests for contains
4d1a916a added null-handling tests for additionalItems
6e47a99a added null-handling tests for prefixItems; fixed indentation on previous commit
761d4b2b added null-handling tests for array-form items
6315a51d added null-handling tests for single-form items
278e5b3b added null-handling tests for additionalProperties
bce6b82a Set up default reviewers (the whole test suite team).
9cb7da92 Merge pull request #564 from json-schema-org/sanity-check-terminology
2a316683 Merge pull request #569 from spacether/feat_adds_new_python_consumer
fae0017d Removes idea files
8af12a3f Adds python-experimental to the users list
b7d13f4b Merge pull request #567 from json-schema-org/invalid-anchors
4811789d Also add an anchor test with valid prefix (but still invalid).
b62f97cc Add tests for invalid anchors.
af5075ca Merge pull request #568 from json-schema-org/ether/perl-implementations
dc5c91e9 update the list of Perl implementations
1047a1aa Merge pull request #565 from json-schema-org/update-test-schema
7967a87b Merge pull request #566 from json-schema-org/tidy-unevaluatedItems
b45a7878 Remove unnecessary type validation from unevaluatedItems tests.
2b536c02 Update the test schema to Draft 2020, and fix a bug in it.
39d1d24d Merge pull request #317 from Relequestual/#291
b683de5a Forward-port and reword the new unevaluatedItems test.
816441f4 Add tests for Single-schema items and unevaluatedItems Resolves #291
c7a0f3e9 Reconcile terminology in the sanity checker with the README
1e0ebd20 Merge pull request #563 from json-schema-org/update-sanity-checker
e1dbaebb Merge pull request #562 from json-schema-org/remove-conditional-id-tests-from-draft6
53da77f3 Update the sanity checker to use a version which supports 2019+.
5aff83e5 reintroduce tests without using if/then/else
9495e3e4 remove conditional $id tests from draft 6
d3f5cd43 Merge pull request #559 from json-schema-org/ether/revert-pr-376
f0f619d1 Merge pull request #560 from json-schema-org/ether/fix-383
fa791ada remove tests that are not valid for draft7
0f341dca Merge pull request #429 from notEthan/decimal_minItems
32ec6305 test validation of keywords which expect integers when their value has a decimal
f605fbfe Revert PR#376.
547330dd Tweak the markdown table syntax in the README.
28ed3022 Restructure the README further.
45d6e5e7 README: Add new content and update the structure
4de0966a Merge pull request #558 from yakimun/replace-definitions-with-defs
aad0f350 Replace definitions with  for 2019 and later drafts
0b777ffa Merge branch 'ether/more-anchor-and-id-tests'
d593591d Forward port the just-added tests to 2020 and next.
e157bc0b squash: use a unique $id to prevent namespace collisions across tests
1d5583de some tests of the interactions between $id, $anchor and $ref
07c45c0d Restore the dependencies tests as optional for 2019, 2020, and next
cf78d97d Handle differences in $ref for the location-independent ref remote.
c2b28e96 Forward port the just-added test to 2020 and draft-next.
64090104 Apply suggestion
f37aa47a Add tests for location-independent identifiers in remote ref
84177bde Merge pull request #556 from jviotti/gitignore-python
76f5a107 Merge pull request #555 from jviotti/delete-broken-js-tests
8b0ea0e7 Add a Python-based .gitignore definition
47e6e32a Remove the broken and obsolete JavaScript-based test integration
d40b3e62 Fix two remaining future-keywords tests in draft 4.
c23c720a Merge branch 'ether/unrecognized-keywords'
ea68a4ff Move the future keywords tests to optional.
900695b7 squash: add $schema keyword to be clear that strict conformance is requested
acfd00c6 squash: contains does not exist in draft4
f506651a squash: fix minContains
b666c202 sq - add $dynamic*, prefixItems to drafts 4,6,7 as well and fix keyword name
d14242e6 squash: fix test names
f1efe00d squash: $defs - definitions
c295358e squash: remove tests of $anchor and $ref
9defa772 squash: add prefixItems: another new 2020-0X keyword
ebb359df squash: add $recursiveRef tests from #391
90bd7fb2 squash - fix 2019-09 future-keywords
e8e64efa very basic test of $dynamicRef
6c027209 rename files to future-keywords.json
cb064e96 some tests for keywords added in later drafts
e42e8417 \a is not a valid ECMA 262 regex.
387d690a Back/forward port the tests from #550 to 2019 and next.
528fb622 Merge pull request #550 from EpicWink/unevaluated-on-invalid
b1fb4559 Mark tests as expected-to-pass
db3fdd3f Merge pull request #551 from EpicWink/bin-cli-command-required
4d4c636f Require command in test-app invocation args
72463d44 Add tests for 'unevaluatedX' on invalid types
060caae0 Merge pull request #467 from gene-hightower/strict-rfc-grammar
995932c7 Additional RFC-5321 Mailbox tests
637f0ac3 Merge pull request #542 from jdesrosiers/dyanmicref-no-bookending
87944e52 Merge pull request #543 from jdesrosiers/update-vocabulary-for-draft-next
07b90e3b Merge pull request #544 from frawa/list-typed-json
365349ad list typed-json in new Scala section
9d1efc27 Update vocabulary tests for draft-next
89f59caa Update dynamicRef tests for bookenending removal
3731ed32 Merge pull request #541 from json-schema-org/unknown-formats
2f2234da unknown format requirement is in draft 4 also
e12088db added tests for unknown formats
3998c852 Remove dead code from the sanity checker.
b038102d Add some docstrings for the sanity checker.
20fb14bd Merge pull request #537 from jimmylewis/removeInvalidTest
d07162bc Remove invalid draft6 test using draft7 constructs
26f74bef Add org badges
6e87b5bd Merge pull request #529 from yakimun/remove-non-canonical-uris
c5ba7b28 Replace non-canonical URIs with canonical ones
8d96d15f Merge pull request #527 from johnnoone/patch-2
b7f657f7 Update vocabulary.json
e82bfdfa s/future/next/ in schema reference
9263b525 Merge pull request #525 from DrGFreeman/524-uniqueItems-tests
2c536888 Add tests instead of modifying existing tests
de84a59c Add and modify uniqueItems tests
329efe59 Update the language around coverage, draft2020-12 is just as usable :)
06813127 Ensure dependentSchemas also properly ignores non-object instances.
ba3a9053 Merge pull request #523 from olegshtch/extendible-schema-test-suite
458e7ac1 Add test suite to test dynamic reference and anchor link and their independency of order
fe405a11 draft/future -> draft/next in $refs also
3d9d35a2 Merge pull request #522 from json-schema-org/ether/draft-next
11b5076f rename draft-future to draft-next
0245dcc9 Merge pull request #521 from olegshtch/add-recursive-ref-test-suite
e9fb9cf4 Merge pull request #517 from ChALkeR/chalker/date-time-leap
f1b230c6 Add test from Appendix C.  Example of recursive schema extension of the draft.
bb2e3731 Test date-time with leap second on a wrong hour/minute
8b797cfe Merge pull request #520 from json-schema-org/ether/custom-dialect
5d23f311 Add tests for invalid date-time past leap second
63f8e93c Improve leap seconds test in optional/format/date-time
3d00f593 test the use of the $vocabulary keyword in a custom metaschema
54440eab Merge pull request #516 from ChALkeR/chalker/ipv6
e7b22e1c Fix the sanity check by pinning.
8891d810 Merge pull request #519 from json-schema-org/ether/custom-dialect
5f5fccda test the format-assertion vocabulary with a custom metaschema
3fcee386 Merge pull request #512 from json-schema-org/ether/formats-and-non-strings
b349b879 test that format-assertions are valid with non-string types
8e5b2f10 fix needless inconsistencies in format tests between drafts
02d7cb59 Correct "ref with sibling id" tests
1649470b More ipv6 tests to increase coverage
7334b4c7 Merge pull request #505 from ChALkeR/chalker/fix-unicode
0fb2d278 Consolidate optional/unicode into optional/ecmascript-regex
4f8c6d7b unevaluatedProperties: deep dynamic + refs
9103f3b6 $ref wit id does not test what it is indented to do
f300dd15 Add test "same $anchor with different base uri"
d128f9d7 Add test to check that $id resolved against nearest parent, not just immediate parent
72e31dd2 Merge pull request #515 from json-schema-org/ether/fix-mandatory-format-tests
0173a083 Revert "by default, "format" only annotates, not validates"
66e813a9 Merge pull request #506 from json-schema-org/ether/formats-non-ascii
20c1bb1d test for non-ascii digits in various formats
ab0b1ae7 fix draft4 schemas
0df96bc3 group tests to avoid duplicating test descriptions
93293efc fix indentation
9430972b fix unicode tests in accordance to pattern/patternProperties spec
76b529ff Merge pull request #482 from json-schema-org/ether/more-date-time-tests
eb619047 Merge pull request #504 from json-schema-org/minContains-0-but-maxContains
c41a68e8 Add tests for minContains = 0 but with maxContains
57f1d63d some more tests for "date" and "time" formats
878b0ad5 properly escape this newline character - thanks Srikrishnan Suresh!
bb2a20d3 Merge pull request #503 from json-schema-org/uuid-dashes
f9acc454 Backport #451 to draft 7.
8e746b3a Test that UUIDs have dashes in the right spots.
fd0aa9f8 Merge pull request #500 from anexia-it/master
d0107804 Extend if/then/else tests on unevaluated properties
017d4e56 Merge pull request #499 from json-schema-org/ether/dynamic-scope-enter-leave
6327a3bc Remove annotation-asserting tests from draft3's format as well.
aa621ed4 test that dynamic scopes are not always in scope
35bab687 Merge pull request #497 from json-schema-org/ether/streamlined-format-tests
808c5d24 in #496 I neglected to update draft-future with the same $id fixes as in draft2020-12.
ba1f1a77 normalize all format tests, adding consistent sample data
b00ba577 fix use of boolean schemas in draft4
4ca4af27 Merge pull request #498 from json-schema-org/ether/2020-12-unicode-pattern
c5f08e24 add tests for pattern matching with unicode semantics
e7f8b3e8 Merge pull request #496 from json-schema-org/ether/missing-identifiers
c8d79ee7 use unique identifiers so schemas do not conflict
17fa9589 Merge pull request #494 from anexia-it/master
a0d28fdf Extend duration and uuid format tests for ignored values
b6769f2b fix ids in older drafts
1326f36e Merge pull request #493 from json-schema-org/ether/id-sibling-to-ref
b9bddc9c test that sibling $ids to $refs are ignored
2f6a498d Merge pull request #492 from json-schema-org/ether/fix-refRemote
61d03c0e fix buggy test with $ref in older drafts
0aefbb3d Merge pull request #491 from jdesrosiers/object-contains-tests
336ef8d2 Merge pull request #452 from LeifRilbe/rilbe/propertyNames-with-pattern
2dfbc79c Simplify the test case names as well.
b6d0649d Add tests for contains with objects
da687ca5 Enforce a consistent code style for contains tests
b163efcf Merge pull request #490 from jdesrosiers/draft-future
7c8cb488 Initialize draft-future with 2020-12 tests
4d65d2df Merge pull request #483 from kylef/kylef/date
ee9dcaa7 Merge pull request #485 from marksparkza/contains-with-false-if
eaa5bffc Merge pull request #489 from json-schema-org/ether/more-recursiveRef
7c33b533 dynamic $recursiveRef test with cousin $recursiveAnchors
8a3a542b Fix invalid JSON error
8a89f58e Add tests combining remote refs and defs
3aec0d14 Add tests combining relative refs and defs
a107d196 fix: $defs -> definitions in draft 6,7 tests
0c223de2 Remove a test for undefined $id behavior
4efec180 Test that "contains" does not fail due to false "if" subschema
bf383b4c fix: make identifiers unique across tests
812f1f08 Merge pull request #484 from json-schema-org/ether/schemas-under-unknown-keywords
64f6b850 Test that identifiers are not found inside unrecognized keywords
c69a89c6 Stricter date format constraints
09fd353f Merge pull request #481 from kylef/kylef/time
0ed2e79b Fix negative time test to only fail on a single rule
2edc74b1 Add valid time with different second fractions
7bde0bf7 Add valid time with leap second including offset
ee83f464 Stricter time format constraints
5732904a Merge pull request #480 from json-schema-org/ether/better-test-names
c2994271 better test names for schema-items + additionalItems
6bc53e60 Merge pull request #479 from json-schema-org/fix-non-id-in-enum-for-drafts-6-and-7
3f783d9c fixing draft 6 & 7 non-id tests
5768c68d Merge pull request #476 from json-schema-org/ether/readme-updates
0c8bfc06 add mention of JSON::Schema::Tiny
e4c10c6b fix markdown for underscores in package names
eeb4db18 mention draft2020-12 in readme
dff69dcb Merge pull request #474 from marksparkza/unevaluatedItems-depends-on-contains
51b4977c Merge pull request #478 from sorinsarca/patch-1
dfcd4a19 fix bad comma
4cb100a5 Merge pull request #465 from json-schema-org/ether/more-naive-ref
31dc86bc add another test of naive $ref replacement
f858c613 Merge pull request #477 from json-schema-org/ether/more-items-tests
4e266c34 test that array-items/prefixItems adjusts the starting position for schema-items/additionalItems
b7fced33 Merge pull request #473 from json-schema-org/ether/more-default-tests
eadb9be7 test that a missing property is not populated by the default in the actual instance data
839b95d8 Added opis/json-schema
7cf78800 Add missing comma
3390c871 Update tests/draft2020-12/unevaluatedItems.json
15ec577f Merge pull request #471 from json-schema-org/ether/id-anchor-in-enum
9f978651 test for confusing not-identifiers in enums
d3b88001 Update tests/draft2020-12/unevaluatedItems.json
0f7ecd4a Merge pull request #475 from marksparkza/marksparkza-patch-1
84e1d5a9 Add another test case for unevaluatedItems-contains interaction
783d22a9 Add jschon
f400802c Add tests for unevaluatedItems interaction with contains
fc68499e Merge pull request #472 from json-schema-org/ether/unevaluatedProperties_uncles
ed4cf5f8 more test cases for unevaluatedItems, unevaluatedProperties
d0d814df Merge pull request #469 from json-schema-org/ether/ipv4-vulnerability
7ca5f36d reject ipv4 strings with an octet with a leading zero
8e1e1c18 fix spelling error in test descriptions
77f1d10c Merge pull request #462 from jdesrosiers/dynamic-ref-tests
72a32fe7 Merge pull request #468 from json-schema-org/ether/combine-test-cases
0c48ffba Merge pull request #453 from notEthan/float-overflow-d4-int
76a4ba0a these test cases can be combined since the schemas are the same
cd73775f Merge pull request #464 from json-schema-org/ether/format-by-default-always-validates
043dc636 by default, "format" only annotates, not validates
3c45b816 Merge pull request #460 from amosonn/remove-remotes-from-script
b09e48d0 Fix $ref with siblings in pre-2019-09 tests
ff9f22e5 Add tests for $dynamicRef/$dynamicAnchor
0faaf097 Fix refs to Draft 2019-09 schema to be refs to 2020-12
ebbcbc82 Use flask to server remotes directly
bb98b030 Remove remotes from bin/jsonschema_suite
fcae732b Merge pull request #455 from jdesrosiers/bootstrap-202012
e0024097 Update tests for 2020-12
405b3fb4 Copy 2019-09 tests to bootstrap 2020-12 tests
93193442 Test cases for propertyNames with pattern - update after PR feedback.
1636a221 draft4 float-overflow instance may be considered not an integer
8e4aad95 Test cases for propertyNames with pattern.
8daea3f4 Merge pull request #451 from json-schema-org/ether/more-relative-json-pointer
69fe40f5 some more relative-json-pointer tests
6505944d Merge pull request #450 from json-schema-org/ether/recursiveRef-dynamic-path
afd0cd31 Move content* keyword tests to non-optional
e2b2a4b3 Change all content* keyword tests to always validate
8999eae1 $recursiveRef example demonstrating dynamic nature of the resolution scope
f47003f1 fix duplicate test description
bcf1dc81 Merge pull request #391 from ether/recursiveRef (rebased, squashed)
3d88f347 test $recursiveRef + $recursiveAnchor
3b79a452 Merge pull request #418 from ChALkeR/chalker/contentSchema
3627cc11 Fix draft3 as well, which didn't have allOf.
eb1618b5 Fix misspelled reference in infinite-loop-detection tests
d7821b62 remove duplicate files added by mistake in PR#446
a27c949b Merge pull request #446 from json-schema-org/ether/infinite-loop-detection
371fcaba Add a test to demonstrate the invalidity of a naive infinite loop detection algorithm
45436c6c Add a test to demonstrate the invalidity of a naive infinite loop detection algorithm
14cfcde1 Merge pull request #445 from json-schema-org/ether/naive-ref-replacement
128146da test that literal $refs are not evaluated as keywords
71ba357b Merge pull request #442 from jimblackler/master
a6f759aa Update README.md
0f35b324 Merge pull request #441 from plxel/patch-1
d36b8b97 Update README.md
d657d2b8 Update index.js
6a925b8d change folder to baseUriChange
96742ba3 Merge pull request #438 from Zac-HD/overflow-with-multipleOf
c5ba4ba3 Check for multipleOf overflow
c12b0db8 Merge pull request #437 from gregsdennis/if-then-else-sequencing
bd148eb7 copy/paste error
3ca7c419 Added if/then/else sequencing tests; resolves #436
fa73bc8d Merge pull request #435 from jviotti/unevaluated-items-typo
2d6de7cb Fix "unevaluted" typos in "unevaluatedItems" suite
21555a85 Merge pull request #431 from ChALkeR/chalker/enum
87550ad6 Merge pull request #433 from notEthan/escaped_ref_in_def
57e31b49 refactor tests of escaped pointer refs to put ref'd schemas in definitions
a21e4258 Add tests for objects in enum
2a9be81d Merge pull request #1 from json-schema-org/master
8a129948 Remove invalid format:regex test; the spec doesn't mandate parsing correctness
fce9e9b3 Merge pull request #426 from helrond/padded-dates
e61b6471 tests should invalidate
86f52b87 Fix a clear copy-paste error in the case names for tests from #394.
df8f6bb9 add tests to date-time
f137b811 add checks to draft3
3aa603fb adds tests for non zero-padded dates
ec18a7d0 Merge pull request #360 from notEthan/duplicate_uris
cd9a4b9d change schemas with duplicate URIs http://localhost:1234/folder/
43e190e0 Merge pull request #394 from rjmill/rjmill/bools-and-1s-and-0s-inside-objects-and-arrays
85f0d459 Merge pull request #419 from ChALkeR/chalker/format-uri
54436216 Merge pull request #420 from ChALkeR/chalker/format/ip6
ad47b726 Add long valid and invalid ipv6
b2ab70ec More optional ipv6 tests
37189ae6 Test that uri format scheme is validated for allowed chars
ea415537 Remove test that doesn't match RFC 3339 duration grammar
29f609b8 Add tests for contentSchema
dee8ef7e Merge pull request #411 from ChALkeR/chalker/more-unevaluted
cd88fb5c Add more nested and cousin unevaluatedProperties tests
5f3dc7e3 Merge pull request #415 from json-schema-org/ether/more-ipv6-tests
04ddab1a some more ipv6 tests
acb45cd4 Merge pull request #417 from ChALkeR/chalker/patternProperties
0f4b73a0 One more patternProperties test with boolean schemas
8ccbfdc5 Merge pull request #412 from json-schema-org/ether/more-format-duration-2
1329dab9 some more tests for the "duration" format
1d5c3c0f Merge pull request #405 from ChALkeR/chalker/email-format
40601f62 Add idn-hostname validity and contextual rule tests
fc05651c Merge pull request #409 from Stranger6667/dd/add-jsonschema-rs
5f1575a9 Add Rust `jsonschema` crate
2bf95bee Merge pull request #407 from fisxoj/master
9ae956b2 Add common lisp implementation to the list
d4ffd569 Merge pull request #401 from json-schema-org/ether/format-uuid
2d6c4571 tests for the "uuid" format
08f6cdaf Merge pull request #400 from json-schema-org/ether/more-format-ipv6
d3064eb3 some more tests for the "ipv6" format
7ad74431 Extend email format tests
1f34d332 Merge pull request #399 from json-schema-org/ether/more-format-idn-email
22adda78 also test the "email" inputs against "idn-email"
25598a3b Merge pull request #392 from rjmill/rjmill/test-prop-named-ref-containing-a-ref
8dfa8adc Merge pull request #380 from ChALkeR/fix-ecmascript-regex
d595dbf9 backport $ref cases, changing "$defs" to "definitions"
2106ed17 backport uniqueItems cases to draft3
57001d26 [294] Add tests for "additionalProperties" and "additionalItems"
49fc2a95 backport const test cases to draft6
27192102 Merge pull request #398 from ChALkeR/chalker/no-dec-ipv4
f5f481a6 Decimal IPs are also not dotted-quad
ca8319c9 Fix \W test description
79fe60c0 more tests for true != 1 and false != 0 inside objects/arrays
452b5f8f Test property named $ref, containing an actual $ref
a01ae540 Fix ECMA 262 regex whitespace tests.
817b724b add perl implementation and test suite to the user list
ca14e010 Merge branch 'pull/382'
3dabf559 move non-format tests out of the format directory, while keeping all ECMA regex tests together
4121aa54 move format tests to their own directory
4bae8aa4 Add more idn-hostname tests to draft-2019-09 and draft-07
6d911588 [325] Add some more hostname tests
e5930571 Merge pull request #389 from ssilverman/readme-drafts
fb3766dc README: Improve issue/PR links
79bef228 README: Update language around drafts
ade47e4c README: Add Snow to the list of supporting Java validators
fc0c14ea README: Update simple JSON example
11676694 README: Update structure, consistency, spacing, and wrapping
9514122e Merge pull request #388 from json-schema-org/ether/maxProperties=0
76464907 test that maxProperties = 0 means the object is empty
c3f43199 Merge pull request #384 from ChALkeR/chalker/unique
7766f486 Improve uniqueItems validation
7555d418 Add unnormalized $id tests
11f70eb4 [300] Add tests for valid use of empty fragments in "$id"
b106ff04 [299] Add tests for invalid use of fragments in "$id"
4a74d455 Fix "tilde" spelling
3eca41b5 Merge pull request #379 from json-schema-org/ether/remove-wrapped-refs
d61bae8f remove wrapped refs
536ec07d [359] Add unevaluatedProperties/unevaluatedItems cousin tests
ac63eb75 Small README update that introduces the concept of directories
697944e9 Merge pull request #374 from karenetheridge/ether/allOf-anyOf-oneOf
33f85492 test all the *Of keywords together
44b99ed5 Merge pull request #373 from karenetheridge/ether/items-and-contains
4a2b52f5 some tests of items + contains
7f00cc82 add test that was present for other drafts but not 2019-09
a3f9e2e4 Merge pull request #371 from karenetheridge/ether/if-then-else-boolean
aeeaeccb some tests with if/then/else and boolean schemas
b8a083c2 Merge pull request #372 from nomnoms12/unique-false-and-zero
85728f1d Add tests for uniqueness [1] and [true]
fd01a603 Add tests for uniqueness [1] and [true]
0a8823c4 Merge pull request #370 from karenetheridge/ether/nul-char
fa6f4dd9 add tests for the NUL character in strings
8bf2f7f3 Merge pull request #369 from ssilverman/data-desc
2ba7a769 Add data description
4f660782 Merge pull request #367 from karenetheridge/ether/additionalItems
283da7c1 some more tests for additionalItems
7ba95f35 add tests for keywords maxContains, minContains
2f2e7cf8 Merge pull request #365 from karenetheridge/ether/move-ecma-regex
8388f27e move ECMA regex tests under format/
9d0e0eb3 Merge pull request #362 from karenetheridge/ether/1.0-is-number
fadab68f 1.0 is always a number (and an integer too for draft6+)
361620ec [355] Move non-BMP pattern tests to optional
e1f870b1 Add "comment" to the tests
bc68a6b8 Merge pull request #332 from jdesrosiers/unevaluated-tests
ab9e3d5c 2 is more than 1.
846dd7ab Draft 4 isn't the most widely used anymore thankfully.
16191632 A bit less informal language in the README.
71f55b36 1.0 being an integer is not optional behavior.
240fbf6d Add a description to "schema" explaining it should be valid
8f8e9065 Update test schema to Draft 6 from Draft 4
2576db4d [350] Fix unmatched pattern-properties
0a0f0cd1 Move the "definitions" area below the main schema part
bb80ebe5 Clean up some spacing
9ee9eff1 Add some description annotations
41732dbd Refactor a single test into the "definitions" area
2fc576e7 [53] Add test IDs
c3731205 [264] Add pattern and patternProperties tests for non-BMP code points
da35d880 [245] Add test for negative prefix in relative-json-pointer
d17e1ba2 [242] Add pattern tests for numbers, objects, arrays, and null
a5302a46 [329] Add tests for uniqueItems=false
0bf6358f [166] Add null-in-enum test
807591f0 Merge pull request #340 from karenetheridge/ether/markdown-conflict-markers
e4c82f21 disambiguate underline from git conflict marker
6077b07e Update unevaluatedProperties and unevaluatedItems tests
c4d3e0f9 Merge pull request #333 from zhxiaogg/tests-for-duration-format
618b30dc not all duration impl support year and month
926d0b3d tests for duration format
22eaffcd Merge pull request #331 from jdanyow/patch-2
b2e553e9 Merge pull request #330 from jdanyow/patch-1
9db34a17 remove unused constant
cbf4654d fix typo in ref test description
44517887 Merge pull request #326 from awwright/master
8e2a05a9 Revert "HTTP -> HTTPS for specification URIs."
f0594353 Merge pull request #327 from json-schema-org/ref-scoping
26933221 fixed test structure; had a think about the logic.
2d0ce046 added test to illustrate $ref defining a new scope
33791274 HTTP -> HTTPS for specification URIs.
0da2aaa1 Backport nested allOf/anyOf/oneOf tests
34a2dfa3 Add nested allOf, oneOf tests
b70c5626 Merge remote-tracking branch 'origin/pr/323'
882688cb back out subSchemas.json changes, and instead add subSchemas-defs.json
0d6e1649 back out ref.json whitespace change and missing referant test
70ebd734 update subSchemas.json fixture in bin/jsonschema_suite
b5123d1a In draft2019-09, you cannot reference arbitrary locations.
35041a34 Tests for unevaluatedItems.
8feb4292 More unevaluatedProperties tests.
960f519f Split dependencies.json into its 2 new keywords.
d52866b3 This test duplicates 'dependentRequired with empty array'
f7c851ff dependencies was split into dependentRequired and dependentSchemas.
47a5b018 Backport the new dependency test.
7a25f8b9 Another dependencies test, awaiting backport.
24940b2f Backport the new enum tests.
5d2afa8a More enum tests, awaiting backport.
de713224 Missed one for draft3 minimum.
79833bbf More min and maximum tests, awaiting backport.
34efcdaf Backport the new const precision tests.
06a6295e More const tests, awaiting backport.
9a11d898 In draft2019-09, ref now does not ignore siblings.
7dc768a1 Backport eada031 to earlier drafts.
49c61979 Future-proof the sanity checker for #238.
39994975 Backport the additional min/max tests.
12b4a4c2 add optional test for $ref of an unknown keyword
a863dbab Backport the additional const tests.
2e0e86e6 add more zero-valued types const tests
e76e0294 2 is more than 1.
6c00de64 Run daily.
183d37fe Run on all branches.
f865e88e Merge remote-tracking branch 'origin/Relequestual-fix-pr-ci'
777919bc Fix the contributor command info as well.
e4e27709 Merge pull request #319 from json-schema-org/badge
5c7ac335 Fix the badge.
67f238bb Run CI for PRs
bf2f2443 Merge pull request #315 from json-schema-org/gha
38c2e938 Travis CI -> GitHub Actions.
0f344a69 Merge pull request #313 from leadpony/issue309
46c44747 Replace the control escape \\a with \\t
1ffe03e5 Merge pull request #312 from gregsdennis/master
de004798 better descripttions
eea7f249 arrays have characters too
7c02d06d added unevaluatedProperties test file; resolves #310
1899a5aa Merge pull request #308 from aznan2/master
4a5010b3 Update the version list.
37569b13 issue #307 - made test compatible with draft4
e3087307 issue #307 - removed issue reference from description
e13d3275 issue #307 - removed pound sign from description
a3b9f723 issue #307 - test that oneOf handles missing optional property

git-subtree-dir: JSON-Schema-Test-Suite
git-subtree-split: 7950d9e0579382103031ef3cfcdc37e7c58b2d1f
  • Loading branch information
davishmcclurg committed May 16, 2023
1 parent 5519c42 commit f3947c2
Show file tree
Hide file tree
Showing 500 changed files with 55,106 additions and 2,633 deletions.
1 change: 1 addition & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
insert_final_newline = true
2 changes: 2 additions & 0 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Ping the entire test suite team by default.
* @json-schema-org/test-suite-team
25 changes: 25 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: Test Suite Sanity Checking

on:
push:
pull_request:
release:
types: [published]
schedule:
# Daily at 6:42, arbitrarily as a time that's possibly non-busy
- cron: '42 6 * * *'

jobs:
ci:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.x'
- name: Install tox
run: python -m pip install tox
- name: Run the sanity checks
run: python -m tox
161 changes: 160 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,160 @@
TODO
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

# C extensions
*.so

# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
cover/

# Translations
*.mo
*.pot

# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
.pybuilder/
target/

# Jupyter Notebook
.ipynb_checkpoints

# IPython
profile_default/
ipython_config.py

# pyenv
# For a library or package, you might want to ignore these files since the code is
# intended to run in multiple environments; otherwise, check them in:
# .python-version

# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock

# poetry
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
# This is especially recommended for binary packages to ensure reproducibility, and is more
# commonly ignored for libraries.
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
#poetry.lock

# pdm
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
#pdm.lock
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
# in version control.
# https://pdm.fming.dev/#use-with-ide
.pdm.toml

# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
__pypackages__/

# Celery stuff
celerybeat-schedule
celerybeat.pid

# SageMath parsed files
*.sage.py

# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject

# mkdocs documentation
/site

# mypy
.mypy_cache/
.dmypy.json
dmypy.json

# Pyre type checker
.pyre/

# pytype static type analyzer
.pytype/

# Cython debug symbols
cython_debug/

# PyCharm
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
# and can be added to the global gitignore or merged into this file. For a more nuclear
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/
8 changes: 0 additions & 8 deletions .travis.yml

This file was deleted.

87 changes: 87 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
# Contributing to the Suite

All contributors to the test suite should familiarize themselves with this document.

Both pull requests *and* reviews are welcome from any and all, regardless of their "formal" relationship (or lack thereof) with the JSON Schema organization.

## Commit Access

Any existing members with commit access to the repository may nominate new members to get access, or a contributor may request access for themselves.
Access generally should be granted liberally to anyone who has shown positive contributions to the repository or organization.
All who are active in other parts of the JSON Schema organization should get access to this repository as well.
Access for a former contributor may be removed after long periods of inactivity.

## Reviewing a Pull Request

Pull requests may (and often should) be reviewed for approval by a single reviewer whose job it is to confirm the change is specified, correct, minimal and follows general style in the repository.
A reviewer who does not feel comfortable signing off on the correctness of a change is free to comment without explicit approval.
Other contributors are also encouraged to comment on pull requests whenever they have feedback, even if another contributor has submitted review comments.
A submitter may also choose to request additional feedback if they feel the change is particularly technical or complex, or requires expertise in a particular area of the specification.
If additional reviewers have participated in a pull request, the submitter should not rely on a single reviewer's approval without some form of confirmation that all participating reviewers are satisfied.
On the other hand, whenever possible, reviewers who have minor comments should explicitly mention that they are OK with the PR being merged after or potentially *without* addressing them.

When submitting a change, explicitly soliciting a specific reviewer explicitly is currently not needed, as the entire review team is generally pinged for pull requests.
Nevertheless, submitters may choose to do so if they want specific review from an individual, or if a pull request is sitting without review for a period of time.
For the latter scenario, leaving a comment on the pull request or in Slack is also reasonable.

Confirming that a pull request runs successfully on an implementation is *not* generally sufficient to merge, though it is helpful evidence, and highly encouraged.
Proposed changes should be confirmed by reading the specification and ensuring the behavior is specified and correct.
Submitters are encouraged to link to the specification whenever doing so will be helpful to a reviewer.

A reviewer may indicate that the proposed changes are too large for them to review.
In such cases the submitter may wait for another reviewer who is comfortable reviewing the changes, but is generally strongly encouraged to split up the changes into multiple smaller ones.

Reviewing pull requests is an extremely valuable contribution!
New reviewers are highly encouraged to attempt to review pull requests even if they do not have experience doing so, and to themselves expect feedback from the submitter or from other reviewers on improving the quality of their reviews.
In such cases the submitter should use their judgement to decide whether the new contributor's review is sufficient for merging, or whether they should wait for further feedback.

## Merging Changes

Approval of a change may be given using the GitHub UI or via a comment reply.
Once it has been given, the pull request may be merged at any point.

To merge a pull request, *either* the submitter or reviewer must have commit access to the repo (though this is also partially simply because that party's access is needed to merge).

*Either* the submitter or reviewer may be the one to do the actual merge (whether via hitting the merge button or externally to the GitHub UI).
If the submitter wishes to make final changes after a review they should attempt to say so (and thereby take responsibility for merging themselves).
Contributors *should not* leave pull requests stagnant whenever possible, and particularly after they have been reviewed and approved.

Changes should not be merged while continuous integration is failing.
Failures typically are not spurious and indicate issues with the changes.
In the event the change is indeed correct and CI is flaky or itself incorrect, effort should be made by the submitter, reviewer, or a solicited other contributor to fix the CI before the change is made.
Improvements to CI itself are very valuable as well, and reviewers who find repeated issues with proposed changes are highly encouraged to improve CI for any changes which may be automatically detected.

Changes should be merged *as-is* and not squashed into single commits.
Submitters are free to structure their commits as they wish throughout the review process, or in some cases to restructure the commits after a review is finished and they are merging the branch, but are not required to do so, and reviewers should not do so on behalf of the submitter without being requested to do so.

Contributors with commit access may choose to merge pull requests (or commit directly) to the repository for trivial changes.
The definition of "trivial" is intentionally slightly ambiguous, and intended to be followed by good-faith contributors.
An example of a trivial change is fixing a typo in the README, or bumping a version of a dependency used by the continuous integration suite.
If another contributor takes issue with a change merged in this fashion, simply commenting politely that they have concerns about the change (either in an issue or directly) is the right remedy.

## Writing Good Tests

Be familiar with the test structure and assumptions documented in the [README](README.md).

Test cases should include both valid and invalid instances which exercise the test case schema whenever possible.
Exceptions include schemas where only one result is ever possible (such as the `false` schema, or ones using keywords which only produce annotations).

Schemas should be *minimal*, by which we mean that they should contain only those keywords which are being tested by the specific test case, and should not contain complex values when simpler ones would do.
The same applies to instances -- prefer simpler instances to more complex ones, and when testing string instances, consider using ones which are self-descriptive whenever it aids readability.

Comments can and should be used to explain tests which are unclear or complex.
The `comment` field is present both for test cases and individual tests for this purpose.
Links to the relevant specification sections are also encouraged, though they can be tedious to maintain from one version to the next.

When adding test cases, they should be added to all past (and future) versions of the specification which they apply to, potentially with minor modifications (e.g. changing `$id` to `id` or accounting for `$ref` not allowing siblings on older drafts).

Changing the schema used in a particular test case should be done with extra caution, though it is not formally discouraged if the change simplifies the schema.
Contributors should not generally append *additional* behavior to existing test case schemas, unless doing so has specific justification.
Instead, new cases should be added, as it can often be subtle to predict which precise parts of a test case are unique.
Adding additional *tests* however (instances) is of course safe and encouraged if gaps are found.

Tests which are *incorrect* (against the specification) should be prioritized for fixing or removal whenever possible, as their continued presence in the suite can create confusion for downstream users of the suite.

## Proposing Changes to the Policy

This policy itself is of course changeable, and changes to it may be proposed in a discussion.
Loading

0 comments on commit f3947c2

Please sign in to comment.