Skip to content

Make sure we are using synchronized versions of LinkML packages.#10

Merged
gouttegd merged 1 commit intomainfrom
fix-linkml-breakage
Mar 17, 2026
Merged

Make sure we are using synchronized versions of LinkML packages.#10
gouttegd merged 1 commit intomainfrom
fix-linkml-breakage

Conversation

@gouttegd
Copy link
Copy Markdown
Collaborator

Some of the Python dependencies we need to run workflows are themselves dependent on LinkML, which means they cause the installation of both linkml and its dependency linkml-runtime.

It seems that these two packages must always be kept "in sync", but there are no explicit constraints in either of them to enforce that.

So, we can end up linkml version 1.9.5 coupled with linkml-runtime version 1.10.0. That combination is perfectly valid according to the various version constraints (there is no formal constraint that linkml 1.9.5 must use linkml-runtime < 1.10.0 -- and unless I missed something there is also no warning in the documentation that users should take care of always using the same version of these two packages), but it is broken in practice, because of some breaking changes that happened in linkml-runtime 1.10.0 (removal of a Format.JSON enumeration value).

Sigh. Not only did the LinkML developers remove a public symbol in a minor release, they did so without so much as a warning in the release notes. LinkML, I obscenity in the milk of thy callous disregard for semantic versioning.

So in this commit, we explicitly declare that we require version 1.10.0 at least of both linkml and linkml-runtime.

Some of the Python dependencies we need to run workflows are themselves
dependent on LinkML, which means they cause the installation of both
`linkml` and its dependency `linkml-runtime`.

It seems that these two packages must always be kept "in sync", but
there are no explicit constraints in either of them to enforce that.

So, we can end up `linkml` version 1.9.5 coupled with `linkml-runtime`
version 1.10.0. That combination is perfectly valid according to the
various version constraints (there is _no_ formal constraint that
`linkml` 1.9.5 must use `linkml-runtime` < 1.10.0 -- and unless I missed
something there is also no warning in the documentation that users
should take care of always using the same version of these two
packages), but it is broken in practice, because of some breaking
changes that happened in `linkml-runtime` 1.10.0 (removal of a
`Format.JSON` enumeration value).

Sigh. Not only did the LinkML developers remove a public symbol in a
minor release, they did so without so much as a warning in the release
notes. LinkML, I obscenity in the milk of thy callous disregard for
semantic versioning.

So in this commit, we explicitly declare that we require version 1.10.0
at least of _both_ `linkml` and `linkml-runtime`.
@gouttegd gouttegd self-assigned this Mar 15, 2026
@gouttegd gouttegd requested a review from matentzn March 15, 2026 20:33
@gouttegd gouttegd merged commit f0f56e1 into main Mar 17, 2026
7 checks passed
@gouttegd gouttegd deleted the fix-linkml-breakage branch March 17, 2026 17:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant