monarch-initiative / mondo-ingest

Coordinating the mondo-ingest with external sources
https://monarch-initiative.github.io/mondo-ingest/
6 stars 3 forks source link

Intelligent refresh: More artefacts we may want to refresh #593

Open joeflack4 opened 3 months ago

joeflack4 commented 3 months ago

Overview

We added a PR (https://github.com/monarch-initiative/mondo-ingest/pull/551#discussion_r1626754121), but it does not ensure that every goal that has the mondo clone as a downstream dependency gets updated when needed. It only assures this with goals that have the mondo clone as a direct dependency (i.e. mondo.sssom.tsv and mondo.owl) will always run.

An example of this is mondo.db. It is dependent on mondo.owl, which is dependent on the mondo clone (refresh-mondo-repo).

There might be more cases that are so "strongly coupled" to either mondo.sssom.tsv or mondo.owl, that we should also make a similar phony goal wrapper. Like with the mondo.db case perhaps, similar to how we have made a goal up-to-date-mondo.owl, we could also make a goal up-to-date-mondo.db that will ensure that any time a goal needs to use mondo.db, it is similarly ensured to be updated

List of artefacts to consider

This is what I've come up with; this might be it, but not sure:

Additional info

Reminder: this (intelligent refresh) is only useful during development. If running a fresh build (new clone or -B), the cloned mondo repo and all of these artefacts which depend on it will always be updated.

Related

Other intelligent refresh related issues:

matentzn commented 3 months ago

The dependency change, however implemented, should always be the same:

  1. tmp/mondo.db depends on
  2. tmp/mondo.owl depends on
  3. tmp/mondo/src/ontology/mondo.owl depends on
  4. tmp/mondo/newlycheckedoutrepo

If this is respected, then no need to worry about refreshing anything else in my view..

joeflack4 commented 3 months ago

It's a little complicated and hard to explain. This is a minor issue that you don't need to worry about, really.

The dependency structure is fine. It's just that mondo.db and mond-edit.owl (maybe others) could be updated even more frequently / intelligently. This only matters for development situations, not for builds.