Files
gronod 14cd544e05
macOS CI / build-and-test (pull_request) Successful in 38m2s
macOS CI / package (pull_request) Skipped
macOS CI / build-and-test (push) Failing after 37m37s
macOS CI / package (push) Skipped
feat(#189): release-driven versioning — tag-stamped About + monotonic build
- scripts/version.sh resolves ICCERY_RELEASE_TAG / MARKETING_VERSION /
  CURRENT_PROJECT_VERSION from RELEASE_TAG env or `git describe`; tag
  builds hard-fail when the tag's X.Y.Z != project.yml MARKETING_VERSION
- build number = `git rev-list --count HEAD` (Apple: macOS
  CFBundleVersion must monotonically increase, no per-version reset)
- tag ships as a bundled ICCeryReleaseTag resource — a generated
  Info.plist can't carry custom keys (INFOPLIST_KEY_* allowlist, and
  ProcessInfoPlistFile runs after script phases); About shows
  "tag (marketing)", e.g. v2.0.0-pre2-grok (2.0.0)
- DMG named ICCery-<tag>-<build>.dmg for tagged/described builds
- CI twins: fetch-depth 0 + RELEASE_TAG env + stamped test builds
2026-09-15 13:10:19 +01:00
..

ICCery Rewrite Specification

Product: ICCery — printer ICC/ICM profiling frontend for ArgyllCMS
Source analysed: git.i3omb.com/gronod/ICCery v0.8.5 (main, merge #229)
Related: gronod/argyllcms (fork of ArgyllCMS 3.5.0), gronod/ICCery-CPU (TargetPrint)
Current stack (do not reuse): Tauri v2 + Rust host + vanilla JS + Three.js
Licence: ICCery GUI is proprietary EULA; ArgyllCMS binaries are AGPLv3 and must remain subprocess-isolated (stdin/stdout/stderr only — never link)

This folder is a complete functional specification of the existing application so it can be reimplemented in a different stack under the same name, using the same graphical assets (CMY ice-cream-cone wordmark).

How to use these documents

Read in this order if you are implementing:

  1. 01-overview.md — product, wizard, platforms
  2. 02-architecture.md — process isolation, modules, events
  3. 03-ipc-and-process-manager.md — spawn / stdin / kill contract
  4. 04-argyll-binaries.mdevery Argyll CLI invocation
  5. 05-argyll-fork.md-u JSON protocols, instlist, -Y l, Windows pipe fix
  6. Wizard stages: 06070809151617
  7. Print (critical): 1011-print-macos.md121314
  8. 18-gamut-viewer.md
  9. 21-ui-reference.md — every control id
  10. 24-issues-invariants.md — bugs that must not be repeated
  11. 25-rewrite-notes.md — stack-agnostic idiosyncrasies
  12. 26-v2-mac-ticket-plan.mdreviewed Gitea milestone/ticket plan for the macOS SwiftUI rewrite (executable; supersedes the 2026-09-08 draft)

Non-goals of the original (do not reintroduce)

  • Display calibration wizard (dispwin / dispread) — won't-fix (#90)
  • i18n (en/de/fr/ja) — won't-fix (#96); Argyll diagnostics are English-only
  • Linking against Argyll as a library (AGPL contamination)

Source map (legacy Tauri tree)

Area Path
Wizard HTML src/index.html
Frontend modules src/js/*.js
Styles src/styles/main.css
Logo src/assets/ICCery-logo.svg
Rust host src-tauri/src/
Print backends src-tauri/src/print/{mod,macos,windows,unix}.rs
Argyll sidecars src-tauri/argyll/<platform>/ (not in git; npm run fetch-argyll)
Bundled sRGB gamut src/assets/sRGB.gam

Analysed at 2026-09-08 from Gitea (109 ICCery issues, 13 Argyll-fork issues, 3 ICCery-CPU issues) plus a full source read of v0.8.5.