v0.9.8 - openMINDS v5 types and property validation
This release adds the generated classes for openMINDS v5 and tightens property validation across all model versions. Existing code keeps working; note the raised minimum MATLAB release and one removed validator.
Added
- Generated type classes for openMINDS v5 (#92), with the tutorials and test fixtures brought up to the v5 actor and membership model and the v4 tutorials archived (#90).
- A preference,
AddControlledInstanceToCollection, controlling whether controlled instances become nodes of a collection, and anAbortIfNodeExistsoption onCollection.add(#79). IsPropertyOfonPropertyValueChangedEventData, so a listener can tell which instance a property change came from, including inside arrays of instances and linked properties (#78).- Separate minimum- and maximum-length validators,
mustBeMinLengthandmustBeMaxLength(#93).
Changed
- Property validation in the generated types now follows the schema's cardinality rules: optional scalars accept empty, list properties that must not be empty say so, and multiple constraints combine (#94, #97).
- An instance folder of the controlled instance library without a specified type mapping now warns once instead of raising an error (#82).
- Controlled instances are no longer pinned to model version 4 (
v4.0) (#98). - The minimum supported MATLAB release is R2022a (#100).
Removed
- The
mustBeSpecifiedLengthvalidator, replaced by the minimum- and maximum-length pair (#93).
Fixed
string()of an empty instance returns an empty string, and a scalar""is treated as empty in controlled terms (#77).- Property change events are raised from the correct instance when a property of an array element or a subset is modified (#78).
- The versioned controlled-term base class is activated when switching model version, so v2 and v3 controlled terms construct correctly after a switch (#89).
- Vocabulary name matching and indexing are case-insensitive, and no longer assume a homogeneous types vocabulary (#86).
- Display labels regenerated for v1, v2, v5 and latest; v5
OrganizationusedfullNamewhere the schema hasname(#95).
Internal
- Metatype tests updated for v5 (#96), pinned action versions updated (#88), and
codemeta.jsonupdated for the previous release (#75).
All merged pull requests
What's Changed
- Update codemeta.json for newest release by @ehennestad in #75
- Fix string conversion for empty metadata instance objects by @ehennestad in #77
- Fix event notifications for instance changes by @ehennestad in #78
- Enhance node addition logic in
Collectionclass by @ehennestad in #79 - Replace error with warning for unmapped instance folders by @ehennestad in #82
- Fix: case-insensitive name matching and indexing for vocab metadata by @ehennestad in #86
- Add: Generated classes for v5 by @ehennestad in #92
- Fix tests and tutorials for openMINDS v5 by @ehennestad in #90
- Fix controlled term base activation for schema versions by @ehennestad in #89
- Update array length validators by @ehennestad in #93
- Fix property validation for generated types by @ehennestad in #94
- Regenerate display labels after generator fix by @ehennestad in #95
- Fix: update metatype tests for v5 by @ehennestad in #96
- Update generated types after fixing scalar range defaults by @ehennestad in #97
- Update
getControlledInstance.mby @ehennestad in #98 - Update MinimumMatlabRelease to R2022a by @ehennestad in #100
Other: Continuous Integration
- [CI] Update pinned action versions by @ehennestad in #88
Full Changelog: v0.9.7...v0.9.8