JuliaGraphics / ColorTypes.jl

Basic color definitions and traits
Other
78 stars 36 forks source link

Re-organization for v0.12 release #299

Open kimikage opened 5 months ago

kimikage commented 5 months ago

We have followed a policy of "moving forward first" and minimizing backports. But I stopped, and the confusion has arisen. So, I will try to backport some of the reverted PRs to minimize the gap between v0.11 and v0.12. Some of those backports should result in incompatibilities. The purpose is to encourage downstream packages to fix "unsafe" implementations, tests, etc.

Summary v0.11 v0.12 Note
🩹Update README.md 🪹⏪ #253
🩹Improve compN 🪹⏪ #245
💥Simplify display 🛡 #206
💥(Re-)define one 🛡 #243
💥Support alpha(::Number) 🛡 #177 Backportable but risky
✨Sampler-based Random 🪹⏪ #222 cf.#276
💥gamutmin/gamutmax 🛡 #254 Trivial but confusing
💥AbstractGray->abst. type 🛡 #252
🩹Conversions from/to Real 🪹⏪ #255
🩹Modify error messages 🪹⏪ #256
🩹Remove eltype_ub 🪹⏪ #258
💥Redesign constructors 🛡 #197 Follow-up needed
✨Add component iterator 🪹⏪ #260 Beware of Tuple(c)
✨Add init for reducec 🪹⏪ #263 Should rewrite !!! compat
🩹Conv. in the same color 🪹⏪ #264 Needs #260
🩹Simplify 0-arg ctor 🪹⏪ #265
✨Support isequal #279 #272 Backported
💥0.12.0-dev 🛡 #281
✨3-colorant mapc #282 🪹 Should be ported (with #260)
🐞Gray{T} constructor 🛡 #278 Should be generalize
✨Gray{Bool} rand 🪹 #276
🐞disable precompilation #270 #270 Needs review for new julia
🩹Update TagBot.yml #296 142353d Backported
✨Add Oklab and Oklch #296 #291 Backported
🩹Remove reinterpret test (296) #290 Backported (in #296)
🩹Patch tests for v0.11 #296 🪹 Should be ported! 😡
✨StyledStrings.SimpleColor 🪹 #293 Backportable (Needs #302,#307)
🩹Mention YUV 🪹 #297
🩹Update workflows #303 #301 Not required but helpful
🩹Followup StyledStringsExt 🪹 #302 Backportable (Needs #307)
🩹Fix unstable rand test 🪹 #305
🩹Update macOS test targets 🪹 #306 No need to backport
🩹Remove ones broken test 🛡 #308 for v0.12 (#243, #177)
🩹registered StyledStrings 🪹 #307 Backportable
🩹julia-actions/cache v2 🪹 #309 No need to backport

💥:Breaking change, ⏪: Reverted, 🪹: No implementation, 🛡: Should be blocked

kimikage commented 5 months ago

BTW, why not make PR mandatory (except in emergency situations)?

Also, before release, we should make sure that at least the Colors.jl test passes.

kimikage commented 5 months ago

The Tuple() constructor in PR #260 is debatable, but since there has actually been no opposition to it for three years. So, I see no problem with its inclusion in v0.11 as a non-public method. Of course, it is not recommended to be used in downstream packages

kimikage commented 5 months ago

I think it is safe to do this step-by-step, basically in a timeline, although we could put together several PRs.

kimikage commented 5 months ago

PR #302 makes StyledStringsExt technically backportable to v0.11. However, as StyledStrings is currently unregistered, there is no guarantee that StyledStringsExt will actually work on Julia v1.9 or v1.10. Also, StyledStringsExt can be substituted with a monkey patch. For these reasons, I do not think that the backporting should be done.

tecosaur commented 5 months ago

The comment above in addition to https://github.com/JuliaGraphics/ColorTypes.jl/pull/293#issuecomment-2081774542 should likely be updated in light of recent changes, c.f. https://github.com/JuliaGraphics/ColorTypes.jl/pull/293#issuecomment-2095756219.

kimikage commented 5 months ago

Shouldn't we merge PR #307 first?

tecosaur commented 5 months ago

Before what? I'm just prompting that the description of the state of affairs needs updating.

kimikage commented 5 months ago

The decision to label or unlabel should be based not only on whether it is factually true, but also on whether it is in the public interest. I will update the status.