Skip to content

Reconsider dependency on sssom_schema? #659

Description

@gouttegd

SSSOM-Py currently depends on sssom_schema, the Python package provided by the mapping-commons/sssom repository (the repository holding the SSSOM spec and documentation.

That package provides 3 things:

  • the sssom_schema.datamodel.sssom_schema.py Python module, containing the Python data classes representing the SSSOM data model (the MappingSet and Mapping classes and the associated enums);
  • the sssom_schema.yaml LinkML schema, which is used by SSSOM-Py to get some details about the data model that are not contained within the generated data classes;
  • the sssom_schema.context.jsonld file, which is used by SSSOM-Py for JSONLD-related stuff.

It’s not immediately clear to me what are the benefits of getting those files from a released version of sssom_schema, compared to embedding them directly into this SSSOM-Py repository. And there is at least one very clear drawback, which is that SSSOM-Py cannot start supporting any new thing from the SSSOM schema until we’ve had a release of sssom_schema on PyPI. This is what forced us to start making “pre-releases” of sssom_schema, which apparently are now causing problems with uv because uv has seemingly strong opinions about dependencies that are in pre-release stage.

So I would like to suggest that we should consider dropping the dependency on sssom_schema, and instead start bundling “vendored” copies of the aforementioned three files, copied directly from the mapping-commons/sssom repository. We would then be able to update those files whenever we feel like it, without having to go through a PyPI release of sssom_schema.

(This in turn would raise the question of “what is the point of the sssom_schema package”, to which my instinctive answer would be “none”.)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions