Selfmedicate is meant to be a curriculum development tool. As a result, while we’re using tagged images for all Antidote platform stuff, we’ve been using the
latest tags for all curriculum images. This ensures that whoever is working with the environment is using the latest and greatest images that have been built from the curriculum’s
However, as has been pointed out, this results in fresh downloads being necessary every day (since the
latest images are rebuilt nightly), and this can be several GB total. Not ideal in any case, but especially on slower internet connections, this is a huge impediment.
As discussed on this morning’s standup, we could use the
SYRINGE_CURRICULUM_VERSION environment variable to pin the curriculum to the current latest version, which at this time is
v1.0.0. Images that have been tagged like this don’t change, so they’ll only need to be downloaded once. However, there are a bunch of problems we’d be introducing by doing this:
- If there are changes to an image that a lesson could/wants to make use of, they’d have to disable this to get at it. Same applies to folks working on images. So this really only solves the problem for folks that definitely don’t need the latest version of an image (which I don’t really want to bother figuring out) and also don’t plan to make image changes themselves. And even then, the murkiness around who’s using what image will become a catastrophic mess.
- Most folks work on images on their own repositories before opening a PR, and we’d be auto-appending a version to their repo, which they’re almost certainly not going to have.
- We’d have to update selfmedicate at every curriculum release to reference the newly released version.
Thinking about this again, I realize that I left
SYRINGE_CURRICULUM_VERSION out of selfmedicate for a good reason - it actively goes against the mission of selfmedicate, which is to enable curriculum development, which means using the latest version of everything. So I’m to the idea of adding this. However, we still need to solve the problem.
Maybe we can make the imagepullpolicy a configurable option in Antidote? So it’s downloaded once at selfmedicate initialization, but not after? Users of selfmedicate would still need to make sure they’re pulling the latest version manually when needed, but we can just add this to the docs as part of the process? Idk, I would like to use this thread to discuss this in more detail.