Skip to content

Releases: NeurodataWithoutBorders/matnwb

v2.10.0 - Bug fixes and documentation refactor

18 Dec 09:52

Choose a tag to compare

Tested On Platforms
MATLAB Versions Tested
Supported NWB Schema

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.parseGroup by @ehennestad in #736
  • Skip warning if timestamps_reference_time is missing (it is set automatically) by @ehennestad in #731
  • Refactor SoftLink validation + add automatic SoftLink resolution on file read by @ehennestad in #738
  • Refactor ObjectView validation by @ehennestad in #739
  • Fix validation of data property for Dataset-based types by @ehennestad in #742
  • Added getTypeObjects method to NwbFile class by @ehennestad in #745
  • Fix class generator to work for unnamed Link specifications by @Copilot in #732
  • Fix dataset dtype validation for dataset properties reused via inclusion by @ehennestad in #740
  • Fix file.fillValidation for nested groups and nested hdmf primitives by @ehennestad in #744
  • Fix validation of property when property value is a Dataset class with a compound dtype by @ehennestad in #753
  • Improve performance when creating links on file read/import by @ehennestad in #754
  • Fix specification for data property of Dataset types by @ehennestad in #757
  • Refactor DataStub for 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 DataPipe objects by @ehennestad in #724
  • Refactor / simplify DataStub/export method by @ehennestad in #767
  • Fix read for scalar compound dataset by @ehennestad in #761
  • Fix: Ensure DataStub's size is updated when the underlying dataset is expanded via a DataPipe by @ehennestad in #766
  • Fix detection of MatNWB version (#770) by @ehennestad in #771
  • Fix bugs in DynamicTable's addColumn method 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 IndexSeries to 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

Full Changelog: 2.9.0...2.10.0

2.9.0

03 Jul 14:03

Choose a tag to compare

Tested On Platforms
MATLAB Versions Tested

MatNWB API

  • Changed DataPipe shape validation to rely on maxSize instead 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

Full Changelog: 2.8.1...2.9.0

2.8.1 - Add DandiHub edition of read NWB file tutorial

06 May 19:20

Choose a tag to compare

Tested On Platforms
MATLAB Versions Tested

What's Changed

  • Add DandiHub edition of read NWB file tutorial (modified) by @ehennestad, @vijayiyer05 in #704, #702
  • Add utility function io.config.applyDatasetConfiguration function 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 nwbRead if 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

03 Apr 06:32

Choose a tag to compare

Tested On Platforms
MATLAB Versions Tested

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 core and hdmf-common specifications 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.SoftLink should 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 toTable when a dynamic table was read from file using nwbRead by @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, EventDetection and FeatureExtraction neurodata types to ecephys tutorial by @ehennestad in #631
  • Add examples for MotionCorrection, CorrectedImageStack and DeltaFOverF neurodata types to ophys tutorial by @ehennestad in #629
  • Add examples for CurrentClamp* neurodata types to icephys tutorial by @ehennestad in #632
  • Add example for DecompositionSeries neurodata 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_frame to match size of external_file in 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

19 Nov 15:36
e070e20

Choose a tag to compare

What's Changed

MatNWB API

Documentation

Developer

New Contributors

Full Changelog: v2.6.0.2...v2.7.0

Major Compatibility Bugfix Release

30 May 16:59
92a65a3

Choose a tag to compare

What's Changed

Full Changelog: v2.6.0.1...v2.6.0.2

Major Bugfix Release For 2.6.0

28 Feb 17:33
5492118

Choose a tag to compare

Bug Fixes

  • Fixes major validation error in #494 not allowing constrained sets across multiple types.
  • Fix default subclass properties (#470)
  • Empty data is defaults to H5S_NULL (#436)

Schema 2.6.0 Support Release

17 Jan 20:44
4bb8ef2

Choose a tag to compare

  • Add support for NWB schema 2.6.0
  • Add proper boolean support (#467) and other type-related fixes (#459, #463, #461)
  • Fix compatibility with older MATLAB versions (#464)
  • Clarify (#474) and update (#483) existing documentation.
  • Add ROS3 reading documentation (#471)
  • Various utility script fixes (#476)

Schema 2.5.0 Support Release

15 Aug 20:17
2e17d54

Choose a tag to compare

  • 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)

Usability and Bugfix Release

05 May 12:47
1836b93

Choose a tag to compare

  • Dynamic Table majorly overhauled (#394, #364, #385, #378, #366, #301)
  • Reverted namespace changes back to a single install repository (#362)
  • Added DataPipe slicing similar to DataStub slicing (#337)
  • Major bugfixes
    • DataPipe size-related bugs (#404, #402)
    • Fixed a bug regarding property validation (#395)
    • Type checking fixes (#394, #389)
    • Major DataPipe fixes (#375)
  • Updated tutorials
    • Dynamic filter usage (#419)
    • Dynamic Table usage (#320)
    • Fixed automatically generated documentation for properties (#391)
    • Defined new rules to clarify and simplify MATLAB<->HDF5 dimension mapping (#382)
  • New logo