bids-standard / bids-specification

Brain Imaging Data Structure (BIDS) Specification
https://bids-specification.readthedocs.io/
Creative Commons Attribution 4.0 International
264 stars 154 forks source link

Inheritance Principle: Advise against overloading #1834

Open Lestropie opened 1 month ago

Lestropie commented 1 month ago

Re-commit of b7a3ab625a7c1994d3984f3eb79c4811449e7e2b that was rejected as a late addition to #1807; re-posting here for separate review as suggested.

I've become progressively convinced that the ability to overload metadata fields via Inheritance is a major source of the disparity in opinions about the Inheritance Principle. Regardless of whether you like or hate it, where I think there should be consensus is that overloading should not be intentionally used, even if BIDS 1.x explicitly permits it and it was used as one of the key demonstrative examples.

The proposed change hopefully also helps to contextualise why the subsequent text is a complex but necessary set of rules.

codecov[bot] commented 1 month ago

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 88.04%. Comparing base (40af25c) to head (a4a1fab).

Additional details and impacted files ```diff @@ Coverage Diff @@ ## master #1834 +/- ## ======================================= Coverage 88.04% 88.04% ======================================= Files 16 16 Lines 1380 1380 ======================================= Hits 1215 1215 Misses 165 165 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

effigies commented 1 month ago

Seems reasonable to me. If there's consensus here, it would be ideal to raise a validator warning and to provide a tool to remove overrides from datasets automatically, with validation being the more important.

Lestropie commented 1 month ago

provide a tool to remove overrides from datasets automatically

Good idea; added to my list.