Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add 'version' key for included namespaces #11

Open
rly opened this issue Feb 25, 2021 · 0 comments
Open

Add 'version' key for included namespaces #11

rly opened this issue Feb 25, 2021 · 0 comments
Labels
category: proposal discussion of proposed enhancements or new features priority: medium non-critical problem and/or affecting only a small set of NWB users
Milestone

Comments

@rly
Copy link
Contributor

rly commented Feb 25, 2021

As new versions of schema A are released, schema A may no longer be compatible with schema B that includes schema A. Older versions of schema A may also not be compatible with schema B that includes schema A.

For example, if the hdmf-common schema has a type X but changes it in a compatibility breaking way from version 2 to version 3, then my extension will break if hdmf-common schema version 3 is loaded. It should be restricted to versions <3.

If the hdmf-common schema introduces a new type X in version 1.4 and my extension schema depends on that new type, then my extension will break if hdmf-common schema version 1.3 is loaded. It should be restricted to versions >=1.4.

These should be combinable and support >, >=, ==, !=, <, and <=, just like in pip requirements specs and conda requirements specs. See https://www.python.org/dev/peps/pep-0440/ and https://www.python.org/dev/peps/pep-0508/

This would be the value for a key "version" under namespaces[i] > schema[i] alongside "namespace" and "data_types", like the following:

namespaces:
- author:
  - ...
  contact:
  - ...
  doc: ...
  name: ndx-my-ext
  schema:
  - namespace: core
    version: >=2,<3
    neurodata_types:
    - NWBDataInterface
    - DynamicTable
    - VectorData
    - VectorIndex
  - source: ndx-my-ext.extensions.yaml
  version: 0.2.0
@oruebel oruebel added the category: proposal discussion of proposed enhancements or new features label Sep 16, 2021
@rly rly added this to the Future milestone Jan 5, 2023
@rly rly added the priority: medium non-critical problem and/or affecting only a small set of NWB users label Jan 5, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category: proposal discussion of proposed enhancements or new features priority: medium non-critical problem and/or affecting only a small set of NWB users
Projects
None yet
Development

No branches or pull requests

2 participants