makepad/tools/nigig_compat/README.md

75 lines
4.2 KiB
Markdown

# Nigig compatibility gate for the combined dev/work migration
**Status: migration baseline only. Latest upstream work is NOT integrated by
the existing traffic integration branch yet.** Runtime code remains the previously checked traffic
integration at `25e742949dada71af6899ea1c32b25f1e82b3935`.
The user requested both latest upstream branches, while explicitly preserving
existing nigig compatibility. Do not drop Android/Quest, CEF, the test protocol,
or game functionality to make conflicts disappear.
## Starting points
- Windows nigig-org original pin: `66cc4f15f598c89552b9c67857a62ab33b0b6db3`.
- Original containing branches: `nigig-makepad-test-android` and
`nigig-traffic-camera-boom-fix`; their old history now lives in remote
the exported `makepad-original-histories.bundle`; the temporary backup refs were deleted at the user's request.
- Published, checked dev-based Android integration: `d8d5ea8b6`.
- Published, checked dev-based traffic integration: `25e742949`.
- Latest upstream dev inspected: `44ecb822b48106fa76bde4dfd309e5a8a7ff1932`.
- Latest upstream work inspected: `817546c537faa385ad24aa391612f70576020a43`.
- Upstream merge base: `71c9ddcbb9c01dd208f99621fdd71024a5d35c65`.
There are 6 dev-only and 848 work-only commits at these tips. A direct merge of
work into the published nigig Android integration produced 177 conflicted paths.
Merging the two upstreams first reduced the initial conflict set to 15 paths,
but that is only the upstream combination, before reapplying nigig functionality.
Both trial merges were aborted. No conflict resolutions or partial combined
runtime code have been published.
## Static sentinels
```sh
python3 tools/nigig_compat/check.py
python3 tools/nigig_compat/check.py --root /path/to/migration-checkout
```
Eight checks cover optional sibling exports, isolate host entry points, Android
NIGIG_TEST_MODE forwarding, startup/touch/long-press/paste/IME protocol names,
secondary dex/custom manifest/wrapper packaging, required game package names,
Quest packaging and the CEF widget feature. They pass on the checked baseline.
These are **source-presence/interface sentinels**, not AST proofs, runtime tests,
security tests, or evidence that an implementation still behaves correctly.
Adapt the test locations after legitimate relocations; do not weaken the
behavioral requirements to accept missing functionality.
## Migration work still required
1. Combine upstream dev/work on an existing integration branch; do not create new branches. Preserve both the work
live-edit error capture and dev reload-generation accounting.
2. Port dev's scrolling ownership/drag-containment and reload fixes to work's
current widget/script APIs. Keep both sets of regression tests.
3. Port dev's iOS keyboard fix and Android activity-recreation handling into
work's HAL backends. Old platform source files were removed; restoring them
beside the new backend is not an implementation of the fix.
4. Preserve or port the Quest package variant, native XR integration and CEF
widget, which the inspected work layout removed/replaced.
5. Reapply nigig test-mode forwarding, startup/touch protocol and dex/wrapper
packaging against the new platform boundaries. Preserve protocol wire
compatibility, not just enum names.
6. Carry required game/work libraries and both camera/particle fixes, then
resolve dependency/workspace changes and regenerate lockfiles with Cargo.
7. Validate Rust checks/tests, budget-app and selected nigig applications. Run
Android device tests for rotation/fold/split screen, startup, IME, touch,
secondary dex and the share receiver; exercise CEF and Quest when supported.
8. Only after these gates pass, update both existing integration refs atomically with
leases (export recovery history to a bundle, not new branches) and regenerate nigig-org's root pin/lockfile. Do not move the
Windows checkout to a partially combined candidate.
## Existing Windows pin update (dev-based, not latest combined work)
The existing nigig-org `main` branch contains the tested
root pin update to `25e742949`. A local Windows Cargo.toml still showing
`66cc4f15` has not applied it. With a clean checkout, fetch and inspect that
update before applying it; preserve any local changes first.