Skip to content

[WIP] Support schema 2.10.0#794

Draft
ehennestad wants to merge 10 commits intomainfrom
wip-support-schema-2.10.0
Draft

[WIP] Support schema 2.10.0#794
ehennestad wants to merge 10 commits intomainfrom
wip-support-schema-2.10.0

Conversation

@ehennestad
Copy link
Copy Markdown
Collaborator

@ehennestad ehennestad commented Mar 24, 2026

Motivation

Add schemas for NWB schema version 2.10.0 to repository

How to test the behavior?

Show here how to reproduce the new behavior (can be a bug fix or a new feature)

Todo

  • Pending release of NWB schema 2.1.0
  • Add addMeanings utility method in the types.util.dynamictable namespace and write it into the DynamicTable class on type generation. See this comment
  • HERD moves into hdmf_common namespace. PR [BugFix] Fix dtype mapping in type generator #815 fixing a runtime validation bug in the HERD class should be merged.
  • Rerun matnwb_generateRstFilesFromCode to ensure new types and moved types are correctly represented in the docs

Checklist

  • Have you ensured the PR description clearly describes the problem and solutions?
  • Have you checked to ensure that there aren't other open or previously closed Pull Requests for the same change?
  • If this PR fixes an issue, is the first line of the PR description fix #XX where XX is the issue number?

@ehennestad ehennestad marked this pull request as draft March 24, 2026 13:26
@ehennestad ehennestad force-pushed the wip-support-schema-2.10.0 branch from 529f330 to ce9e212 Compare April 17, 2026 09:38
Replace the old SKIP_PYNWB_COMPATIBILITY_TEST_FOR_TUTORIALS env var with SKIP_PYNWB_TESTS across tests and nwbtest.m, and update +tests/nwbtest.default.env.
Update CI workflow matrix keys and usage in prepare_release.yml, run_tests.yml, and configurations/matlab_release_matrix_strategy.yml to use the new key (matrix.skip-pynwb-tests) and wire the MATLAB setenv accordingly.
Move conditional installation of pynwb into the workflows (install pynwb only when skip-pynwb-tests == '0') and remove the direct git+ dependency from +tests/requirements.txt (update comment to reflect conditional installs).
Also add TestTags = {'UsesPython'} to PyNWBIOTest.

These changes centralize the CI control of pynwb installation and standardize the skip variable name.
checking if this class attribute trips up docs build
@ehennestad ehennestad force-pushed the wip-support-schema-2.10.0 branch from ce9e212 to 7431c68 Compare April 17, 2026 09:58
@ehennestad ehennestad force-pushed the wip-support-schema-2.10.0 branch from 3b5f288 to 3163245 Compare April 17, 2026 10:07
@ehennestad
Copy link
Copy Markdown
Collaborator Author

The new meanings_tables property of the DynamicTable class is functionally equivalent to e.g the acquisition group on the NWB file.

However, some extra validation should occur when adding a MeaningsTable.

  1. The name of the entry should have the postfix "_meanings" and the suffix should match one of the named elements in the colnames property.
  2. The linked VectorData object in the target property must match the VectorData object in the DynamicTable with the name matching the suffix of the MeaningsTable object's name.
  3. All unique values of the linked VectorData must be present in the VectorData object stored in the values property. This validation might belong in the MeaningsTable constructor or the validate_values method of the MeaningsTable class.

To add MeaningsTables to a DynamicTable we will add a convenience method called addMeanings to ensure these extra constraints are checked. However, if someone calls the add or set method directly on the meanings_tables Set on the DynamicTable these extra checks are not present. The validations above should also be added as a custom hook in the validate_meanings_tables method of the DynamicTable.

Add step to prune existing files before regenerating
Remove HERD from hdmf_experimental
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant