Planning-only deliverables for M6 (gamut, Stage 0 calibration, CGATS interoperability, About/help chrome, packaging/CI). Includes #24 c FIXED-BY-POLICY wording, parallel branch topology, pre-split implementation slices, and risk register. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2.9 KiB
2.9 KiB
M6 Branch Map
Milestone topology
develop@629a1fce
└── milestone/m6-gamut-stage0-cgats-release # cut AFTER Gitea #24 AC update (done 2026-09-09T16:02:25Z)
├── feat/31-about-help-chrome → resolves issue #31
├── feat/30-cgats-interop → resolves issue #30
├── feat/29-stage0-calibration → resolves issue #29
├── feat/28-scenekit-gamut → resolves issue #28
└── feat/32-packaging-ci → resolves issue #32 (rebase last)
- All feature branches are parallel children of
milestone/m6-gamut-stage0-cgats-release. - No nested feature branches.
feat/28does not depend onfeat/29orfeat/30; it depends only ondevelop(#3, #24). - If two feature branches are ready in the same week, the second one rebases onto the current milestone tip before PR; the milestone branch is the only integration branch.
- Final merge:
milestone/m6-gamut-stage0-cgats-release→developafter the full CI gate is green.
PR convention
- Each PR title uses the feature branch name and states it resolves the tracked issue:
feat/31-about-help-chrome → PR targeting milestone/m6-gamut-stage0-cgats-release, resolves issue #31 - Same pattern for
feat/30(resolves #30),feat/29(resolves #29),feat/28(resolves #28),feat/32(resolves #32). - Gitea PR numbers will not be #28–#32; those are issue numbers. Use the next available PR numbers (current tip is #54).
- Every PR carries labels:
Project/ICCery-v2, aFeature/*orBug/*label, and aPriority/*label.
Slice commit order inside each feature branch
| Branch | Slice order | Rationale |
|---|---|---|
feat/30-cgats-interop |
30a parser → 30b writer → 30c open-dialog import | Lower layers first; UI only after parser/writer green. |
feat/29-stage0-calibration |
29a argv goldens → 29b store/curve → 29c dashboard → 29d apply toggle | Args contracts first; UI last. |
feat/28-scenekit-gamut |
28a asset confirm + real-file fixture → 28b parser → 28c SceneKit view | Confirm real sRGB.gam before any SCNView type exists. |
feat/31-about-help-chrome |
Single slice | UI chrome only; no lower layers. |
feat/32-packaging-ci |
Single slice, last | Rebase on milestone tip after all other branches land. |
Merge rules
milestone/m6-gamut-stage0-cgats-releaseis created only after the Phase 0 cut checklist passes. Gitea #24 was updated at 2026-09-09T16:02:25Z.- #31, #30, #29, #28 may merge into the milestone branch in any order once green.
- #32 merges into the milestone branch last and only after a successful rebase.
- No
feat/52-*/feat/m6-bugfixesumbrella branches. - Any new M5 residual discovered after the cut gets a single
fix/<issue#>-<slug>branch offmilestone/m6-gamut-stage0-cgats-release(ordevelopif the cut has not happened yet).