Open gouttegd opened 3 months ago
@matentzn Can we make a decision quickly on this one? Should the mappings be stored in src/mappings
or src/ontology/mappings
?
Moving them to src/ontology/mappings
would make the publishing feature (release_mappings: True
) work with minimal effort. Downside: if an ontology has started using ODK-managed mappings since the release of version 1.5, then its mappings currently are in src/mappings
and the ontology’s maintainers would have to move them when 1.6 comes out (or 1.6 would need to have some ad-hoc code in update_repo
to automatically migrate the mappings to their new locations).
Keeping them in src/mappings
avoids any breakage at all if an ontology has started using ODK-managed mappings, but will require deeper changes in the mappings-releasing workflow.
No strong opinion here. In any case, whatever we do, publishing mappings is going to remain broken until 1.6. But I want Uberon to start publishing its mappings sooner, and I would like to do it over there in a way that will be compatible with what 1.6 will do.
My preference is 2. src/mappings is a good place, and I would rather fix the syncing code.
Trying to get the ODK to publish the SSSOM sets that it manages, by adding the
release_mappings: True
option to thesssom_mappingset_group
section in the config file, leads to the following error when runningmake prepare_release
:This is because the mappings are in
src/mappings
, while thersync
command that does the bulk of copying the release assets to the top-level directory is run from within thesrc/ontology
directory. As a result, we are ultimately trying to dorsync -R [other release files] ../mappings/<mappingset>.sssom.tsv ../..
, whichrsync
does not like at all – the-R
option is incompatible with some source files being in any directory above the current directory.Possible solutions:
1) Moving the mappings directory from
src/mappings
tosrc/ontology/mappings
. Easiest solution, but a breaking change. And whether it is desirable to have the mappings insrc/ontology
is debatable.2) Update the
prepare_release
rule to have a separate command that copies the mappings to the top-level directory (similar to what we already do for the patterns). This involves making sure the mappings to be released are not listed in the generalRELEASE_ASSETS
variable, but are instead listed in a separate variable (again, similar to what we do for the patterns).