Stage 4: colprof UI & argv builder #23

Open
opened 2026-09-08 17:43:02 +01:00 by gronod · 0 comments
Owner

Summary

buildColprofArgs. Do not pass colprof -u. Viewing -c/-d are not directories.

Spec refs

docs/16-stage4-colprof.md, 04-argyll-binaries.md §6. #56 #69 #176 #210.

Scope

In: UI, argv, spawn colprof_{basename}, plaintext progress, getProfilePath.
Out: applycal / iccgamut (24).

Implementation notes

-v -a {l|x|X|m} -q {l|m|h|u} [-t intent] [-f [D50|D65|path.sp]] [-i] [-o] [-c inView] [-d outView] [-D] [-C] basename

Default -a l, -q m. FWA: none omit / empty → bare -f / D50 / D65 / custom .sp via selectSpectrumFile.
Viewing -c/-d skip "none".
Description fallback basename. Intent is a preset field; Stage 4 form may omit it.
Progress from stdout text: "gamut mapping" / "fitting"|"clut" / "writing"|"icc profile".
Process id MUST be colprof_{basename} (payload/id parity).
Do not pass -u. If a later ticket adds it, it must be a bare flag (upstream -u <token> is white-point).
Port Rust goldens.

Rewrite invariants

#56 id parity. #69 probe both extensions. #176 -c/-d viewing. #210 dedicated .sp picker.

Dependencies

Blocks-on: 2, 4, 6, 11, 21 (canonical .ti3).
Unblocks: 24, 25, 27.

Test

  • CI/mock: argv goldens; colprof.mock phrases; exit 0 → .icc → Stage 5.
  • Hardware: optional full pipe.

Acceptance criteria

  • exit 0 → profile on disk → Stage 5 unlocks.
## Summary `buildColprofArgs`. Do not pass `colprof -u`. Viewing `-c`/`-d` are not directories. ## Spec refs docs/16-stage4-colprof.md, 04-argyll-binaries.md §6. #56 #69 #176 #210. ## Scope In: UI, argv, spawn `colprof_{basename}`, plaintext progress, getProfilePath. Out: applycal / iccgamut (24). ## Implementation notes ``` -v -a {l|x|X|m} -q {l|m|h|u} [-t intent] [-f [D50|D65|path.sp]] [-i] [-o] [-c inView] [-d outView] [-D] [-C] basename ``` Default `-a l`, `-q m`. FWA: none omit / empty → bare `-f` / D50 / D65 / custom `.sp` via `selectSpectrumFile`. Viewing `-c`/`-d` skip `"none"`. Description fallback basename. Intent is a preset field; Stage 4 form may omit it. Progress from stdout text: "gamut mapping" / "fitting"|"clut" / "writing"|"icc profile". Process id MUST be `colprof_{basename}` (payload/id parity). Do not pass `-u`. If a later ticket adds it, it must be a bare flag (upstream `-u <token>` is white-point). Port Rust goldens. ## Rewrite invariants #56 id parity. #69 probe both extensions. #176 `-c`/`-d` viewing. #210 dedicated .sp picker. ## Dependencies Blocks-on: 2, 4, 6, 11, 21 (canonical .ti3). Unblocks: 24, 25, 27. ## Test - CI/mock: argv goldens; colprof.mock phrases; exit 0 → `.icc` → Stage 5. - Hardware: optional full pipe. ## Acceptance criteria - [ ] exit 0 → profile on disk → Stage 5 unlocks.
gronod added this to the M5 — Profile, verification & install milestone 2026-09-08 17:43:02 +01:00
gronod added the
Priority
Critical
1
Project/ICCery-v2Feature/BackendFeature/UI
labels 2026-09-08 17:43:02 +01:00
gronod added a new dependency 2026-09-09 11:10:34 +01:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Depends on
#52 Milestone 5 Bugfixes
gronod/iccery-v2-mac
Reference: gronod/iccery-v2-mac#23