CHANGELOG¶
Unreleased¶
0.37.3¶
Update vendored schemas: bitbucket-pipelines, circle-ci, dependabot, github-workflows, gitlab-ci, mergify, readthedocs, renovate, snapcraft, woodpecker-ci (2026-06-12)
0.37.2¶
Update vendored schemas: bitbucket-pipelines, buildkite, circle-ci, dependabot, drone-ci, github-actions, github-issue-forms, github-workflows, gitlab-ci, meltano, mergify, readthedocs, renovate, taskfile, woodpecker-ci (2026-05-02)
0.37.1¶
Update vendored schemas: buildkite, circle-ci, dependabot, github-workflows, gitlab-ci, mergify, readthedocs, renovate, woodpecker-ci (2026-03-25)
Add Changie.dev schema and pre-commit hook. Thanks @edgarrmondragon! (#662)
0.37.0¶
Update vendored schemas: bamboo-spec, bitbucket-pipelines, circle-ci, gitlab-ci, mergify, renovate, woodpecker-ci (2026-02-26)
Removed support for Python 3.9
Verbose text output has been adjusted. At the first verbosity level (-v), all errors are reported but the checked filenames are no longer displayed. The list of filenames checked is now emitted at the second verbosity level (-vv) and above. (#648)
check-jsonschema’s sdist contents are now validated with check-sdist, and missing files have been added.
0.36.2¶
Update vendored schemas: circle-ci, gitlab-ci, mergify, renovate, snapcraft, woodpecker-ci (2026-02-15)
0.36.1¶
Update vendored schemas: buildkite, circle-ci, dependabot, github-issue-forms, github-workflows, gitlab-ci, mergify, readthedocs, renovate, snapcraft, taskfile (2026-01-25)
0.36.0¶
Update vendored schemas: bitbucket-pipelines, buildkite, circle-ci, dependabot, gitlab-ci, mergify, readthedocs, renovate, snapcraft (2025-12-14)
Add GitHub Discussion category forms schema and pre-commit hook. Thanks @edgarrmondragon! (#626)
0.35.0¶
Update vendored schemas: bitbucket-pipelines, buildkite, circle-ci, compose-spec, dependabot, gitlab-ci, meltano, mergify, renovate, snapcraft (2025-11-11)
Add official support for Python 3.14
Add Citation File Format schema and pre-commit hook. Thanks @edgarrmondragon! (#502)
Improved default text output when parsing errors are encountered. (#581)
0.34.1¶
Update vendored schemas: azure-pipelines, bamboo-spec, buildkite, circle-ci, drone-ci, github-workflows, gitlab-ci, meltano, mergify, renovate, woodpecker-ci (2025-10-13)
0.34.0¶
Update vendored schemas: bitbucket-pipelines, buildkite, compose-spec, dependabot, drone-ci, github-issue-forms, gitlab-ci, meltano, mergify, renovate, snapcraft, woodpecker-ci (2025-09-17)
Add GitHub issue config schema and pre-commit hook. Thanks @vivodi! (#589)
Add GitHub issue form schema and pre-commit hook. Thanks @vivodi! (#588)
Add Codecov config schema and pre-commit hook. Thanks @vivodi! (#598)
0.33.3¶
Update vendored schemas: bitbucket-pipelines, buildkite, compose-spec, dependabot, github-actions, gitlab-ci, meltano, mergify, renovate, taskfile, woodpecker-ci (2025-08-17)
0.33.2¶
0.33.1¶
Update vendored schemas: bamboo-spec, bitbucket-pipelines, circle-ci, cloudbuild, compose-spec, dependabot, drone-ci, github-actions, github-workflows, gitlab-ci, mergify, readthedocs, renovate, taskfile, travis, woodpecker-ci (2025-06-22)
Fix: support
click==8.2.0Fix a bug in
Last-Modifiedheader parsing which used local time and could result in improper caching. Thanks @fenuks! (#565)
0.33.0¶
Update vendored schemas: bitbucket-pipelines, buildkite, circle-ci, compose-spec, github-workflows, mergify, renovate, taskfile, woodpecker-ci (2025-04-11)
A new option,
--force-filetype, is now supported and allows users to explicitly specify which parser should be used for instance files. Thanks @mschoettle! (#557, #341)
0.32.1¶
Fix the
check-meltanohook to usetypes_or. Thanks @edgarrmondragon! (#543)
0.32.0¶
Update vendored schemas: circle-ci, compose-spec, dependabot, github-workflows, gitlab-ci, mergify, renovate, taskfile (2025-03-25)
Add Meltano schema and pre-commit hook. Thanks @edgarrmondragon! (#540)
Add Snapcraft schema and pre-commit hook. Thanks @fabolhak! (#535)
0.31.3¶
Update vendored schemas: circle-ci, github-workflows, mergify, renovate, taskfile (2025-03-07)
0.31.2¶
Update vendored schemas: dependabot, github-workflows, gitlab-ci, mergify, renovate, woodpecker-ci (2025-02-19)
0.31.1¶
Update vendored schemas: buildkite, cloudbuild, compose-spec, mergify, renovate (2025-01-26)
Update the
gitlabandrenovatehooks to use--regex-variant nonunicode. Thanks @quentin-ag and @Callek for reporting! (#516, #518)Update the required
ruamel.yamlversion to a range,>=0.18.10,<0.19.0.
0.31.0¶
Update vendored schemas: azure-pipelines, bamboo-spec, buildkite, circle-ci, dependabot, gitlab-ci, mergify, readthedocs, renovate, taskfile (2025-01-07)
Drop support for Python 3.8
Rename
--format-regexto--regex-variantand convert--format-regexto a deprecated alias. It will be removed in a future release.Regular expression interpretation in
"pattern","patternProperties", and"format": "regex"usages now uses unicode-mode JS regular expressions by default. (#353)Use
--regex-variant nonunicodeto get non-unicode JS regular expressions, the default behavior from previous versions.Custom validators may be impacted by the new regular expression features. Validators are now always modified with the
jsonschemalibrary’sextend()API to control thepatternandpatternPropertieskeywords.
0.30.0¶
Update vendored schemas: azure-pipelines, bitbucket-pipelines, buildkite, circle-ci, cloudbuild, dependabot, github-workflows, gitlab-ci, mergify, readthedocs, renovate, taskfile, woodpecker-ci (2024-11-29)
Fix caching behavior to always use URL hashes as cache keys. This fixes a cache confusion bug in which the wrong schema could be retrieved from the cache. This resolves CVE 2024-53848. Thanks @sethmlarson for reporting!
Deprecate the
--cache-filenameflag. It no longer has any effect and will be removed in a future release.
0.29.4¶
0.29.3¶
Update vendored schemas: buildkite, circle-ci, dependabot, gitlab-ci, renovate, taskfile, woodpecker-ci (2024-09-29)
0.29.2¶
Update vendored schemas: buildkite, github-workflows, gitlab-ci, renovate, woodpecker-ci (2024-08-22)
Convert from
setup.cfgtopyproject.tomlfor python package metadata
0.29.1¶
Update vendored schemas: circle-ci, dependabot, gitlab-ci, renovate, woodpecker-ci (2024-07-21)
Fix a bug which could result in local file URI resolution failing on non-Windows platforms in certain cases. Thanks @bukzor! (#465)
Fix caching behaviors to ensure that caches are correctly preserved across instancefiles during
--schemafileevaluation. This also fixes a bug in the remote$refcache. Thanks @alex1701c for reporting! (#463, #466)
0.29.0¶
Update vendored schemas: github-workflows, renovate, woodpecker-ci (2024-07-07)
Improve caching to include caching of remote
$refdownloads. This should improve performance in cases where a schema has many remote refs and is used in repeat invocations. The$refcache can be disabled via the same--no-cacheflag which disables use of the pre-existing cache. Thanks @alex1701c! (#452, #454)Fix an ordering bug which caused caching to be ineffective, resulting in repeated downloads of remote schemas even when the cache was populated. Thanks @alex1701c for reporting! (#453)
0.28.6¶
Update vendored schemas: bitbucket-pipelines, circle-ci, readthedocs, renovate (2024-06-23)
Add CircleCI schema and pre-commit hook. Thanks @jrdnbradford! (#444)
0.28.5¶
Update vendored schemas: bitbucket-pipelines, dependabot, github-actions, github-workflows, gitlab-ci, readthedocs, renovate (2024-06-10)
Update bitbucket schema to use the option from the intellij-bitbucket-references-plugin . For more details on this decision, see #440 . Thanks @blade2005 for the PR! (#442)
0.28.4¶
Update vendored schemas: buildkite, github-workflows, gitlab-ci, renovate, taskfile, woodpecker-ci (2024-05-19)
0.28.3¶
Update vendored schemas: dependabot, github-workflows, gitlab-ci, renovate, woodpecker-ci (2024-05-05)
Update Cloud Build pre-commit hook to support JSON Cloud Build config. Thanks @jrdnbradford! (#427)
0.28.2¶
Update vendored schemas: cloudbuild, gitlab-ci, renovate (2024-04-10)
Add Taskfile schema and pre-commit hook. Thanks @jrdnbradford! (#417)
0.28.1¶
Update vendored schemas: buildkite, cloudbuild, dependabot, github-actions, github-workflows, gitlab-ci, renovate, woodpecker-ci (2024-03-31)
0.28.0¶
Update vendored schemas: cloudbuild, dependabot, gitlab-ci, readthedocs, renovate (2024-02-06)
Include built-in, efficient implementations of
date-timeformat validation (RFC 3339) andtimeformat validation (ISO 8601). This makes thedate-timeandtimeformats always available for validation. (#378)Support the use of
orjsonfor faster JSON parsing when it is installed. This makes it an optional parser which is preferred over the defaultjsonmodule when it is available.TOML parsing is now always available (rather than an optional parser). This change adds a dependency on
tomlion older Python versions, ensuring that TOML formatted data is always supported. Users should no longer need to installtomlimanually in order to use TOML files.
0.27.4¶
0.27.3¶
Update vendored schemas: bitbucket, gitlab-ci, readthedocs, renovate (2023-12-05)
Limit the number of instance files which are opened simultaneously, which avoids reaching OS limits for open file descriptors. Thanks @ianmackinnon! (#352)
Improve handling of schemafiles to ensure that they are only read once (#363)
0.27.2¶
Update vendored schemas: dependabot, github-workflows, renovate (2023-11-24)
Add official support for Python 3.12
Add Google Cloud Build schema and pre-commit hook. Thanks @nikolaik! (#339)
Fix a bug in the custom
github-workflows-require-timeoutschema which forbade the use of GitHub expression syntax for the timeout value. (#354)
0.27.1¶
Update vendored schemas: buildkite, drone-ci, github-workflows, gitlab-ci, readthedocs, renovate (2023-11-03)
0.27.0¶
Update vendored schemas: azure-pipelines, bitbucket-pipelines, gitlab-ci, renovate (2023-09-27)
Add a
--validator-classoption for specifying a customjsonschema.protocols.Validatorclass to use (#327, #262)Instances and schemas may now be passed on stdin, using
-(#332, #251)Minor fix to hook regexes to explicitly match
.chars. Thanks @skwde! (#325)
0.26.3¶
Fix a minor bug with the verbose output introduced in v0.26.2
0.26.2¶
When
-v/--verboseis used, output will include a list of all files which were checked on success (#312)
0.26.1¶
Update vendored schemas: github-workflows, renovate (2023-08-25)
0.26.0¶
The regex format check has been improved to support ECMAScript regexes by default. (#302)
The
--format-regex disabledoption has been removed. Users should use--disable-formats regexif they wish to disable regex format checking.The deprecated
--disable-formatflag has been removed. Users should use--disable-formats "*"if they wish to disable all format checking.
0.25.0¶
Update vendored schemas: bamboo-spec, dependabot, drone-ci, github-actions, github-workflows, readthedocs, renovate, travis (2023-08-25)
Add Drone-CI schema and pre-commit hook. Thanks @s-weigand! (#299)
Add a
--base-urioption for specifying an explicit base URI (#305)
0.24.1¶
Fix bugs related to the new $ref resolution behavior
0.24.0¶
Update vendored schemas: github-actions, gitlab-ci, readthedocs, renovate, travis (2023-08-08)
Remove support for python3.7
The minimum supported version of the
jsonschemalibrary is now4.18.0, which introduces new$refresolution behavior and fixes. That behavior is used in all cases, which should result in faster evaluation especially on large schemas.$refusage may now refer to YAML, TOML, or JSON5 files, or any other non-JSON format supported bycheck-jsonschema. The file type is inferred only from the file extension in these cases and defaults to JSON if there is no recognizable extension.Remote schemafiles (http/s) now support YAML, TOML, and JSON5 formats, if the URL ends with the appropriate extension and the matching parser is available. Extensionless URLs are treated as JSON.
0.23.3¶
0.23.2¶
0.23.1¶
Update vendored schemas: github-workflows, gitlab-ci, renovate (2023-05-30)
The schema for enforcing timeout-minutes on GitHub Actions jobs has been updated to allow for workflow call jobs (which cannot have a timeout)
0.23.0¶
Update vendored schemas: azure-pipelines, buildkite, dependabot, github-workflows, gitlab-ci, renovate (2023-05-03)
A new option,
--disable-formatsreplaces and enhances the--disable-formatflag.--disable-formatstakes a format to disable and may be passed multiple times, allowing users to opt out of any specific format checks.--disable-formats "*"can be used to disable all format checking.--disable-formatis still supported, but is deprecated and emits a warning.
0.22.0¶
Update vendored schemas: buildkite, github-workflows, gitlab-ci, renovate, travis (2023-03-08)
The
check-dependabothook now also supports.github/dependabot.yamlThanks @noorul!Fix a mistake in the dependency bound for
jsonschema, which was intended to change in v0.21.0
0.21.0¶
Update vendored schemas: github-workflows, gitlab-ci, renovate (2023-01-24)
Fix a bug in which
--check-metaschemawas not building validators correctly. The metaschema’s schema dialect is chosen correctly now, and metaschema formats are now checked by default. This can be disabled with--disable-format.Fix the resolution of
$schemadialect to format checker classesFix package dependency lower bounds, including setting
jsonschema>=4.5.1Output colorization can now be controlled with
--color [never|always|auto]. Thanks @WillDaSilva!
0.20.0¶
Update vendored schemas: bamboo-spec, buildkite, dependabot, github-actions, github-workflows, gitlab-ci, readthedocs, renovate, travis (2023-01-03)
Add
--fill-defaultsargument which eagerly populates"default"values whenever they are encountered and a value is not already present (#200)Add Buildkite schema and pre-commit hook (#198)
0.19.2¶
Update vendored schemas: gitlab-ci, renovate (2022-11-14)
Downloads of schemas from remote (http/https) locations will now retry if the downloaded data is not valid JSON (#183)
Remove the deprecated
--show-all-validation-errorsoptionAdd support for Python 3.11, and
tomllibas an alternative totomliThe github-actions hook now requires a filename of
action.ymloraction.yamlfor action definitions in.github/actions/, in accordance with the GitHub Documentation (#186)
0.19.1¶
Fix handling of file descriptors created using the
/proc/self/fd/mechanism (#176)
0.19.0¶
Update vendored schemas: github-workflows, gitlab-ci, renovate (2022-11-10)
Improve the behaviors of filetype detection.
--default-filetypenow defaults tojson, and can be passedtomlorjson5if those parsers are installed. Detection is now only done by suffix mapping and will not attempt to read files.
0.18.4¶
Update vendored schemas: bamboo-spec, dependabot, github-workflows, gitlab-ci, renovate (2022-10-20)
Tweak format checker usage to avoid deprecation warning from
jsonschemaThe Azure Pipelines data transform is now more permissive, which should allow it to handle a wider variety of pipelines files (#162)
0.18.3¶
Update vendored schemas: github-actions, github-workflows, renovate, travis (2022-09-13)
0.18.2¶
Fix handling of certain YAML parsing errors on bad inputs
0.18.1¶
Fix erroneous type annotations
0.18.0¶
Update vendored schemas: azure-pipelines, github-workflows, gitlab-ci, renovate (2022-08-27)
When an instancefile is invalid and cannot be parsed, validation is still run on all other files. The run will be marked as failed, but a more detailed report will be output, including validation failures on other files (#141)
0.17.1¶
Update vendored schemas: renovate (2022-07-13)
Update check-github-workflows match rule to exclude subdirectories of the
.github/workflows/directory. (#113)
0.17.0¶
Update vendored schemas: renovate, travis (2022-06-29)
Add support for
--data-transform gitlab-ci, which enables expansion of the!referencetag in gitlab CI YAML files. This is now enabled by default on the gitlab-ci pre-commit hook.Support for various file formats has been refactored to share code between the instance and schema loaders. Schema loading can now support the same formats as instances with minimal effort.
Support loading schemas from JSON5 files. Like YAML schemas, this is only supported for local files and warns if refs to other JSON5 files are used.
Introduce new documentation site at https://check-jsonschema.readthedocs.io
0.16.2¶
0.16.1¶
Update vendored schemas: github-workflows, gitlab-ci, renovate (2022-06-21)
0.16.0¶
Update vendored schemas: gitlab-ci, renovate (2022-06-06)
Add support for TOML instance files using
tomli. See documentation on optional parsers for details. Thanks to @mondeja for the request and test data!Instance files are now read in binary mode, not UTF-8 encoded
The behavior of format checkers is now more draft-specific, as
check-jsonschemawill now use the appropriate checker for the schema’s dialect as detected via the$schemaattribute
0.15.1¶
Update vendored schemas: bamboo-spec, dependabot, github-actions, github-workflows, gitlab-ci, readthedocs, renovate, travis (2022-05-26)
Add
check-dependabotto supported hooks
0.15.0¶
Update vendored schemas: renovate, gitlab, github-workflow, github-actions, azure-pipelines, readthedocs (2022-05-13)
Use
clickto implement CLI parsing. This provides several internal features as well as shell completion support.Add support for
--versionas an optionAdd support for the
NO_COLOR=1When loading schema references, check for a suffix of
.ya?mland emit a warning. This does not abort loading the reference.When loading YAML instance files, non-string object keys will be stringified. This makes YAML data better conform to the requirements for JSON Schema.
Change usage of stderr/stdout to send more of the error information to stdout and more of the user-messaging to stderr
Deprecate
--show-all-validation-errors. It will be removed in a future release.Add
-v/--verboseand-o/--output-formatto offer better control over output.--verbosereplaces--show-all-validation-errorsand-ocan be used to request JSON output as in-o JSON.
0.14.3¶
Update vendored schemas: renovate, gitlab-ci (2022-04-13)
check-jsonschemanow treats all instance files as UTF-8, regardless of the platform and locale. This ensures that files are handled uniformly between *nix and Windows
0.14.2¶
Update vendored schemas: renovate, github-workflows, gitlab-ci (2022-03-30)
Fix the vendored schema for GitLab to pull from the correct location. Thanks @dsch for the fix!
0.14.1¶
Update vendored schemas: azure-pipelines, renovate (2022-03-17)
Allow invocation via
python -m check_jsonschema
0.14.0¶
Drop support for python3.6 and improve internal type annotations
Update vendored schemas (2022-02-28)
Improve handling of file-URI inputs on Windows
- Add support for a new hook,
check-metaschema, which invokes check-jsonschema --check-metaschema
- Add support for a new hook,
- The
check-jsonschemarepo has moved to a new home at
- The
0.13.0¶
- Add support for
--check-metaschema, which validates each instance file as a JSON Schema, using the metaschema specified by
"$schema"
- Add support for
--builtin-schemanow validates its arguments (withchoices=...), and itsoptions are automatically picked up from the internal schema catalog and listed in the
--helpoutput
0.12.0¶
- Add support for JSON5 files when
pyjson5orjson5is installed, and update the Renovate hook to list JSON5 config files. If a JSON5 file is checked without one of the necessary packages installed, a special error with installation instructions will be raised
- Add support for JSON5 files when
Add hooks for GitLab CI and Bamboo Specs
Remove the
--failover-builtin-schemabehavior. Now that vendored schemas are used by default for hooks, this option had very limited utility.Update vendored schemas (2022-02-16)
0.11.0¶
Add support for
--data-transform azure-pipelinesto handle compile-time expressions in Pipelines files. This option is applied to the azure pipelines hook (#29)Improve handing of validation errors from schemas with
anyOfandoneOfclauses. Show the “best match” from underlying errors, and add an option--show-all-validation-errorswhich displays all of the underlying errorsUse vendored schemas in all hooks, not latest schemastore copies. This ensures that hook behavior is consistent (#38)
Update vendored schemas (2022-02-12)
Use
requeststo make HTTP requests, and retry request failures
0.10.2¶
Fix the
check-renovatehook, which was skipping all files. Do not attempt to check JSON5 files, which are not supported. Thanks to @tpansino for the contribution!Update vendored schema versions (2022-02-01)
0.10.1¶
Use pypa’s
buildtool to build distsUpdate vendored schema versions (2022-01-27)
0.10.0¶
Support YAML as a format for schema files (local schemas only). Thanks to @yyuu for the contribution!
0.9.1¶
Update Azure Pipelines and ReadTheDocs hooks to always download latest schemas (rather than specific versions). This is safe now that they can failover to builtin schemas
Update Azure Pipelines schema to latest
0.9.0¶
Format checking now has special handling for the
regexformat. The default looks for recognizable syntaxes which indicate the use of an engine-specific regex feature which cannot be parsed in python. Such regexes are always treated as valid. To get strict python behavior (the previous behavior), use--format-regex=python. For no regex checking at all, without disabling other formats, use--format-regex=disabled. resolves #20Add a hook for Renovate Bot config,
check-renovate. Note that the hook does not support config inpackage.json(all other configuration locations are supported)
0.8.2¶
Add ReadTheDocs hook
0.8.1¶
Bugfix for package metadata to include builtin schemas
0.8.0¶
check-jsonschemanow ships with vendored versions of the external schemas used for the default suite of hooks. The vendored schemas are used as a failover option in the event that downloading an external schema fails. This resolves #21New CLI options,
--builtin-schemaand--failover-builtin-schemaare available to access the builtin schemas. See documentation for details.Use the latest version (version 4) of the
jsonschemalibrary. Note thatjsonschemahas dropped support for python3.6, andcheck-jsonschemawill therefore usejsonschemaversion 3 when running on python3.6The path shown in error messages is now a valid JSONPath expression
0.7.1¶
Bugfix: validation errors were not being displayed correctly.
Errors are now sent to stderr instead of stdout.
0.7.0¶
Exception tracebacks for several known-cases are printed in a shortened format. A new option,
--traceback-modecan be used to request long traces, as in--traceback-mode fullFor schemas which do not include
$id, the schema URI will be used for$refresolution. This applies to HTTP(S) schema URI as well as to local paths. Thanks to @dkolepp for the bug report and contributions!
0.6.0¶
Add support for string format verification, by enabling use of the
jsonschema.FormatChecker. This is enabled by default, but can be disabled with the--disable-formatflag
0.5.1¶
Improved error output when the schema itself is invalid, either because it is not JSON or because it does not validate under its relevant metaschema
0.5.0¶
Added the
--default-filetypeflag, which sets a default of JSON or YAML loading to use whenidentifydoes not detect the filetype of an instance file. Defaults to failure on extensionless files.Schemafiles are now passed through
os.path.expanduser, meaning that a schema path of~/myschema.jsonwill be expanded by check-jsonschema itself (#9)Performance enhancement for testing many files: only load the schema once
Added
--no-cacheoption to disable schema cachingChange the default schema download cache directory from
jsonschema_validatetocheck_jsonschema/downloads. e.g.~/.cache/jsonschema_validateis now~/.cache/check_jsonschema/downloads. Caches will now be in the following locations for different platforms and environments:$XDG_CACHE_HOME/check_jsonschema/downloads(Linux/other, XDG cache dir)~/.cache/check_jsonschema/downloads(Linux/other, no XDG cache dir set)~/Library/Caches/check_jsonschema/downloads(macOS)%LOCALAPPDATA%\check_jsonschema\downloads(Windows, local app data set)%APPDATA%\check_jsonschema\downloads(Windows, no local app data set, but appdata set)
0.4.1¶
Update the azure-pipelines schema version to latest. Thanks to @Borda
0.4.0¶
Fix a bug with parallel runs writing the same file in an unsafe way
Update the base cache directory on macOS to
~/Library/Caches/. Thanks to @foolioo
0.3.2¶
Bugfix: handle last-modified header being un-set on schema request. Thanks to @foolioo for the fix!
0.3.1¶
Bugfix: handle non-string elements in the json path. Thanks to @Jean-MichelBenoit for the fix!
0.3.0¶
Don’t show full schemas on errors. Show only the filename, path, and message
Convert from package to single module layout
0.2.1¶
Add hooks for additional CI systems: Azure pipelines, GitHub Actions, and Travis
0.2.0¶
Add
check-github-workflowshook
0.1.1¶
Set min pre-commit version
0.1.0¶
Initial version