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
    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