# 2.1.1 — 2025-09-26 ## Added - Additional (dataset-defined) columns are now validated against the definitions in the sidecar files. - Throw error on file name case collision. - Add support for the `unique()` function in schema expressions. - Support issues messages that access validation context variables. ## Changed - Initial column TSV checks now support missing, optional initial columns. - Index column TSV checks now support missing, optional index columns. - Now supports Deno 2.5 and Typescript 5.9.2. - Parsed JSON files are now cached to reduce I/O and parsing costs. - Throw an error if specified schema (e.g. via `--schema` or `BIDS_SCHEMA` env var) could not be loaded. ## Fixed - File access failures consistently produce `FILE_READ` errors across all file types. - Fixed json encoding issue in web log download ([#174]). - Throw utf-8 encoding error for tsv files similar to json files. [#174]: https://github.com/bids-standard/bids-validator/issues/174 # 2.1.0 — 2025-09-03 This release adds support for BIDS 1.10.1. ## Added - Load `.tsv.gz` column contents for validation. - Issue deprecation warning for `"89+"` in `age` columns, per [bids-standard/bids-specification#2162][]. - Added support for extracting image orientation from NIfTI headers, added to the BIDS schema in 1.10.1. ## Changed - Raise errors for all TSV type check failures. Previously, recommended and optional fields would raise warnings. - Updated `@bids/schema` to ~1.1.0, corresponding to BIDS version 1.10.1. ## Fixed - Avoid descending into opaque directories (such as `*.zarr/`) when checking for unused sidecars. ([#227]) [#227]: https://github.com/bids-standard/bids-validator/issues/227 [bids-standard/bids-specification#2162]: https://github.com/bids-standard/bids-specification/pull/2162 # 2.0.11 — 2025-08-29 ## Fixed - Docker build workflow should now run correctly on releases. # 2.0.10 — 2025-08-29 ## Added - Added a [FAQ] to the user guide. ([#215]) [FAQ]: https://bids-validator.readthedocs.io/en/latest/user_guide/faq.html [#215]: https://github.com/bids-standard/bids-validator/issues/215 ## Changed - Improved handling of TSV columns with sidecar definitions. `"Format"`, `"Minimum"` and `"Maximum"` keys are now supported. - `--datasetTypes` and `--blacklistModalities` options now accept a string array (`--datasetTypes raw,derivative`) and can be combined. ## Fixed - A crash in the web validator prevented validation from taking place. ## Infrastructure - Docker images will once again be pushed to [bids/validator][]. [bids/validator]: https://hub.docker.com/r/bids/validator/ # "2.0.9" — 2025-08-26 ## Added - Display version in web app - The `--datasetTypes` flag accepts a list of `DatasetType`s, allowing applications to restrict the datasets they accept. ## Changed - Upgraded to BIDS schema version 1.0.13. - Raise error when JSON files are parsed and their root value is anything other than an object # "2.0.8" — 2025-08-07 ## Added - Support multi-inheritance for associated files. This will allow for multiple `electrodes.tsv` files, distinguished by the `space-` entity. ([#206] [#207]) [#206]: https://github.com/bids-standard/bids-validator/issues/206 [#207]: https://github.com/bids-standard/bids-validator/pull/207 # 2.0.7 — 2025-06-03 ## Changed - Handle TSV schema rules with missing or `n/a` values for `additional_columns`. # "2.0.6" — 2025-05-23 ## Added - Explain the issue data fields in the documentation. ([#199]) [#199]: https://github.com/bids-standard/bids-validator/pull/199 ## Changed - Validator now returns exit code 16 instead of 1 for validation of a dataset with errors. - Rely on `schema.meta.associations` to load context associations instead of relying on list maintained in validator. ## Fixed - Sidecar checks are skipped for text files that should not have sidecars. This resolves a problem in derivative datasets, where BIDS specifies a RECOMMENDED field of `Description` in all derivative files. ([#202]) [#202]: https://github.com/bids-standard/bids-validator/issues/202 # 2.0.5 — 2025-03-31 A hot-fix release that adds missing entries to the 2.0.4 changelog and fixes publication to PyPI. # 2.0.4 — 2025-03-31 ## Added - Validate directory names names according to `schema.rules.directories` entries. Use rules to identify "opaque" directories whose contents are unspecified by BIDS. ([#180]) [#180]: https://github.com/bids-standard/bids-validator/pull/180 - Report field descriptions for missing or invalid metadata. ([#177]) [#177]: https://github.com/bids-standard/bids-validator/pull/177 - Publish validator to PyPI as `bids-validator-deno`. ([#186]) [#186]: https://github.com/bids-standard/bids-validator/pull/186 ## Changed - Update to HED Validator 4.0.0. ([#173]) [#173]: https://github.com/bids-standard/bids-validator/pull/173 # 2.0.3 — 2025-02-24 ## Fixed - Subject detection in `participants.tsv` and `phenotype/` directories has been restored, enabling checks that were deactivated by the missing data. ([#162]) [#162]: https://github.com/bids-standard/bids-validator/pull/162 - Skip HED tests if schema cannot be loaded. This was exhibiting as a `HED_ERROR` with "cannot read property null". ([#160]) [#160]: https://github.com/bids-standard/bids-validator/pull/160 - `TSV_INCORRECT_VALUE_TYPE*` error messages now indicate that a match failed, instead of confusingly claim success. ([#165]) [#165]: https://github.com/bids-standard/bids-validator/pull/165 # 2.0.2 — 2025-02-10 ## Added - Enable glob-style wildcards for `location` field in configuration files. (#134) ## Changed - Ensure HED schemas are loaded only once, improving efficiency. (#156) - Change the output of the `intersects()` function in the expression language to return the intersection, if non-empty. Corresponds to [bids-standard/bids-specification#2044]. (#150) - Update to BIDS schema version 1.0.1 (BIDSVersion 1.10.0) (#152) - Limit TSV validation to first 1000 rows by default, adding the `--max-rows` flag to control this behavior. (#139) [bids-standard/bids-specification#2044]: https://github.com/bids-standard/bids-specification/pull/2044 ## Fixed - TSV files may now have columns named `set`, `clear`, `delete`, `keys`, or `value`. These were previously masked by the methods on the data structure representing columns. (#155) - Improve handling of `.bidsignore` files in the web validator. Ignores matching directories but not the files they contained could fail to match. (#113) - Resolve issue with parsing headers of NIfTI files with large extensions. Fixes [issue 126]. [issue 126]: https://github.com/bids-standard/bids-validator/issues/126 ## Infrastructure - Adopting [scriv](https://scriv.readthedocs.io/en/latest/) for changelog management. # 2.0.1 — 2024-12-10 ## Fixed - Improve handling of `.bidsignore` files in the web validator. Ignores matching directories but not the files they contained could fail to match. (#113) - Resolve issue with parsing headers of NIfTI files with large extensions. Fixes [issue 126]. [issue 126]: https://github.com/bids-standard/bids-validator/issues/126 ## Infrastructure - Adopting [scriv](https://scriv.readthedocs.io/en/latest/) for changelog management.