1
0

m9-icon-version-and-install-notes.md 3.8 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) stamp the version and the commit.
    • About shows "Version 0.5.0" and, on the next line, "Build " (with -dirty if the working tree had uncommitted changes). wails3 dev still shows dev.
    • The version comes from APP_VERSION in Taskfile.yml, kept in step with version in build/config.yml; the commit from git describe --always --dirty --exclude "*". So it doesn't depend on tags.
    • 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.
  • Change after the first laptop run (bajdev, 2026-11-12: the Windows build runs): About showed the commit id instead of 0.5.0, because the first version of the stamping used git describe --tags and there are no tags yet. It now shows the version from the Taskfile, with the commit on its own "Build" line.

    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=0.5.0 -X …internal/app.Commit=<commit> 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: "Version 0.5.0", then "Build ".
    3. Right-click mpckit.exe → Properties → Details: product name mpckit, version 0.5.0, copyright (c) 2026 bajdev.
    4. 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 "Version 0.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.