Integrate tested Makepad dev pin into main #1

Open
andodeki wants to merge 1 commit from chore/makepad-dev-integration into main
3 changed files with 394 additions and 325 deletions

640
Cargo.lock generated

File diff suppressed because it is too large Load diff

View file

@ -119,23 +119,23 @@ strip = true
# Single source of truth for the makepad fork. Bump the rev here and every
# crate that declares these deps via `workspace = true` adopts it at once.
[workspace.dependencies]
makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "66cc4f15f598c89552b9c67857a62ab33b0b6db3" }
makepad-test = { git = "https://gitdab.com/andodeki/makepad", rev = "66cc4f15f598c89552b9c67857a62ab33b0b6db3" }
makepad-platform = { git = "https://gitdab.com/andodeki/makepad", rev = "66cc4f15f598c89552b9c67857a62ab33b0b6db3" }
makepad-draw = { git = "https://gitdab.com/andodeki/makepad", rev = "66cc4f15f598c89552b9c67857a62ab33b0b6db3" }
makepad-derive-widget = { git = "https://gitdab.com/andodeki/makepad", rev = "66cc4f15f598c89552b9c67857a62ab33b0b6db3" }
makepad-fast-inflate = { git = "https://gitdab.com/andodeki/makepad", rev = "66cc4f15f598c89552b9c67857a62ab33b0b6db3" }
makepad-mbtile-reader = { git = "https://gitdab.com/andodeki/makepad", rev = "66cc4f15f598c89552b9c67857a62ab33b0b6db3" }
makepad-script = { git = "https://gitdab.com/andodeki/makepad", rev = "66cc4f15f598c89552b9c67857a62ab33b0b6db3" }
makepad-code-editor = { git = "https://gitdab.com/andodeki/makepad", rev = "66cc4f15f598c89552b9c67857a62ab33b0b6db3" }
makepad-xr = { git = "https://gitdab.com/andodeki/makepad", rev = "66cc4f15f598c89552b9c67857a62ab33b0b6db3" }
makepad-ai-hub = { git = "https://gitdab.com/andodeki/makepad", rev = "66cc4f15f598c89552b9c67857a62ab33b0b6db3", default-features = false }
makepad-base64 = { git = "https://gitdab.com/andodeki/makepad", rev = "66cc4f15f598c89552b9c67857a62ab33b0b6db3" }
makepad-widgets = { git = "https://gitdab.com/andodeki/makepad", rev = "25e742949dada71af6899ea1c32b25f1e82b3935" }
makepad-test = { git = "https://gitdab.com/andodeki/makepad", rev = "25e742949dada71af6899ea1c32b25f1e82b3935" }
makepad-platform = { git = "https://gitdab.com/andodeki/makepad", rev = "25e742949dada71af6899ea1c32b25f1e82b3935" }
makepad-draw = { git = "https://gitdab.com/andodeki/makepad", rev = "25e742949dada71af6899ea1c32b25f1e82b3935" }
makepad-derive-widget = { git = "https://gitdab.com/andodeki/makepad", rev = "25e742949dada71af6899ea1c32b25f1e82b3935" }
makepad-fast-inflate = { git = "https://gitdab.com/andodeki/makepad", rev = "25e742949dada71af6899ea1c32b25f1e82b3935" }
makepad-mbtile-reader = { git = "https://gitdab.com/andodeki/makepad", rev = "25e742949dada71af6899ea1c32b25f1e82b3935" }
makepad-script = { git = "https://gitdab.com/andodeki/makepad", rev = "25e742949dada71af6899ea1c32b25f1e82b3935" }
makepad-code-editor = { git = "https://gitdab.com/andodeki/makepad", rev = "25e742949dada71af6899ea1c32b25f1e82b3935" }
makepad-xr = { git = "https://gitdab.com/andodeki/makepad", rev = "25e742949dada71af6899ea1c32b25f1e82b3935" }
makepad-ai-hub = { git = "https://gitdab.com/andodeki/makepad", rev = "25e742949dada71af6899ea1c32b25f1e82b3935", default-features = false }
makepad-base64 = { git = "https://gitdab.com/andodeki/makepad", rev = "25e742949dada71af6899ea1c32b25f1e82b3935" }
# makepad-game-* (libs/game, from the makepad-internal fork). These only
# resolve once the fork is merged AND the rev above is bumped to the merged
# commit — the traffic game writes against this API now; see the world/road
# modules. Leave the rev alone until the fork merge lands.
makepad-game-sim = { git = "https://gitdab.com/andodeki/makepad", rev = "66cc4f15f598c89552b9c67857a62ab33b0b6db3" }
makepad-game-math = { git = "https://gitdab.com/andodeki/makepad", rev = "66cc4f15f598c89552b9c67857a62ab33b0b6db3" }
makepad-game-blocks = { git = "https://gitdab.com/andodeki/makepad", rev = "66cc4f15f598c89552b9c67857a62ab33b0b6db3" }
makepad-game-render = { git = "https://gitdab.com/andodeki/makepad", rev = "66cc4f15f598c89552b9c67857a62ab33b0b6db3" }
makepad-game-sim = { git = "https://gitdab.com/andodeki/makepad", rev = "25e742949dada71af6899ea1c32b25f1e82b3935" }
makepad-game-math = { git = "https://gitdab.com/andodeki/makepad", rev = "25e742949dada71af6899ea1c32b25f1e82b3935" }
makepad-game-blocks = { git = "https://gitdab.com/andodeki/makepad", rev = "25e742949dada71af6899ea1c32b25f1e82b3935" }
makepad-game-render = { git = "https://gitdab.com/andodeki/makepad", rev = "25e742949dada71af6899ea1c32b25f1e82b3935" }

View file

@ -0,0 +1,51 @@
# Makepad dev integration — 2026-10-26
## Pin and branches
The root workspace previously pinned `66cc4f15f598c89552b9c67857a62ab33b0b6db3`. That commit belongs to both `nigig-makepad-test-android` and `nigig-traffic-camera-boom-fix`, not the fork's default branch.
Both integration branches were consolidated onto upstream GitHub `dev` at `44ecb822b48106fa76bde4dfd309e5a8a7ff1932`, as requested:
- Android integration: `d8d5ea8b6af4b3a96cd435fa1816fd9251d56af1`
- Traffic integration: `25e742949dada71af6899ea1c32b25f1e82b3935`
The traffic branch contains the Android integration plus its two original camera/particle fixes. This workspace now pins the traffic revision to include both sets of fixes. The 16 root Makepad dependency declarations use that revision, and Cargo regenerated `Cargo.lock` rather than mechanically rewriting checksums/dependency lists.
The Makepad remote branches were published atomically with exact force-with-lease checks and remote backups:
- `backup/nigig-android-before-sync-20261026` → `091712f55a7cd65b1d17c8d275b8834b79a3216f`
- `backup/nigig-traffic-before-sync-20261026` → `a3d8f521a9aaa5052415e7d1de6b329a4a6eba73`
## Integration decisions
- Retained required fork/work applications, game crates, Android packaging, BeforeStartup/test-mode and touch protocol support.
- Used upstream dev's widget-family architecture and restored nigig's `test`, `gltf` and `csg` optional sibling exports on its facade. Upstream core already implements `enter_isolate`/`leave_isolate`.
- Kept upstream's widget-core isolation, script host-I/O restrictions, script derive generator, X11 hover/fullscreen handling, Wayland handling and builder fixes rather than carrying obsolete or partially merged implementations.
- Repaired duplicate WM feature tables and incompatible feature references.
- Restored files missing from still-required asset/flow/VJ dependencies from the original pinned revision, without overwriting surviving fork files. This repairs incomplete deletions in the previous integration history.
## Validation performed
Using Rust **1.97.1**, the workspace's pinned toolchain:
- Makepad workspace metadata and lockfile resolution succeeded.
- `cargo check -p makepad-widgets --no-default-features --features data` passed.
- `cargo check -p makepad-test -p makepad-game-blocks -p makepad-game-render` passed.
- Game library tests passed: **18 game-blocks + 83 game-render**.
- Nigig root lockfile regeneration succeeded; `cargo metadata --locked --offline --no-deps` passed.
- Budget-app compiled against this integration after adapting its palette accessor; its 93 core tests passed.
The root nigig lockfile was initially regenerated using a process-local Git URL rewrite to the prepared local Makepad repository. Its committed source URLs remain the canonical Gitdab URL; there are no local filesystem dependency URLs in the lockfile.
## Limits and rollout
This is **not** a full nigig-org application build, Android APK build, runtime/UI test, or exhaustive check of all retained work applications. Test those before merging this dependency update into the deployment branch.
The excluded/nested `p2p-intel` and `makepad_table` projects, plus standalone map/theming examples, retain their independent Makepad pins. The root lockfile still includes `ecf5a572...` micro-serde dependencies brought in by p2p crates. These separate dependency families were not silently migrated as part of the root pin update.
Use the normal commands with the root toolchain after fetching the published revision:
```sh
cargo metadata --locked --no-deps --format-version 1
# Then run the selected nigig application's normal build/test workflow.
```