mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-08 11:46:35 +00:00
load_only reaches the image as a build ARG, and the RUN that fetches the argos models is keyed on it. Pinning it to the languages a run happens to translate therefore changed the ARG on every batch, invalidated that layer, and refetched every model it names. Ten batches meant ten full rebuilds, each one downloading what the previous had already downloaded. Accumulating the languages instead would have been worse, not better: the layer is all or nothing, so a growing set refetches the whole set each time. What works is the opposite of following the batch. The lane now pins load_only to every translatable code of both domains plus the pivot, 48 in total, and asks for from_source, which drops the reverse pairs a lane that only ever translates out of English never requests. The ARG is constant, so the layer is built once and every later batch reuses it. codes no longer reaches the rendered vars, which left it unused in deploy() and server(); both lose it, along with the two call sites. That undoes44260b8786, whose subject was passing it to a parameter this removes. Correction to4f2c9140fa: that message said an empty load_only makes the image skip prefetch_models.py. It does not. The script always runs, and an empty value only drops its --load_only_lang_codes filter, which is what made it reach for every package. The consequence it described was real, the mechanism was not. Measured: after the one rebuild the server offers all 48 languages, and the three batches since ran with no ansible task at all in their logs, going straight to translating 12,518 entries across nineteen catalogs. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>