K2GO-394 fix(maps): drop the is_proot download delegate (unbreak the rootfs bake) - #561
Merged
Merged
Conversation
…ootfs bake) The is_proot delegate patch (0003) gated every download_large_file.yml download `when: not is_proot` and asserted the file was pre-placed by dash-node. But is_proot is True for the CI rootfs bake too (local_vars_android_*.yml), where dash-node does not exist -- so the maps role downloads were skipped and the assert failed the bake (basic/standard/full tiers), e.g.: TASK [maps : Fail if dash-node did not place maps.black-component.js on proot] fatal: assertion 'proot_basemap.stat.exists' failed The delegate was never needed. The role's native `creates: dest_path` already skips a file dash-node placed at the maps serve dir (device-verified). On a live install the app pre-downloads the base-map pmtiles through dash-node (resilient) and gates the runrole on that download's success, so the runrole only skips already-present files. The bake, with no app and a stable network, downloads everything in-proot as before. Removing the patch restores the bake and keeps the device path working through `creates:` alone.
…de download) Add ADR-K2GO-394 and a "Notable non-patches" note in the upstream-patches README so the deliberate absence of a maps download patch is discoverable, not mistaken for an oversight. On the K2Go device path dash-node pre-downloads the base-map pmtiles and the stock maps role skips those downloads via `creates:`; the role reads exactly as upstream ships it. An earlier is_proot gate + assert broke the CI rootfs bake -- is_proot is True for the Android tiers there too, but no dash-node runs -- so the role stays stock and the device-vs-upstream divergence is documented instead of patched.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this changes
Removes the maps
is_prootdownload-delegate patch(
0003-maps-download-is-proot-delegate.patch) and documents why the maps role isintentionally left unpatched.
Why
The delegate patch broke the CI rootfs bake. It gated the maps role's
download_large_file.ymldownloadwhen: not is_prootand asserted dash-nodepre-placement
when: is_proot. Butis_prootisTruefor the Android tiers thebake builds (
vars/local_vars_android_*.yml), and the bake has no dash-node --so the downloads were skipped and the assert failed:
(basic / standard / full tiers failed; matomo, which installs no maps, passed --
confirming maps was the culprit.) The "aria2c error: failed to open log" just above
it is a red herring: the block's
rescuetried to read a progress log the skippeddownload never wrote.
is_prootcannot tell a live device with dash-node from a CIbake without it.
The delegate was never needed. The role's native
creates: dest_pathalready skipsa file dash-node placed at the maps serve dir: on the device the app pre-downloads
the selected pmtiles through dash-node (resilient) and gates the runrole on that
download, so the role only skips already-present files; the bake, with no app and a
stable network, downloads everything in-proot as upstream intends.
Docs
Because the role now reads exactly as upstream ships it, the device-vs-upstream
divergence is invisible in the role, so it is recorded (not left as a surprise):
controller/docs/ADR-K2GO-394-maps-download-via-dashnode.md-- the designdecision (dash-node download + app orchestration + native
creates:, and why norole patch).
tools/upstream-patches/README.md-- where amaintainer looks and finds no maps patch.
Notes
Supersedes the
is_prootdelegate merged earlier (including its archive-scopingfollow-up) -- the whole patch is removed, not re-gated. The search tarball
(
expand_archive) already stays in-proot: dash-node does not extract archives.