Changelog
=========
0.4.0 (2026-04-24)
------------------
Added
~~~~~
- Add support for Python 3.13, 3.14.
Fixed
~~~~~
- :meth:`jscc.testing.checks.validate_metadata_presence`: Recognize ``additionalProperties`` and ``propertyNames`` as keywords.
- :meth:`jscc.testing.checks.validate_array_items`: Use the new ``ArrayItemsWarning`` warning, instead of the incorrect ``DeepPropertiesWarning`` warning.
- Break cycles in recursive schemas.
Removed
~~~~~~~~
- Drop support for Python 3.9.
0.3.0 (2024-09-15)
------------------
Changed
~~~~~~~
- Ignore ``.venv`` and ``vendor`` directories.
- Some arguments must be keyword arguments in:
- :meth:`jscc.testing.checks.validate_null_type`
- :meth:`jscc.testing.checks.validate_schema_codelists_match`
- :meth:`jscc.testing.checks.test_validate_codelist_enum`
Removed
~~~~~~~
- Drop support for Python 3.8.
0.2.4 (2024-01-29)
------------------
Changed
~~~~~~~
- :meth:`jscc.testing.checks.validate_ref` accepts keyword arguments to pass to ``jsonref.replace_refs``.
Removed
~~~~~~~
- Drop support for Python 3.7.
0.2.3 (2023-07-06)
------------------
Changed
~~~~~~~
- Add support for `$defs` keyword in:
- :meth:`jscc.testing.checks.validate_letter_case`
- :meth:`jscc.testing.checks.validate_metadata_presence`
- :meth:`jscc.testing.checks.validate_null_type`
- :meth:`jscc.testing.checks.validate_deep_properties`
- :meth:`jscc.schema.is_json_schema`
- :meth:`jscc.schema.is_json_merge_patch`
0.2.2 (2023-06-14)
------------------
Removed
~~~~~~~
- :meth:`~jscc.testing.checks.get_invalid_csv_files`, as Python's CSV parser errors only if the CSV dialect is configured.
0.2.1 (2023-06-14)
------------------
Changed
~~~~~~~
- :meth:`~jscc.testing.checks.validate_schema` no longer accepts a ``schema`` argument.
0.2.0 (2023-06-14)
------------------
Changed
~~~~~~~
- :meth:`~jscc.testing.checks.validate_schema` accepts a ``validator`` argument, instead of using JSON Schema Draft 4.
To preserve behavior, install ``jsonschema``, ``rfc3339-validator`` and ``rfc3986-validator``, and change:
.. code-block:: python
validate_schema(path, data, schema)
to:
.. code-block:: python
from jsonschema import FormatChecker
from jsonschema.validators import Draft4Validator
validator = Draft4Validator(schema, format_checker=FormatChecker())
validate_schema(path, data, validator)
0.1.1 (2023-04-19)
------------------
Fixed
~~~~~
- :meth:`jscc.testing.checks.get_empty_files` correctly returns JSON files that are whitespace only.
Removed
~~~~~~~
- Drop support for Python 3.6.
0.1.0 (2022-10-28)
------------------
Changed
~~~~~~~
- Update to `jsonref `__ 1.0's API.
0.0.9 (2022-04-26)
------------------
Changed
~~~~~~~
- Changed dependency from `rfc3987 `__ (GPL) to `rfc3986-validator `__ (MIT).
0.0.8 (2022-03-08)
------------------
Added
~~~~~
- :meth:`jscc.testing.checks.validate_array_items` warns if a field whose ``type`` property includes "array" is missing the ``items`` property.
0.0.7 (2021-11-04)
------------------
Changed
~~~~~~~
- ``jscc.testing.checks``: :meth:`~jscc.testing.checks.get_empty_files`, :meth:`~jscc.testing.checks.get_misindented_files`, :meth:`~jscc.testing.checks.get_invalid_json_files` and :meth:`~jscc.testing.checks.get_invalid_csv_files` accept keyword arguments to pass to :meth:`jscc.testing.filesystem.walk` and :meth:`jscc.testing.filesystem.walk_json_data`.
0.0.6 (2021-07-19)
------------------
Fixed
~~~~~
- :meth:`jscc.testing.checks.validate_object_id` supports the ``omitWhenMerged`` property.
0.0.5 (2021-04-10)
------------------
Added
~~~~~
- Add Python wheels distribution.
0.0.4 (2020-06-23)
------------------
Fixed
~~~~~
- :meth:`jscc.testing.checks.validate_ref` supports integers in JSON Pointers.
- :meth:`jscc.testing.checks.validate_metadata_presence` allows missing ``type`` property if configured via ``allow_missing`` argument.
- :meth:`jscc.testing.filesystem.tracked` supports Windows.
0.0.3 (2020-03-17)
------------------
Added
~~~~~
- :meth:`jscc.testing.checks.validate_merge_properties` warns if merge properties are set to ``false`` or ``null``.
- Expand docstrings for ``jscc.schema.checks.validate_*`` methods.
Changed
~~~~~~~
- :meth:`jscc.testing.checks.validate_merge_properties` no longer warns about nullable fields, and no longer accepts an ``allow_null`` argument.
- :meth:`jscc.testing.checks.validate_null_type` warns if an array of objects is nullable. This check was previously performed by :meth:`jscc.testing.checks.validate_merge_properties`.
- :meth:`jscc.testing.checks.validate_null_type`'s ``should_be_nullable`` argument is renamed to ``expect_null``.
- Clarify warning messages.
0.0.2 (2020-03-16)
------------------
Added
~~~~~
- :meth:`jscc.schema.extend_schema`
Changed
~~~~~~~
- :meth:`jscc.schema.is_codelist` accepts a list of field names, instead of a CSV reader.
- :meth:`jscc.testing.filesystem.walk_csv_data` returns text content, fieldnames, and rows, instead of a CSV reader.
- ``jscc.testing.schema`` is moved to :mod:`jscc.schema`.
- ``jscc.schema.is_property_missing`` is renamed to :meth:`jscc.schema.is_missing_property`.
0.0.1 (2020-03-15)
------------------
First release.