Skip to content

Prepare the 2.0.0 release - #372

Merged
smelfungus merged 4 commits into
masterfrom
release-prep
Sep 29, 2026
Merged

smelfungus merged 4 commits into
masterfrom
release-prep

Conversation

@smelfungus

Copy link
Copy Markdown
Member
  • toGamut with Clip no longer throws for a color ColorValue accepted. Beyond about 1e102 the conversion into LMS overflows to NaN, which clamping passed through, and the mapped color failed its own check with IllegalArgumentException. A NaN channel clamps to 0, as Css and ChromaReduction already reached by searching. A test fails on master.
  • The limits of the arithmetic are stated, in KDoc and README: past about 1e102 a component maps to a color unrelated to it, and from about 1e150 to black; below an OkLCh lightness of 0.001, ChromaReduction's default solver finds the edge less precisely than the color holds, while EdgeSolver.Iterative keeps lightness and hue.
  • codes.side:colorpicker stops at 1.2.0. 1.2.1 was merged but never published, and CHANGELOG and the migration table named it. Its CHANGELOG section says so.
  • CHANGELOG lists 2.0's dependencies, per artifact.
  • SECURITY.md gives a private reporting path, the address CODE_OF_CONDUCT.md already publishes. The Pages config drops an exclude for a folder the repository does not have.
  • CI links an app against the published artifacts. tools/consumer is a build of its own that depends on colorpicker-material3 alone and links a dynamic iOS framework against what publishToMavenLocal just published, where the library's own framework is static and leaves symbol resolution to the app. With -PpickerRepo=snapshots it reads the Central snapshot repository instead.
Module JVM Android host wasm
color 243 230 230
color-compose 14 β€” β€”
colorpicker-foundation 313 β€” β€”
colorpicker-material3 177 β€” β€”

apiCheck and checkNoMaterial pass, and tools/consumer compiles for JVM against a local publication. The iOS link runs here in CI.

Beyond about 1e102 the cube from Oklab into LMS overflows, infinities of both signs meet as NaN, and clamping passed the NaN through, so toGamut with Clip threw IllegalArgumentException for a color ColorValue had accepted. A NaN channel now clamps to 0, as the other methods already reach by searching.

The KDoc states what remains: past about 1e102 the result is unrelated to the color and from about 1e150 black, and near black ClosedForm finds the edge less precisely than the color holds.
1.2.1 was merged but never published, yet CHANGELOG and the migration table named it as where codes.side:colorpicker stops. The 2.0 section also had no Dependencies entry, where 1.2.1's had one; it lists what each artifact adds. README gains the two limits of gamut mapping's arithmetic.
A vulnerability had no reporting path but a public issue; SECURITY.md gives the address CODE_OF_CONDUCT already publishes. The Pages config excluded a folder that is not in the repository.
CI checked that each module's POMs exist after publishToMavenLocal, which says nothing of whether an app can use them, and its iOS framework is static, which defers symbol resolution to the app. tools/consumer is a build of its own that depends on colorpicker-material3 alone and links a dynamic iOS framework against the published artifacts. With -PpickerRepo=snapshots it reads the Central snapshot repository instead of Maven Local.
@smelfungus
smelfungus merged commit 850a05a into master Sep 29, 2026
2 checks passed
@smelfungus
smelfungus deleted the release-prep branch September 29, 2026 19:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant