You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Done?
A harvester plugin extracts metadata and returns a (partial) metadata object. This would be very useful for reuse in packers that work with the same kinds of data.
bag:
Done ?
A generalized "bag" of functionality that is not worthy to be versioned separately, like a module, only that we put it in a class. Uses:
Bag of types (for hints that are not schemas)
Bag of helper functions
ensure that bags cannot have any further inheritance, because that would be insane.
mapping:
Done?
A mapping plugin defines a set of mappings between versioned schema plugins (registering each single mapping as an entry point is nonsense because the number of mappings is quadratic in the number of existing schemas, so let's group them).
Mappings are needed for cases where transformation is not implicit (i.e. not taken care of by schema inheritance, and not taken care of by semantic versioning, e.g. mapping between major versions are necessary).
The mapping interface should provide automatic mapping path between two schemas, if possible ("(schema,mapping) graph search")
we will need this when starting to work on searchability and interoperability of metadata.
As it is not possible to have two versions of the same plugin installed (same entry point), a workaround could be that a mapping simply brings the schemas it maps in the declared version and uses them for parsing and serializing.
Probably mapping plugins never need major version increments and only should do minor increments when adding new mappings.
This discussion was converted from issue #11 on September 24, 2022 12:17.
Heading
Bold
Italic
Quote
Code
Link
Numbered list
Unordered list
Task list
Attach files
Mention
Reference
Menu
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
Possible candidates include:
harvester
:A harvester plugin extracts metadata and returns a (partial) metadata object. This would be very useful for reuse in packers that work with the same kinds of data.
bag
:A generalized "bag" of functionality that is not worthy to be versioned separately, like a module, only that we put it in a class. Uses:
ensure that bags cannot have any further inheritance, because that would be insane.
mapping
:A mapping plugin defines a set of mappings between versioned schema plugins (registering each single mapping as an entry point is nonsense because the number of mappings is quadratic in the number of existing schemas, so let's group them).
Mappings are needed for cases where transformation is not implicit (i.e. not taken care of by schema inheritance, and not taken care of by semantic versioning, e.g. mapping between major versions are necessary).
The
mapping
interface should provide automatic mapping path between two schemas, if possible ("(schema,mapping) graph search")we will need this when starting to work on searchability and interoperability of metadata.
As it is not possible to have two versions of the same plugin installed (same entry point), a workaround could be that a mapping simply brings the schemas it maps in the declared version and uses them for parsing and serializing.
Probably mapping plugins never need major version increments and only should do minor increments when adding new mappings.
CLI
:see #9
Beta Was this translation helpful? Give feedback.
All reactions