Pin linkml-map to main and fix runtime 1.11 fallout#211
Conversation
There was a problem hiding this comment.
Pull request overview
This PR updates dependency resolution to use unreleased linkml-map behavior and adjusts affected schema/adapter/importer code for linkml-runtime 1.11 compatibility.
Changes:
- Pins
linkml-mapvia uv source and refreshes locked LinkML-related dependencies. - Updates adapter transform specs to use
SchemaReference-stylesource_schema/target_schema. - Fixes runtime fallout in XSD importing, instance extraction, and an RDFS prefix test fixture.
Reviewed changes
Copilot reviewed 7 out of 8 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
pyproject.toml |
Adds uv source override for linkml-map and changes dependency declaration. |
uv.lock |
Refreshes locked dependency versions and records git-sourced linkml-map. |
schema_automator/adapters/dbgap/dbgap_to_dd.transform.yaml |
Converts schema references to mapping form. |
schema_automator/adapters/frictionless/dd_to_frictionless.transform.yaml |
Converts schema references to mapping form. |
schema_automator/adapters/frictionless/frictionless_to_dd.transform.yaml |
Converts schema references to mapping form. |
schema_automator/importers/xsd_import_engine.py |
Registers generated classes after attributes are populated. |
schema_automator/utils/instance_extractor.py |
Falls back from missing slot alias to slot name. |
tests/test_importers/test_rdfs_importer.py |
Updates prefix fixture and expected schema id with trailing slash. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| # Pinned to linkml-map main (see [tool.uv.sources]) — recent work | ||
| # adds dot-path populated_from, safe-builtin functions, dictionary_key, | ||
| # strict expression mode, and the SchemaReference shape for | ||
| # source/target_schema. The EML importer and the next batch of | ||
| # adapters need these. This pin also satisfies the is_str / | ||
| # is_bool / is_list predicate need that the *reverse* Frictionless | ||
| # adapter has — the xfail in tests/test_adapters/test_frictionless.py | ||
| # can come off once we're on a real release tag. Restore a version | ||
| # constraint and drop the source override here when 0.5.3+ releases. | ||
| "linkml-map", |
There was a problem hiding this comment.
Correct — [tool.uv.sources] is uv-only and the wheel's Requires-Dist is unconstrained. Not solving in this PR: we're deliberately holding this branch (and #212) until linkml-map 0.5.3 releases, at which point the pin reverts to a regular version constraint. Switching to a PEP 508 direct-URL form (linkml-map @ git+...) would propagate to pip but block any release from this state (PyPI rejects direct-URL deps), which is an even worse interim. Leaving open as a tracked concern; we expect this to be naturally resolved when 0.5.3 ships and we drop the pin.
There was a problem hiding this comment.
Acknowledged but by design — this PR is the temporary dev infrastructure noted in the PR body ("Revert the pin (back to a version constraint) when linkml-map 0.5.3+ releases"). The [tool.uv.sources] directive lets uv sync resolve to linkml-map main for local/CI work depending on unreleased features. Once linkml-map 0.5.3 hits PyPI, this becomes a normal >= 0.5.3 constraint in [project.dependencies] that the published wheel will carry. Leaving this thread open as a visible reminder to make that swap before merge.
Prerequisite for the EML importer (#208) and adjacent adapter work that needs unreleased linkml-map features: dot-path `populated_from`, safe-builtin functions, `dictionary_key`, strict expression mode.
Pinning surfaces fallout from the linkml-runtime 1.10 → 1.11 transition:
All 160 tests pass. Revert the pin (back to a version constraint) when linkml-map 0.5.3+ releases.
Test plan