Releases: NeurodataWithoutBorders/matnwb
Releases · NeurodataWithoutBorders/matnwb
v2.10.0 - Bug fixes and documentation refactor
Note: Previously, MatNWB releases were tightly coupled to NWB schema releases, with MatNWB version numbers mirroring the corresponding schema versions. As of this release, that coupling has been discontinued, allowing MatNWB to adopt independent semantic versioning.
What's Changed
MatNWB API
- Fix parsing for hard and external link types in
io.parseGroupby @ehennestad in #736 - Skip warning if
timestamps_reference_timeis missing (it is set automatically) by @ehennestad in #731 - Refactor
SoftLinkvalidation + add automaticSoftLinkresolution on file read by @ehennestad in #738 - Refactor
ObjectViewvalidation by @ehennestad in #739 - Fix validation of
dataproperty for Dataset-based types by @ehennestad in #742 - Added
getTypeObjectsmethod toNwbFileclass by @ehennestad in #745 - Fix class generator to work for unnamed Link specifications by @Copilot in #732
- Fix dataset
dtypevalidation for dataset properties reused via inclusion by @ehennestad in #740 - Fix
file.fillValidationfor nested groups and nested hdmf primitives by @ehennestad in #744 - Fix validation of property when property value is a Dataset class with a compound
dtypeby @ehennestad in #753 - Improve performance when creating links on file read/import by @ehennestad in #754
- Fix specification for
dataproperty of Dataset types by @ehennestad in #757 - Refactor
DataStubfor better cloud performance by @ehennestad in #755 - Fix bugs related to reading logical and enum data types by @ehennestad in #758
- Improve shape validation of
DataPipeobjects by @ehennestad in #724 - Refactor / simplify
DataStub/exportmethod by @ehennestad in #767 - Fix read for scalar compound dataset by @ehennestad in #761
- Fix: Ensure
DataStub'ssizeis updated when the underlying dataset is expanded via aDataPipeby @ehennestad in #766 - Fix detection of MatNWB version (#770) by @ehennestad in #771
- Fix bugs in
DynamicTable'saddColumnmethod by @ehennestad in #775
Documentation
- Documentation: Improvements to "Reading NWB Files" section by @ehennestad in #769
- Update images tutorial - Update text, reorder sections and add
IndexSeriesto file by @ehennestad in #743 - Fix remote read tutorial by @stephprince in #734
- Add copy button to code blocks in tutorials by @ehennestad in #730
- Documentation: Restructure documentation based on Diátaxis framework by @ehennestad in #729
Developer
- [CI] Update release workflow to create badge with supported NWB schema versions by @ehennestad in #777
- [CI] Add skip flag for nwbinspector tests in GitHub Actions test workflows by @ehennestad in #773
- [CI] Add MATLAB releases R2025a and R2025b to matrix in test workflows by @ehennestad in #765
- Change range and target for code coverage by @ehennestad in #752
- [CI] Add copilot setup workflow and copilot instructions by @ehennestad in #750
New Contributors
- @stephprince made their first contribution in #734
- @Copilot made their first contribution in #732
Full Changelog: 2.9.0...2.10.0
2.9.0
MatNWB API
- Changed DataPipe shape validation to rely on
maxSizeinstead of actual size. by @ehennestad in #716 - Updated class generator to skip setting inherited properties in subclass constructor by @ehennestad in #721
- Improved error messages when export of internal DataPipes fails by @ehennestad in #718
- Fixed shape validation for TimeSeries and subtypes of PatchClampSeries by @ehennestad in #714
- Support NWB schema v2.9.0 by @ehennestad in #719
Developer
- Updated test workflow to run lighter testing on draft PRs by @ehennestad in #720
- Support running test workflow manually by @ehennestad in #725
Full Changelog: 2.8.1...2.9.0
2.8.1 - Add DandiHub edition of read NWB file tutorial
What's Changed
- Add DandiHub edition of read NWB file tutorial (modified) by @ehennestad, @vijayiyer05 in #704, #702
- Add utility function
io.config.applyDatasetConfigurationfunction for applying pre-set or custom options for chunking and compression of datasets in NWB file by @ehennestad in #636 - Add error and warning in
nwbReadif potential NWB schema version conflicts are detected by @ehennestad in #707
Full Changelog: 2.8.0...2.8.1
v2.8.0 Support NWB Schema 2.8.0
MatNWB API
- Add support for NWB schemas v2.8.0 by @ehennestad in #630
- Add function for installing extensions (
nwbInstallExtension) by @ehennestad in #637 - Add wrapper function for running nwbinspector (
inspectNwbFile) by @ehennestad in #684 - Change: Ensure
coreandhdmf-commonspecifications are embedded in NWBFile by default by @ehennestad in #674 - Change: Only embed specs/namespaces for types that are included in NWB file on export by @ehennestad in #615
- Fix: Make inherited read-only datasets from schema read-only properties in matnwb by @ehennestad in #640
- Fix:
types.untyped.SoftLinkshould now throw an error if an unsupported neurodata type is provided as input (issue #559) by @ehennestad in #634 - Improve error message if adding neurodata types of the wrong types as property values of other neurodata type objects by @ehennestad in #638
- Change: Throw error on export if required dependent properties are missing by @ehennestad in #667
- Change: Support adding string type as value to neurodata object properties by @ehennestad in #675
- Fix: getRow method for dynamic table by @ehennestad in #648
- Fix: bug in
toTablewhen a dynamic table was read from file usingnwbReadby @ehennestad in #669 - Fix: Mark required attribute- and link-properties as required by @ehennestad in #655
- Fix: bug when exporting scalar text by @ehennestad in #652
Documentation and tutorials
- Add requirements to README by @ehennestad in #687
- Add examples for
FilteredEphys,EventDetectionandFeatureExtractionneurodata types to ecephys tutorial by @ehennestad in #631 - Add examples for
MotionCorrection,CorrectedImageStackandDeltaFOverFneurodata types to ophys tutorial by @ehennestad in #629 - Add examples for CurrentClamp* neurodata types to icephys tutorial by @ehennestad in #632
- Add example for
DecompositionSeriesneurodata type to ecephys tutorial by @ehennestad in #623 - Use sphinx to generate docs and move documentation to readthedocs by @ehennestad in #643
- Update README.md by @ehennestad in #614 & #647
- Fix value of
external_file_starting_frameto match size ofexternal_filein Images tutorial by @ehennestad in #662 - Fix hyperlinks in tutorial livescripts by @ehennestad in #691
Developer
- Update test suite: Suppress output & expected warnings + improve performance by @ehennestad in #658
- Replace Clustering with SpatialSeries in PyNWBIOTest by @ehennestad in #678
- Update branch name references from master to main by @ehennestad in #664
- Add matrix testing across multiple MATLAB releases by @bendichter in #685
- Add GitHub Actions release workflow with extensive matrix testing by @ehennestad in #699
Minor
- Allow using empty array when indexing on DataStub object by @ehennestad in #605
- Fix warning if property attribute not exported by @ehennestad in #657
- Improve performance of if block in file.fillConstructor by @ehennestad in #656
- Refactor: Replace try/catch with if/else in types.untyped.ObjectView by @ehennestad in #666
- Change display of "empty" types.untyped.Set object (Issue #561) by @ehennestad in #616
- Add functions for inferring directory of generated types by @ehennestad in #681
- Update Open In MATLAB Online badge in README.md by @ehennestad in #689
- Fix compatibility issue in io.writeCompound for MATLAB R2019b and earlier by @ehennestad in #693
- Fix parsing of quantity specification value by @ehennestad in #695
- Fill in "general_was_generated_by" when exporting nwb file by @ehennestad in #700
Full Changelog: v2.7.0...2.8.0
v2.7.0 Support NWB Schema 2.7
What's Changed
MatNWB API
- Support legacy namespace names by @lawrence-mbf in #403
- Add extra generated checks for attributes by @lawrence-mbf in #518
- Allow string inputs for most interfaces by @lawrence-mbf in #522
- Shrink int to auto-map to int8 by @lawrence-mbf in #523
- Fix missing ids and columns in Intracellular Recordings Tables by @lawrence-mbf in #520
- Fix multidimensional equality checks for arrays by @lawrence-mbf in #524
- Replace and Update Datetime Parser by @lawrence-mbf in #525
- Properly Convert References in Compound Datasets by @lawrence-mbf in #529
- Check Component Order by @lawrence-mbf in #530
- Add explicit checks to DataStub indices by @lawrence-mbf in #514
- Add warning when schema is not supported by @lawrence-mbf in #531
- Add new raw/scratch script by @lawrence-mbf in #534
- Add Filtered Ephys Reference by @lawrence-mbf in #539
- Fix concatenation error by @lawrence-mbf in #545
- Prepend comment blocks with % by @lawrence-mbf in #549
- Actually exit the function if dataset is not resizable by @lawrence-mbf in #551
- Lower extra properties, datasets, groups, and links to warn instead of error by @lawrence-mbf in #552
- Remove NWB:N by @bendichter in #554
- Pregenerate class files in the repo by @lawrence-mbf in #556
- Fix inherited readonly props by @ehennestad in #560
- Remove positive number validation for getRow ind. by @bendichter in #311
- Support NWB Schema 2.7.0 by @lawrence-mbf in #575
- Fixes issue #585 ( bug in io.timestamp2datetime ) by @ehennestad in #586
- Fix getRow function for dynamic table if row data is an array where ndims is 3 or higher by @ehennestad in #590
- Improve warning message at types util check unset by @ehennestad in #593
- Add warning on export if some attributes are not written to file by @ehennestad in #596
- Fix bug in nwbToTable (Issue #597 ) by @ehennestad in #598
- Fix typos by @ehennestad in #608
- Fix syntax error by @ehennestad in #609
- Add check on file export to ensure all required properties are filled out by @ehennestad in #600
Documentation
- Update Ecephys tutorial by @bendichter in #517
- Add
EnumDatato DynamicTable tutorial by @lawrence-mbf in #533 - Adapt Read Demo tutorial by @lawrence-mbf in #536
- Add
IndexSeriesto Images tutorial by @lawrence-mbf in #537 - Add One-Photon Section to Ophys tutorial by @lawrence-mbf in #538
- Improve tutorials by @bendichter in #568
- Add
AbstractFeatureSeriesexample to Images tutorial (Issue 581) by @ehennestad in #582 - Add example for creating
pixel_maskto Ophys tutorial (inspired by #572) by @ehennestad in #577 - Add trials table to nwb file in Intro tutorial by @bendichter in #599
- Add "from MATLAB Table" example to DynamicTable tutorial by @ehennestad in #604
- Fix convertTrials tutorial (#515) by @ehennestad in #594
- Add code section for MATLAB expressions in "Remote Read" tutorial by @ehennestad in #610
- Add live launch buttons by @ehennestad in #591
Developer
- Properly ignore files for coverage by @lawrence-mbf in #553
- Improve Data Pipe Coverage by @lawrence-mbf in #557
- Update PyNWBIOTest.m by @ehennestad in #578
- Test tutorial files across matnwb and pynwb by @ehennestad in #587
- Improve test coverage by @ehennestad in #589
- Convert Azure Pipeline to Github Actions by @lawrence-mbf in #543
- Delete unused developer utility scripts (
UpdateThirdPartyFromUpstream.sh,setuNWB.iss)by @ehennestad in #611
New Contributors
- @ehennestad made their first contribution in #560
Full Changelog: v2.6.0.2...v2.7.0
Major Compatibility Bugfix Release
What's Changed
- Major compatibility fix for any PyNWB file generated with a Units table by @lawrence-mbf in #506
- add optogenetics tutorial by @bendichter in #497
- Create Project Actions by @mavaylon1 in #485
- Remove international datestring parsing for version checks by @lawrence-mbf in #509
Full Changelog: v2.6.0.1...v2.6.0.2
Major Bugfix Release For 2.6.0
Schema 2.6.0 Support Release
Schema 2.5.0 Support Release
- Support Schema 2.5.0 (#435)
- Add New Dynamic Filters support for DataPipe objects (#428)
- Improve compatibility across MATLAB versions (#438)
- Improve tutorials, documentation, and discoverability thereof (#454, #451, #450, #443, #442, #441, #440, #439)
- Fix bug involving dynamic table validation with compound types (#433)
- Fix ambiguity in resolving data size (#431)