NeurodataWithoutBorders / matnwb

A Matlab interface for reading and writing NWB files
BSD 2-Clause "Simplified" License
49 stars 32 forks source link

Create a Schema Selector using cached files #242

Closed lawrence-mbf closed 3 years ago

lawrence-mbf commented 4 years ago

For certain files that do not have a cached spec, there needs to be an automated method to generate classes based on a "best guess" based on the nwb_version string.

This method cannot be used with the assumption of a pre-existing git command so we will have to cache all previous nwb-schema versions 2.1 and above into their own directories. We would then implement a selector to read from the correct schema version and generate the closest class files from there. Note that this is only for cases where the cached schema does not exist in the file itself.

Extensions will still need to be provided by the user.

Tickets that may be in conflict with this change: #239, #17

bendichter commented 4 years ago

Why can't we rely on git for this?

lawrence-mbf commented 4 years ago

This is for the Brainstorm support, whose users may not actually have git. Is that not what we agreed on?

bendichter commented 4 years ago

I meant calling git from MATLAB under the hood. But you are right if we can't assume that users have git then maybe caching is better

oruebel commented 4 years ago

That being said, I think you should be able to set this up in the MatNWB repo as a collection of submodules that pull in all tagged versions of the nwb-schema when cloning the repo. In that way you would at least not have to maintain copies in the repo itself and you should automatically get new versions as they come out, rather than having to add them by hand. @rly @ajtritt