Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Tags: bids-standard/bids-validator

Tags

2.4.0

Toggle 2.4.0's commit message

Verified

This tag was signed with the committer’s verified signature.
effigies Chris Markiewicz
<!-- scriv-insert-here -->

<a id='changelog-"2.4.0"'></a>

- Update to BIDS Schema v1.2.0 (BIDS v1.11.0)

<a id='changelog-"2.3.2"'></a>

- File reads are temporarily cached to avoid multiple fetches/opens.

- Retrieval of remote data on S3 is now more robust, avoiding resource leaks
  by setting timeouts and a reasonable retry protocol.

<a id='changelog-"2.3.1"'></a>

Mismatch between version and tag. Re-releasing for consistency. No other changes.

<a id='changelog-"2.3.0"'></a>

- Improve types for memoized functions by passing argument and return types to callers.

- Render Markdown links as OSC-8 links in terminals where support is detected.

- Exit with a non-zero exit code if nested datasets are validated and found to have errors.

- Prevent HED check from failing for null values found in sidecar metadata.

<a id='changelog-"2.2.10"'></a>

- Improve types for memoized functions by passing argument and return types to callers.

- Extract AWS region from S3 special remote, defaulting to us-east-1.

<a id='changelog-"2.2.9"'></a>

- Reverted terminal URLs for the 2.2.x series. It should be back in 2.3.0.

<a id='changelog-"2.2.8"'></a>

- Render Markdown links as OSC-8 links in terminals where support is detected.

- Fix typo in S3 URL generation code that prevented reading remote files.

<a id='changelog-"2.2.7"'></a>

- Maintainer documentation for creating and fixing releases.

- Support for rendering Markdown in validation messages in the terminal.

- Display validation summaries for derivative datasets when recursive validation
  (`-r`/`--recursive`) is run.

- Support for presigning S3 URLs if AWS credentials are detected.

- Validate derivative file paths relative to the derivative dataset root.

- Have all three calls to fetch in HttpOpener use same error handling.

- Fix memoization memory leak for readRemotes.

- Replace SPEC_ROOT placeholder with actual documentation link in CLI output

- Pin Deno to 2.5.6 in wheel builds to account for bugs with MacOS binaries compiled with 2.6.0.

<a id='changelog-"2.2.5"'></a>

- Support for template and cohort directories, as introduced in BEP038.

- The AMBIGUOUS_AFFINE issue was given an error message and set to warning.

- Very oblique affines are no longer considered ambiguous.

- Resolved TypeError when rendering issues for JSON outputs.

<a id='changelog-"2.2.4"'></a>

- Annexed files with base-64-encoded version information are now supported.

<a id='changelog-"2.2.3"'></a>

- NIfTI files with bad qform matrices, resulting from non-normalized quaternions,
  would previously raise a NIFTI_HEADER_UNREADABLE error. Now only the axis codes
  are disabled, preventing orientation checks, but not raising errors.

<a id='changelog-"2.2.2"'></a>

- Support `min()` and `max()` of numbers in the expression language.
  This allows for simpler rules when a field may be a number or array of numbers.

- [Annexed](https://git-annex.branchable.com/) files that are not local are treated as
  empty instead of erroring if a remote URL could not be constructed. The size of missing
  files are included in the summary estimate of dataset size.

- `INVALID_FILE_ENCODING` issues now print sensible messages instead of crashing.

<a id='changelog-"2.2.1"'></a>

- Support for `associations.physio` and `associations.events.sidecar`.

- Implement `associations.coordsystems` to collate multiple `coordsystem.json` files,
  as required by BEP 042 (EMG).

- Validation context generation was tweaked to improve concurrency, giving 4x validation
  speedups in some cases.

<a id='changelog-"2.2.0"'></a>

- Added `--format` option to specify output format: `text` (default), `json`, or `json_pp` (pretty-printed JSON)
- Pretty-printed JSON output support via `--format json_pp` option

- Datalad/git-annex datasets with remote content in public S3 buckets can be validated
  with the `--preferredRemote <remote-name>` flag. If a public S3 bucket is detected without
  this flag, the most recent export is used.

- Refactored file access classes to be more DRY.

- Circular references that could lead to a hanging process were mitigated. [#278]

[#278]: #278

- Deprecated `--json` option in favor of `--format json` (backward compatibility maintained)

<a id='changelog-2.1.1'></a>

- 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.

- 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.

- 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]: #174

<a id='changelog-2.1.0'></a>

This release adds support for BIDS 1.10.1.

- 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.

- 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.

- Avoid descending into opaque directories (such as `*.zarr/`) when checking
  for unused sidecars. ([#227])

[#227]: #227
[bids-standard/bids-specification#2162]: bids-standard/bids-specification#2162

<a id='changelog-2.0.11'></a>

- Docker build workflow should now run correctly on releases.

<a id='changelog-2.0.10'></a>

- Added a [FAQ] to the user guide. ([#215])

[FAQ]: https://bids-validator.readthedocs.io/en/latest/user_guide/faq.html
[#215]: #215

- 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.

- A crash in the web validator prevented validation from taking place.

- Docker images will once again be pushed to [bids/validator][].

[bids/validator]: https://hub.docker.com/r/bids/validator/

<a id='changelog-"2.0.9"'></a>

- Display version in web app

- The `--datasetTypes` flag accepts a list of `DatasetType`s,
  allowing applications to restrict the datasets they accept.

- 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

<a id='changelog-"2.0.8"'></a>

- Support multi-inheritance for associated files.
  This will allow for multiple `electrodes.tsv` files,
  distinguished by the `space-` entity. ([#206] [#207])

[#206]: #206
[#207]: #207

<a id='changelog-2.0.7'></a>

- Handle TSV schema rules with missing or `n/a` values for `additional_columns`.

<a id='changelog-"2.0.6"'></a>

- Explain the issue data fields in the documentation. ([#199])

[#199]: #199

- 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.

- 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]: #202
<a id='changelog-2.0.4'></a>

A hot-fix release that adds missing entries to the 2.0.4 changelog and fixes publication to PyPI.

<a id='changelog-2.0.4'></a>

- Validate directory names names according to `schema.rules.directories` entries.
  Use rules to identify "opaque" directories whose contents are unspecified by BIDS.
  ([#180])

[#180]: #180

- Report field descriptions for missing or invalid metadata. ([#177])

[#177]: #177

- Publish validator to PyPI as `bids-validator-deno`. ([#186])

[#186]: #186

- Update to HED Validator 4.0.0. ([#173])

[#173]: #173

<a id='changelog-2.0.3'></a>

- Subject detection in `participants.tsv` and `phenotype/` directories
  has been restored, enabling checks that were deactivated by the missing
  data. ([#162])

[#162]: #162

- Skip HED tests if schema cannot be loaded. This was exhibiting
  as a `HED_ERROR` with "cannot read property null". ([#160])

[#160]: #160

- `TSV_INCORRECT_VALUE_TYPE*` error messages now indicate that a match
  failed, instead of confusingly claim success. ([#165])

[#165]: #165

<a id='changelog-2.0.2'></a>

- Enable glob-style wildcards for `location` field in configuration files. (#134)

- 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]: bids-standard/bids-specification#2044

- 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]: #126

- Adopting [scriv](https://scriv.readthedocs.io/en/latest/) for changelog
  management.

<a id='changelog-2.0.1'></a>

- 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]: #126

- Adopting [scriv](https://scriv.readthedocs.io/en/latest/) for changelog
  management.

2.3.2

Toggle 2.3.2's commit message
<!-- scriv-insert-here -->

<a id='changelog-"2.3.2"'></a>

- File reads are temporarily cached to avoid multiple fetches/opens.

- Retrieval of remote data on S3 is now more robust, avoiding resource leaks
  by setting timeouts and a reasonable retry protocol.

<a id='changelog-"2.3.1"'></a>

Mismatch between version and tag. Re-releasing for consistency. No other changes.

<a id='changelog-"2.3.0"'></a>

- Improve types for memoized functions by passing argument and return types to callers.

- Render Markdown links as OSC-8 links in terminals where support is detected.

- Exit with a non-zero exit code if nested datasets are validated and found to have errors.

- Prevent HED check from failing for null values found in sidecar metadata.

<a id='changelog-"2.2.10"'></a>

- Improve types for memoized functions by passing argument and return types to callers.

- Extract AWS region from S3 special remote, defaulting to us-east-1.

<a id='changelog-"2.2.9"'></a>

- Reverted terminal URLs for the 2.2.x series. It should be back in 2.3.0.

<a id='changelog-"2.2.8"'></a>

- Render Markdown links as OSC-8 links in terminals where support is detected.

- Fix typo in S3 URL generation code that prevented reading remote files.

<a id='changelog-"2.2.7"'></a>

- Maintainer documentation for creating and fixing releases.

- Support for rendering Markdown in validation messages in the terminal.

- Display validation summaries for derivative datasets when recursive validation
  (`-r`/`--recursive`) is run.

- Support for presigning S3 URLs if AWS credentials are detected.

- Validate derivative file paths relative to the derivative dataset root.

- Have all three calls to fetch in HttpOpener use same error handling.

- Fix memoization memory leak for readRemotes.

- Replace SPEC_ROOT placeholder with actual documentation link in CLI output

- Pin Deno to 2.5.6 in wheel builds to account for bugs with MacOS binaries compiled with 2.6.0.

<a id='changelog-"2.2.5"'></a>

- Support for template and cohort directories, as introduced in BEP038.

- The AMBIGUOUS_AFFINE issue was given an error message and set to warning.

- Very oblique affines are no longer considered ambiguous.

- Resolved TypeError when rendering issues for JSON outputs.

<a id='changelog-"2.2.4"'></a>

- Annexed files with base-64-encoded version information are now supported.

<a id='changelog-"2.2.3"'></a>

- NIfTI files with bad qform matrices, resulting from non-normalized quaternions,
  would previously raise a NIFTI_HEADER_UNREADABLE error. Now only the axis codes
  are disabled, preventing orientation checks, but not raising errors.

<a id='changelog-"2.2.2"'></a>

- Support `min()` and `max()` of numbers in the expression language.
  This allows for simpler rules when a field may be a number or array of numbers.

- [Annexed](https://git-annex.branchable.com/) files that are not local are treated as
  empty instead of erroring if a remote URL could not be constructed. The size of missing
  files are included in the summary estimate of dataset size.

- `INVALID_FILE_ENCODING` issues now print sensible messages instead of crashing.

<a id='changelog-"2.2.1"'></a>

- Support for `associations.physio` and `associations.events.sidecar`.

- Implement `associations.coordsystems` to collate multiple `coordsystem.json` files,
  as required by BEP 042 (EMG).

- Validation context generation was tweaked to improve concurrency, giving 4x validation
  speedups in some cases.

<a id='changelog-"2.2.0"'></a>

- Added `--format` option to specify output format: `text` (default), `json`, or `json_pp` (pretty-printed JSON)
- Pretty-printed JSON output support via `--format json_pp` option

- Datalad/git-annex datasets with remote content in public S3 buckets can be validated
  with the `--preferredRemote <remote-name>` flag. If a public S3 bucket is detected without
  this flag, the most recent export is used.

- Refactored file access classes to be more DRY.

- Circular references that could lead to a hanging process were mitigated. [#278]

[#278]: #278

- Deprecated `--json` option in favor of `--format json` (backward compatibility maintained)

<a id='changelog-2.1.1'></a>

- 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.

- 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.

- 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]: #174

<a id='changelog-2.1.0'></a>

This release adds support for BIDS 1.10.1.

- 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.

- 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.

- Avoid descending into opaque directories (such as `*.zarr/`) when checking
  for unused sidecars. ([#227])

[#227]: #227
[bids-standard/bids-specification#2162]: bids-standard/bids-specification#2162

<a id='changelog-2.0.11'></a>

- Docker build workflow should now run correctly on releases.

<a id='changelog-2.0.10'></a>

- Added a [FAQ] to the user guide. ([#215])

[FAQ]: https://bids-validator.readthedocs.io/en/latest/user_guide/faq.html
[#215]: #215

- 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.

- A crash in the web validator prevented validation from taking place.

- Docker images will once again be pushed to [bids/validator][].

[bids/validator]: https://hub.docker.com/r/bids/validator/

<a id='changelog-"2.0.9"'></a>

- Display version in web app

- The `--datasetTypes` flag accepts a list of `DatasetType`s,
  allowing applications to restrict the datasets they accept.

- 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

<a id='changelog-"2.0.8"'></a>

- Support multi-inheritance for associated files.
  This will allow for multiple `electrodes.tsv` files,
  distinguished by the `space-` entity. ([#206] [#207])

[#206]: #206
[#207]: #207

<a id='changelog-2.0.7'></a>

- Handle TSV schema rules with missing or `n/a` values for `additional_columns`.

<a id='changelog-"2.0.6"'></a>

- Explain the issue data fields in the documentation. ([#199])

[#199]: #199

- 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.

- 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]: #202
<a id='changelog-2.0.4'></a>

A hot-fix release that adds missing entries to the 2.0.4 changelog and fixes publication to PyPI.

<a id='changelog-2.0.4'></a>

- Validate directory names names according to `schema.rules.directories` entries.
  Use rules to identify "opaque" directories whose contents are unspecified by BIDS.
  ([#180])

[#180]: #180

- Report field descriptions for missing or invalid metadata. ([#177])

[#177]: #177

- Publish validator to PyPI as `bids-validator-deno`. ([#186])

[#186]: #186

- Update to HED Validator 4.0.0. ([#173])

[#173]: #173

<a id='changelog-2.0.3'></a>

- Subject detection in `participants.tsv` and `phenotype/` directories
  has been restored, enabling checks that were deactivated by the missing
  data. ([#162])

[#162]: #162

- Skip HED tests if schema cannot be loaded. This was exhibiting
  as a `HED_ERROR` with "cannot read property null". ([#160])

[#160]: #160

- `TSV_INCORRECT_VALUE_TYPE*` error messages now indicate that a match
  failed, instead of confusingly claim success. ([#165])

[#165]: #165

<a id='changelog-2.0.2'></a>

- Enable glob-style wildcards for `location` field in configuration files. (#134)

- 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]: bids-standard/bids-specification#2044

- 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]: #126

- Adopting [scriv](https://scriv.readthedocs.io/en/latest/) for changelog
  management.

<a id='changelog-2.0.1'></a>

- 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]: #126

- Adopting [scriv](https://scriv.readthedocs.io/en/latest/) for changelog
  management.

2.3.1

Toggle 2.3.1's commit message

Verified

This tag was signed with the committer’s verified signature.
effigies Chris Markiewicz
2.3.1 — 2026-01-27

Mismatch between version and tag. Re-releasing for consistency. No other changes.

2.3.0

Toggle 2.3.0's commit message

Verified

This tag was signed with the committer’s verified signature.
effigies Chris Markiewicz
2.3.0 — 2026-01-27

Changed

- Improve types for memoized functions by passing argument and return types to callers.

- Render Markdown links as OSC-8 links in terminals where support is detected.

Fixed

- Exit with a non-zero exit code if nested datasets are validated and found to have errors.

- Prevent HED check from failing for null values found in sidecar metadata.

2.2.10

Toggle 2.2.10's commit message

Verified

This tag was signed with the committer’s verified signature.
effigies Chris Markiewicz
2.2.10 — 2026-01-15

Changed

- Improve types for memoized functions by passing argument and return types to callers.

Fixed

- Extract AWS region from S3 special remote, defaulting to us-east-1.

2.2.9

Toggle 2.2.9's commit message

Verified

This tag was signed with the committer’s verified signature.
effigies Chris Markiewicz
2.2.9 — 2026-01-15

Changed

- Reverted terminal URLs for the 2.2.x series. It should be back in 2.3.0.

2.2.8

Toggle 2.2.8's commit message

Verified

This tag was signed with the committer’s verified signature.
effigies Chris Markiewicz
2.2.8

Changed

- Render Markdown links as OSC-8 links in terminals where support is detected.

Fixed

- Fix typo in S3 URL generation code that prevented reading remote files.

2.2.7

Toggle 2.2.7's commit message

Verified

This tag was signed with the committer’s verified signature.
effigies Chris Markiewicz
2.2.7

Added

- Maintainer documentation for creating and fixing releases.
- Support for rendering Markdown in validation messages in the terminal.
- Display validation summaries for derivative datasets when recursive validation
  (`-r`/`--recursive`) is run.
- Support for presigning S3 URLs if AWS credentials are detected.

Fixed

- Validate derivative file paths relative to the derivative dataset root.
- Have all three calls to fetch in HttpOpener use same error handling.
- Fix memoization memory leak for readRemotes.
- Replace SPEC_ROOT placeholder with actual documentation link in CLI output

Infrastructure

- Pin Deno to 2.5.6 in wheel builds to account for bugs with MacOS binaries compiled with 2.6.0.

2.5.6

Toggle 2.5.6's commit message
Workaround for CI publish to not fail on wheel build.

2.2.6

Toggle 2.2.6's commit message
Fix mistyped tag...