m9-icon-version-and-install-notes.md 3.4 KB

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=<git describe> 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.