# Makepad Fork Sync — 2026-08-16 ## Summary Fork `https://gitdab.com/andodeki/makepad` was verified against upstream `makepad/makepad` `dev`. - **Upstream dev HEAD**: `abd70f4716ca` (2026-08-15, Update README.md) - **Fork `portallist_flow_adaptive_view` HEAD before sync**: `ecf5a572ab62a1c1598909971f602f99083671cc` (fix(widgets): restore fork-local test/gltf/csg re-exports) - **Result**: fork was **1 ahead, 0 behind** upstream. No upstream commits to merge. The `1 ahead` is the fork-only fix that restores `widgets/Cargo.toml` + `widgets/src/lib.rs` re-exports for `test`/`gltf`/`csg` lost during the `abd70f4` merge. Without it `nigig-pdf-makepad` fails with `makepad-widgets does not have feature test`. ## Actions taken (this sync) 1. Fetched `upstream/dev` into `/tmp/makepad-fork`. 2. Compared `portallist_flow_adaptive_view` vs `upstream/dev`: `1 ahead / 0 behind` → no merge needed. 3. Compared `nigig-dev-reexports` (old tip `2c5cd97a`) vs `portallist_flow_adaptive_view`. The old branch was 2 months behind and had diverged (still contained `apps/arcade` deletions etc). Hard-reset `nigig-dev-reexports` to `portallist_flow_adaptive_view` tip `ecf5a572` so both tracking branches are identical and current. 4. Force-pushed `nigig-dev-reexports` to origin with `--force-with-lease`. ``` git checkout nigig-dev-reexports git reset --hard portallist_flow_adaptive_view git push origin nigig-dev-reexports --force-with-lease ``` ## Pinned `rev` in nigig-org `crates/apps/map/Cargo.toml` and `crates/apps/pdf/pdf-makepad/Cargo.toml` both pin `rev = "ecf5a572ab62a1c1598909971f602f99083671cc"` which is now the tip of both fork branches. **No bump needed** this cycle. Next sync: re-run `REVIEWS` workflow §0.1 checks: ```bash curl -sL "https://gitdab.com/api/v1/repos/andodeki/makepad/branches" | python3 -c "import json,sys;[print(b['name'], b['commit']['id'][:12]) for b in json.load(sys.stdin)]" curl -sL "https://api.github.com/repos/makepad/makepad/commits?sha=dev&per_page=5" | python3 -c "import json,sys;[print(c['sha'][:12], c['commit']['committer']['date'][:10], c['commit']['message'].splitlines()[0][:70]) for c in json.load(sys.stdin)]" grep -h "makepad-widgets" crates/apps/pdf/pdf-makepad/Cargo.toml crates/apps/map/Cargo.toml ``` ## Nigig-map baseline strategy - **Do not enable** `makepad-widgets` `maps` feature in `nigig-rider` to render Makepad's `MapView` directly. Keep it only if `NigigMapView` registration still depends on it (comment in `nigig-rider/Cargo.toml` warns silent `book.rs` failure without it). Long-term goal is `nigig-map` owns `NigigMapView` and the feature can be dropped. - **`nigig-map` is the control surface**: `crates/apps/map/src/makepad_map/` is a baseline copy of `makepad/widgets/src/map/` (copied at `d82756a`, currently reconciled to latest `abd70f47` + local adaptation fixes for imports and `super::` paths). Improvements from upstream are cherry-picked there, not by switching the app to the upstream widget. - **Upstream routing capabilities** (`apps/route` + `libs/map_nav`, `libs/geodata`, `libs/makepad_ai`) are **not** part of `widgets/src/map`. They live in separate crates/apps. Tracking them is a separate decision: either vendor `map_nav`/`geodata` into `nigig-map` or keep routing in `valhalla-*` crates (current choice). This sync confirmed `nigig-map/makepad_map` is byte-identical to upstream `widgets/src/map` modulo the 4 local adaptation patches (icons path, `super::` rewrites, direct `makepad-fast-inflate`/`mbtile-reader` crates, `DrawVector` import). ## Review follow-up (improving map crate) - Keep `nigig-map` 6-subsystem split (`viewport`, `cache`, `scheduler`, `renderer`, `label_state`, `tile_decode`/`tile_disk`) as in `map-rewrite-plan.md`. - Periodically diff `/tmp/makepad-fork/widgets/src/map/` vs `crates/apps/map/src/makepad_map/` (`diff -r` + `git log -- widgets/src/map`) and port only the passes that matter (packed vertex 12-slot, fringe split, LOD rings, ordered-dither dissolve, growing-archive watcher).