Closed hsolbrig closed 12 months ago
The above "use case" mainly focuses on "access" to a given version of a model.
However, this issue also direct relates to a practical issue about how to automatically synchronise the Git ("release/version") tags of a given model project and ensuring that the model itself (as defined by its "master" YAML model file) also has the corresponding version: tag properly set (e.g. the Biolink Model).
Thinking off the top of my head, it seems perhaps feasible to have a Github Action script component read a set version: tag in the master model YAML file (e.g. in biolink-model.yaml) then use a call to the Github API to automatically (re-)create a suitable Git Tag (and release?) for the commit in which the version: tag is (re-)set?
See also my thoughts under https://github.com/biolink/biolink-model/pull/417.
@hsolbrig, you mentioned that @jiaola has ideas how to do this or that some project named the Common Terminology Services 2 project had a useful strategy. Is there some document that describes what they did? @cmungall would like us to have some solid strategy in place to synchronize versioning at all the relevant levels: in the model YAML file; in the Git Hub repo (tag/release) and in terms of third party URL access to a given version (including resolving synonyms like "latest" or "by major version # or lower)
I recommend same practices as is common in OBO
See for example the ODK instructions:
(we may want something like ODK for blml, i.e. a template system to make a new blml project)
it's also easy to write python scripts that will do the whole release process, we do this for mondo
See issue biolink/biolinkml#251 as well
Is this still relevant?
Yes - very much so. This is a non-trivial task, but I think we need to make it front and center. I believe that there is a poetry add-on that helps with this, but I don't recollect what it is off the top of my head
Maybe @sujaypatil96 knows?
Added to linkML (not the model) here https://github.com/linkml/linkml/pull/1048 - The plugin is https://github.com/mtkennerly/poetry-dynamic-versioning
This is done
We need to versioning support models generated via biolinkml. The language supports a version identifier but, at the moment, there is no way to reference anything but the latest version of a given model via perma-id.
It shouldn't be difficult to add a version to the w3id path, but we still need to: a) determine how a version in a path resolves to the equivalent source in github b) determine how to identify the "latest" version and dynamically map it to the appropriate path