docs(plan): record what Phase 1 landed and the two things it hit
The plan assumed build/ was free and that GTK4 was a preference. It was not free — this repo used it as ignored build output — and GTK4 is not available on the dev machine, which breaks `go tool wails3` outright rather than merely changing which webkit is linked. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UDCbcCZQepnpSQYJ6SxxZm
This commit is contained in:
+42
-2
@@ -1,7 +1,9 @@
|
|||||||
# 009 — Wails v3 migration
|
# 009 — Wails v3 migration
|
||||||
|
|
||||||
**Status:** Phase 0 complete — **go**. Phases 1–7 not started.
|
**Status:** Phase 0 complete — **go**. Phase 1 **partly done** (toolchain
|
||||||
**Branch:** none yet (the spike ran in a scratchpad; the repo was not touched)
|
and build assets landed; Makefile rewrite and the tag swap not started).
|
||||||
|
Phases 2–7 not started.
|
||||||
|
**Branch:** `wails-v3`, off `main` at `edb13a6`.
|
||||||
**Created:** 2026-08-13
|
**Created:** 2026-08-13
|
||||||
**Phase 0 run:** 2026-08-13 against **v3.0.0-beta.8**
|
**Phase 0 run:** 2026-08-13 against **v3.0.0-beta.8**
|
||||||
**Target version:** pin `v3.0.0-beta.8` for the whole migration
|
**Target version:** pin `v3.0.0-beta.8` for the whole migration
|
||||||
@@ -290,6 +292,44 @@ passes; `grep -r webkit2_41` returns nothing.
|
|||||||
|
|
||||||
**Est.** Half a session. Low risk, high churn.
|
**Est.** Half a session. Low risk, high churn.
|
||||||
|
|
||||||
|
### Phase 1 — what actually landed (`e7873bd`)
|
||||||
|
|
||||||
|
Steps 2, 3 (partly), 4 and 7 are done; 1, 5 and 6 are not.
|
||||||
|
|
||||||
|
- **Done.** `wails/v3 v3.0.0-beta.8` pinned and `wails3` added to the
|
||||||
|
`tool` block beside the v2 CLI. `build/` holds the scaffold's asset
|
||||||
|
tree with `config.yml`'s `info` block filled from `wails.json`.
|
||||||
|
`Taskfile.yml` defaults `PACKAGE_MANAGER` to pnpm.
|
||||||
|
- **Not done.** The Makefile still calls `go tool wails` (v2)
|
||||||
|
throughout, `webkit2_41` is still on all ~30 sites, and `wails.json`
|
||||||
|
is still present — deliberately, because the v2 CLI reads it and the
|
||||||
|
app has not moved to the v3 API yet. Steps 5 and 6 are entangled
|
||||||
|
with Phase 2 and should land with it: swapping the tag before
|
||||||
|
`main.go` is ported breaks the only build that currently works.
|
||||||
|
|
||||||
|
**Two things the plan did not anticipate.**
|
||||||
|
|
||||||
|
**`build/` was already taken.** This repo used it as *ignored* build
|
||||||
|
output (`build/bin/` held three v2 binaries), and v3 wants it for
|
||||||
|
*tracked* build assets. `.gitignore` now names `build/bin/` and `bin/`
|
||||||
|
rather than `build`, and the assets are committed. The mobile platform
|
||||||
|
trees (`build/android`, `build/ios`, ~40 files) are not carried — this
|
||||||
|
is a desktop player and cannot target them — and their `includes:`
|
||||||
|
entries are dropped from `Taskfile.yml`.
|
||||||
|
|
||||||
|
**GTK4 is unavailable on the dev machine, so the gtk3 fallback is in
|
||||||
|
use.** `webkitgtk-6.0` is not installed and installing it needs sudo.
|
||||||
|
The consequence is sharper than the plan's "fallback if GTK4
|
||||||
|
misbehaves": **`go tool wails3` does not work at all**, because the
|
||||||
|
CLI itself links `internal/operatingsystem`, which `pkg-config`s
|
||||||
|
`gtk4 webkitgtk-6.0` under default tags. `go run -tags gtk3
|
||||||
|
github.com/wailsapp/wails/v3/cmd/wails3` builds and runs fine
|
||||||
|
(`doctor` reports `-tags gtk3` and Webkit2Gtk v2.52.5), so that — not
|
||||||
|
`go tool wails3` — is the invocation the Makefile must use until
|
||||||
|
`sudo pacman -S webkitgtk-6.0` happens. Phase 0's claim that
|
||||||
|
"`wails3 doctor` reports both toolchains" was not true on this
|
||||||
|
machine.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Phase 2 — Go bootstrap and services
|
## Phase 2 — Go bootstrap and services
|
||||||
Reference in New Issue
Block a user