Port the icons off the archived go-iconoir - #276
Merged
Conversation
go-iconoir is archived and its two halves live apart now: go-icons/iconoir ships the pack as SVG source, toolkit.SVGIcon rasterises it and caches per (document, ink). The twenty glyph vars hold documents instead of *iconoir.Icon, resolved through a local mustIcon that keeps MustGet's contract, and drawIcon hands one to SVGIcon. Two test changes, both forced by measurement rather than by taste: TestDrawIconsPaintAA demanded a soft edge from every glyph. Iconoir's "menu" is three horizontal 1.5px rules that land on whole pixels at this size, so a correct rasteriser gives no partial coverage: it paints exactly one colour across 168 pixels, where "lock" and "user" each paint a dozen-plus coverage steps. The expectation is now per-glyph, and the reason is recorded next to it. A control run with a flat filled box still turns the test red, so it has not been weakened. TestUnknownIconName asserted the pack lookup and stopped there, which left its painter unused and its "painted nothing" check vacuous. It now draws the empty document through drawIcon, so the miss path is exercised where it actually runs. Verified with go build/vet/test across all 28 packages. This does not produce a signed bundle — that is nr-build's job and is unaffected by a dependency change. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
tannevaled
force-pushed
the
drop-archived-iconoir
branch
from
August 30, 2026 20:22
3dcd6ac to
397b41e
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
go-iconoiris archived; its two halves live apart now — go-icons/iconoir ships the pack as SVG source andtoolkit.SVGIconrasterises it, caching per (document, ink). The twenty glyph vars hold documents instead of*iconoir.Icon, resolved through a localmustIconthat keepsMustGet's contract.Needs toolkit v0.293.0, which carries go-gfx/gfx#33 — without it the rasteriser ignores the root
<svg>'sfill="none"and every closed Iconoir path renders filled.Two test changes, both forced by measurement:
TestDrawIconsPaintAAdemanded a soft edge from every glyph. Iconoir'smenuis three horizontal 1.5px rules that land on whole pixels at this size, so a correct rasteriser produces no partial coverage — measured: it paints exactly one colour across 168 pixels, whilelockandusereach paint a dozen-plus coverage steps. The expectation is per-glyph now, with the reason recorded beside it. Control run: a flat filled box still turns the test red, so it has not been weakened.TestUnknownIconNameasserted the lookup and stopped, leaving its painter unused and its "painted nothing" check vacuous. It now draws the empty document throughdrawIcon, exercising the miss path where it runs.Verified with build, vet and tests across all 28 packages. No signed bundle is produced here — that is
nr-build's job and is unaffected by a dependency change.🤖 Generated with Claude Code