-
Update to BIDS Schema v1.2.1 (BIDS v1.11.1)
-
The web validator now renders Markdown in issue messages.
- Validating directory names is now skipped for unknown
DatasetTypes indataset_description.json. Previously this would crash, preventing the error inDatasetTypevalues from being reported to the user.
- Added a pre-commit configuration for developers.
To enable, run
pre-commit install. For speed, we recommend installingpre-commitviauv tool install pre-commit --with=pre-commit-uv.
- Update to BIDS Schema v1.2.0 (BIDS v1.11.0)
- 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.
Mismatch between version and tag. Re-releasing for consistency. No other changes.
-
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.
- 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.
- Reverted terminal URLs for the 2.2.x series. It should be back in 2.3.0.
- 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.
-
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.
- 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.
- Annexed files with base-64-encoded version information are now supported.
- 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.
-
Support
min()andmax()of numbers in the expression language. This allows for simpler rules when a field may be a number or array of numbers. -
Annexed 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_ENCODINGissues now print sensible messages instead of crashing.
-
Support for
associations.physioandassociations.events.sidecar. -
Implement
associations.coordsystemsto collate multiplecoordsystem.jsonfiles, as required by BEP 042 (EMG).
- Validation context generation was tweaked to improve concurrency, giving 4x validation speedups in some cases.
-
Added
--formatoption to specify output format:text(default),json, orjson_pp(pretty-printed JSON) -
Pretty-printed JSON output support via
--format json_ppoption -
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
- Deprecated
--jsonoption in favor of--format json(backward compatibility maintained)
-
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
--schemaorBIDS_SCHEMAenv var) could not be loaded.
-
File access failures consistently produce
FILE_READerrors 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.
This release adds support for BIDS 1.10.1.
-
Load
.tsv.gzcolumn contents for validation. -
Issue deprecation warning for
"89+"inagecolumns, 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/schemato ~1.1.0, corresponding to BIDS version 1.10.1.
- Avoid descending into opaque directories (such as
*.zarr/) when checking for unused sidecars. (#227)
- Docker build workflow should now run correctly on releases.
-
Improved handling of TSV columns with sidecar definitions.
"Format","Minimum"and"Maximum"keys are now supported. -
--datasetTypesand--blacklistModalitiesoptions 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.
-
Display version in web app
-
The
--datasetTypesflag accepts a list ofDatasetTypes, 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
- Support multi-inheritance for associated files.
This will allow for multiple
electrodes.tsvfiles, distinguished by thespace-entity. (#206 #207)
- Handle TSV schema rules with missing or
n/avalues foradditional_columns.
- Explain the issue data fields in the documentation. (#199)
-
Validator now returns exit code 16 instead of 1 for validation of a dataset with errors.
-
Rely on
schema.meta.associationsto 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
Descriptionin all derivative files. (#202)
A hot-fix release that adds missing entries to the 2.0.4 changelog and fixes publication to PyPI.
- Validate directory names names according to
schema.rules.directoriesentries. Use rules to identify "opaque" directories whose contents are unspecified by BIDS. (#180)
- Report field descriptions for missing or invalid metadata. (#177)
- Publish validator to PyPI as
bids-validator-deno. (#186)
- Update to HED Validator 4.0.0. (#173)
- Subject detection in
participants.tsvandphenotype/directories has been restored, enabling checks that were deactivated by the missing data. (#162)
- Skip HED tests if schema cannot be loaded. This was exhibiting
as a
HED_ERRORwith "cannot read property null". (#160)
TSV_INCORRECT_VALUE_TYPE*error messages now indicate that a match failed, instead of confusingly claim success. (#165)
- Enable glob-style wildcards for
locationfield 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-rowsflag to control this behavior. (#139)
-
TSV files may now have columns named
set,clear,delete,keys, orvalue. These were previously masked by the methods on the data structure representing columns. (#155) -
Improve handling of
.bidsignorefiles 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.
- Adopting scriv for changelog management.
-
Improve handling of
.bidsignorefiles 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.
- Adopting scriv for changelog management.