# M9 (part 1): icon, version stamping, install notes Branch: `m9-packaging` → `main` M9 is "icons, version stamping, builds for the three systems, README with install notes, licence". This PR covers everything except the builds themselves. Those depend on which machines (or GitHub Actions) will build for Windows, Linux and macOS, still to be decided. ## What changed - **App icon:** a 4×4 pad grid in the app's colours, with pad 1 (bottom left, as on the device) lit in the orange accent, on the dark background. It is drawn by a small Go program, `tools/icon`, so it can be changed and regenerated: `go run ./tools/icon build/appicon.png`. - `build/windows/icon.ico` and `build/darwin/icons.icns` are generated from it, as is the macOS disk-image file icon. - The disk-image background (it had the Wails logo) is now plain light grey (`go run ./tools/icon -dmg …`); Finder labels icons there in dark text. - Removed the template's macOS Icon Composer bundle (`build/appicon.icon`) and its compiled `build/darwin/Assets.car`. Both showed the Wails logo, and `Assets.car` takes precedence over `icons.icns` on current macOS. The bundle can only be compiled on macOS 26 with Xcode 26, so the icons task now uses `appicon.png` alone. - **Version stamping:** production builds (`wails3 build`, `wails3 package`) set the version shown in About from `git describe --tags --always --dirty`. - A build of the `v0.5.0` tag shows `v0.5.0`. Other commits show the tag plus the commit, or just the commit id while there are no tags. `wails3 dev` still shows `dev`. - The Windows file version, macOS bundle version, Linux package version and installer version are now 0.5.0 (were the template's 0.0.1). - **README:** what the app does, the beta note, and install notes per system. Builds are unsigned, so each system warns once: SmartScreen on Windows, "Open Anyway" in Privacy & Security on macOS, `chmod +x` and the GTK 4 / WebKitGTK 6.0 libraries on Linux. Also how versions are stamped and how the icon is made. - **Template leftovers:** removed the unused `build/ios` folder; filled the MSIX manifests' "My Company" / "My Product" placeholders with bajdev / mpckit. - **Licence:** already done (MIT, copyright 2026 bajdev). The About dialog and README already say mpckit is not affiliated with Akai. ## Testing On the server: - `go vet` and `go test ./...` pass. - The Taskfile parses (`wails3 task --list-all`). A dry run of the Windows build shows `-X …internal/app.Version=` in the `go build` flags. - A Windows build with `-X …Version=v0.5.0-check` contains that string. - `tools/icon` regenerates `build/appicon.png` byte for byte. **On the laptop:** 1. `wails3 build` produces `bin\mpckit.exe`. Explorer, the taskbar and the window show the new icon (Windows caches icons; if Explorer still shows the old one, rename the file or sign out and back in). 2. Run `bin\mpckit.exe` and open About: the version is the commit id (no tags yet; after merge it becomes `v0.5.0` once tagged). 3. Right-click `mpckit.exe` → Properties → Details: product name mpckit, version 0.5.0, copyright (c) 2026 bajdev. ## Next (M9 part 2) After this is merged: tag `v0.5.0` on the merge commit, build from the tag on each system (Windows laptop, Linux desktop, and a Mac when one is available), and check each build runs and shows `v0.5.0` in About. That is M9's done-when. If the repo is mirrored to GitHub, an Actions workflow could build all three instead.