Skip to content

1.1.0 — resync catalog with upstream Solar (1,231 → 1,247 icons) - #4

Merged
sovanken merged 2 commits into
mainfrom
sync/solar-1.1.0
Aug 14, 2026
Merged

1.1.0 — resync catalog with upstream Solar (1,231 → 1,247 icons)#4
sovanken merged 2 commits into
mainfrom
sync/solar-1.1.0

Conversation

@sovanken

Copy link
Copy Markdown
Owner

Summary

Resyncs the bundled Solar catalog with upstream: 1,231 → 1,247 icons (7,482 SVG variants). Nothing a previous release shipped was dropped — all 56 renamed names survive as @Deprecated constants — but 11 icons now render a different drawing under the same name because Solar redrew them upstream.

Type of change

  • New feature (non-breaking change that adds functionality)
  • Chore (tooling, CI, dependency bump)

Not marked breaking: everything still compiles and no constant was removed. But see the visual-changes table below — the appearance change is real and is documented for consumers.

What changed

Added

  • 11 brand-new icons: cart-4, document-2, forward-right, list-vertical, logout, logout-2, mirror-2, notebook-2, record-audio-circle, star-2, vanity.
  • SolarIcons.legacyAliases — 56-entry retired-name → current-name map.
  • SolarIcon.resolveName, applied by assetPath, so raw strings like SolarIcon('magnifer') keep resolving.

Visual changes (11 icons) — six had their original drawing moved to a new name:

Constant 1.0.x drawing now lives at
home house
reorder reorder2
stars stars2
cup mug
bill bill2
scale scaling

Five more were redrawn with no replacement name: phone, smartphone-2, volume-knob, keyboard, cloud-snowfall-minimalistic. The other 1,236 icons are visually unchanged — verified by rendering every icon at 1.0.3 and at HEAD and diffing the pixels.

Renames — 56 upstream spelling fixes (magnifermagnifier, spedometer-*speedometer-*, condicionerconditioner, 4kfour-k, …). Each old constant remains, marked @Deprecated and valued at its replacement, so existing code compiles and renders identically while the analyzer points at the new name.

Bundle — 6.1 MB → 5.7 MB despite 16 more icons, via an SVGO 4 pass. Sampled pre/post raster check: max 2.2 % diff, entirely anti-aliasing.

Why the generator changed

tool/fetch_icons.py previously built the catalog from Iconify's browsable listing alone. That listing omits renamed and hidden entries, so a naive refresh would have silently deleted 56 constants that 1.0.x consumers import. It now diffs against the committed catalog, resolves each retired name to its replacement, and aborts rather than dropping any shipped name.

Checklist

  • flutter analyze reports zero errors
  • flutter test passes locally (40 tests, 5 new covering legacy resolution)
  • Public API changes are documented via dartdoc
  • CHANGELOG.md has an entry describing the change
  • If widget behavior changed, added at least one test covering the new behavior
  • dart format . was run on modified files

Additional context

The home-2-broken golden was regenerated — it drifted 23 px out of 480,000 (max channel delta 5/255) after the SVGO pass. A new README section, "Upgrading from 1.0.x", carries the migration table for consumers.

🤖 Generated with Claude Code

sovanken and others added 2 commits August 14, 2026 10:25
Solar renamed, redrew, and added icons upstream since 1.0.3. This resyncs
the bundled catalog without dropping anything a previous release shipped.

Added:
- 11 brand-new icons: cart-4, document-2, forward-right, list-vertical,
  logout, logout-2, mirror-2, notebook-2, record-audio-circle, star-2,
  vanity.
- SolarIcons.legacyAliases — 56-entry retired-name -> current-name map.
- SolarIcon.resolveName, applied by assetPath, so raw strings such as
  SolarIcon('magnifer') keep resolving after the rename.

Changed:
- 11 icons now render a different drawing under the same name because
  Solar redrew them. Six had their original drawing moved to a new name
  (home -> house, reorder -> reorder-2, stars -> stars-2, cup -> mug,
  bill -> bill-2, scale -> scaling); five were redrawn with no
  replacement (phone, smartphone-2, volume-knob, keyboard,
  cloud-snowfall-minimalistic). The other 1,236 are visually unchanged,
  verified by rendering every icon at both versions and diffing pixels.
- 56 misspelled names corrected upstream (magnifer -> magnifier,
  spedometer-* -> speedometer-*, condicioner -> conditioner, and so on).
  Each old name survives as a @deprecated constant valued at its
  replacement, so existing code compiles and renders identically.
- Asset bundle 6.1 MB -> 5.7 MB despite 16 more icons, via SVGO 4.
  Sampled pre/post raster check: max 2.2% diff, all anti-aliasing.
- Regenerated the home-2-broken golden (23px of 480,000, max channel
  delta 5/255) after the SVGO pass.

tool/fetch_icons.py no longer builds the catalog from Iconify's browsable
listing alone. That listing omits renamed and hidden entries, so a naive
refresh would have silently deleted 56 shipped constants. It now diffs
against the committed catalog, resolves each retired name to its
replacement, and aborts rather than dropping any shipped name.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The icon-browser link claimed "all 1,231 icons"; drop the count so it does
not drift again (the web browser still needs its own resync). Bump the bug
report version placeholder to 1.1.0.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@sovanken
sovanken merged commit d2930f5 into main Aug 14, 2026
4 checks passed
@sovanken
sovanken deleted the sync/solar-1.1.0 branch August 14, 2026 03:34
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