From b1fc87aa2d36de5278ebfb33db9596d9b4dd0975 Mon Sep 17 00:00:00 2001 From: Imani Manyara Date: Thu, 5 Nov 2026 08:26:10 -0500 Subject: [PATCH] Name the Twemoji pack ichava/icon-sets-twemoji The emoji pack ships Twemoji only and was renamed, forward only. The catalogue entry takes key twemoji, the new package, repository and title; docs, diagrams, comments and the registration golden fixture follow. Stored ids under the old name stop resolving and hosts re-seed. NoFormerTwemojiPackNameTest fails if the old name returns outside CHANGELOG.md and the estate-wide changelog.yml comment; proven red. --- CHANGELOG.md | 1 + docs/architecture.md | 14 +-- docs/installation.md | 2 +- docs/recipes/use-an-icon-pack.md | 2 +- docs/tools/artisan-commands.md | 2 +- icon-sets.json | 10 +- src/Constants/JsonConfigConstants.php | 6 +- src/Events/IconPackUpdateAvailable.php | 6 +- src/Services/SvgProcessingService.php | 2 +- .../InstallCommandCharacterizationTest.php | 4 +- tests/Feature/PackConfigShapeTest.php | 4 +- tests/Unit/NoFormerTwemojiPackNameTest.php | 92 ++++++++++++++++++ tests/fixtures/RegistrationGolden.json | 94 +++++++++---------- .../RegistrationGolden/openmoji/config.json | 6 +- .../{emoji => twemoji}/config.json | 14 +-- .../{emoji => twemoji}/files/.gitkeep | 0 16 files changed, 176 insertions(+), 83 deletions(-) create mode 100644 tests/Unit/NoFormerTwemojiPackNameTest.php rename tests/fixtures/RegistrationGolden/{emoji => twemoji}/config.json (86%) rename tests/fixtures/RegistrationGolden/{emoji => twemoji}/files/.gitkeep (100%) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2ff983f5..a84f8e2c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -47,6 +47,7 @@ All notable changes to `ichava/core` follow [Keep a Changelog](https://keepachan ### Changed +- **The Twemoji pack is `ichava/icon-sets-twemoji`** (owner, 2026-11-05: forward only, no aliases). The emoji pack ships Twemoji only and was renamed from `ichava/icon-sets-emoji`. `icon-sets.json` lists it under key `twemoji` (was `emoji`), package and repository `ichava/icon-sets-twemoji` and title `Twemoji`, so `ichava::ichava-core.install twemoji` installs it and `emoji` is no longer a key; the OpenMoji entry's description follows that pack's `config.json`. The docs pack table, architecture diagrams, pack-docs link and `check-updates` example name the new package, and the registration golden's fixture moved to `RegistrationGolden/twemoji` with the pack's current `config.json`. Stored ids `ichava/icon-sets-emoji::twemoji/...` no longer resolve; hosts delete them and re-seed the pack. `NoFormerTwemojiPackNameTest` fails if the old name appears anywhere in this repository outside this changelog (proven red on a planted line). - **`icon-sets.json` records each pack's `visibility`** (`public` or `private`), synced by `bin/sync-icon-sets.php` from the repos API and kept when a response does not state it (F-02). Documented under *The pack catalogue* in `docs/tools/artisan-commands.md`. `tests/Unit/SyncIconSetsVisibilityTest.php`. - **The generic Blade snippet uses a prefix this host registers**: the short one while `components.short_prefix` names one, `ichava-core` when it is off (`ComponentPrefixes::snippetPrefix()`). - **`IconDriverInterface` states `SvgDriver`'s real API** (`render(IconData …)`, `load(string $path …)`), `SvgDriver` implements it, the provider binds it, and `IconRegistry`, `IconSvgReader` and `DirectoryIconDriver` depend on it (C-17). The interface's old directory methods (`all`, `has`, `setConfig`, `getConfig`, `setIconPath`, `getIconPath`) are gone from it; `DirectoryIconDriver` keeps them as its own API. `IconRegistry::driver()` returns the interface. `tests/Feature/IconDriverContractTest.php`. diff --git a/docs/architecture.md b/docs/architecture.md index 957d635a..7956b26f 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -30,7 +30,7 @@ flowchart TB browser["ichava/icon-browser
REST API + Inertia/React browser
middleware + browser views
PRIVATE, licensed"] tabler["ichava/icon-sets-tabler
6,202 icons"] flag["ichava/icon-sets-flag
542 flags, 1x1 + 4x3"] - emoji["ichava/icon-sets-emoji
3,435 Twemoji icons"] + twemoji["ichava/icon-sets-twemoji
3,435 Twemoji icons"] third["3rd-party packs
via ichava::icon-sets-package-scaffolder.make"] meta["ichava/ichava
pre-split monolith, superseded by core
ARCHIVED 2026-09-22, read-only"] toolkit["ichava/icon-sets-sync
Docker-first sync tool
refreshes vendored SVGs via PR
(not installed by users)"] @@ -40,11 +40,11 @@ flowchart TB browser -- depends on --> core tabler -- depends on --> core flag -- depends on --> core - emoji -- depends on --> core + twemoji -- depends on --> core third -- depends on --> core toolkit -. CI refreshes .-> tabler toolkit -. CI refreshes .-> flag - toolkit -. CI refreshes .-> emoji + toolkit -. CI refreshes .-> twemoji react -. replaces the SPA in .-> browser classDef engine fill:#1f6feb,stroke:#1f6feb,color:#fff @@ -54,7 +54,7 @@ flowchart TB classDef tooling fill:#bf8700,stroke:#bf8700,color:#fff class core engine class browser http - class tabler,flag,emoji,third pack + class tabler,flag,twemoji,third pack class meta,motion,react other class toolkit tooling ``` @@ -106,8 +106,8 @@ classDiagram class FlagIcons_IconsServiceProvider["IconsServiceProvider"] { <> } - class EmojiSets_IconsServiceProvider["IconsServiceProvider"] { - <> + class Twemoji_IconsServiceProvider["IconsServiceProvider"] { + <> } PackageServiceProvider <|-- IchavaServiceProvider PackageServiceProvider <|-- SupportServiceProvider @@ -115,7 +115,7 @@ classDiagram PackageServiceProvider <|-- IconBrowserServiceProvider IconPackServiceProvider <|-- TablerIcons_IconsServiceProvider IconPackServiceProvider <|-- FlagIcons_IconsServiceProvider - IconPackServiceProvider <|-- EmojiSets_IconsServiceProvider + IconPackServiceProvider <|-- Twemoji_IconsServiceProvider ``` **Every pack's provider is called `IconsServiceProvider`.** The short name is a constant across the diff --git a/docs/installation.md b/docs/installation.md index 1a5a0f59..f2b1ead7 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -72,7 +72,7 @@ the repositories block in step 1, then require it. Some of the public ones: |---|---|---| | `ichava/icon-sets-tabler` | 6,238 | `https://github.com/ichava/icon-sets-tabler` | | `ichava/icon-sets-flag` | 542 | `https://github.com/ichava/icon-sets-flag` | -| `ichava/icon-sets-emoji` | 3,435 | `https://github.com/ichava/icon-sets-emoji` | +| `ichava/icon-sets-twemoji` | 3,435 | `https://github.com/ichava/icon-sets-twemoji` | | `ichava/icon-sets-openmoji` | 8,568 | `https://github.com/ichava/icon-sets-openmoji` | ```bash diff --git a/docs/recipes/use-an-icon-pack.md b/docs/recipes/use-an-icon-pack.md index 81340efc..08cfc193 100644 --- a/docs/recipes/use-an-icon-pack.md +++ b/docs/recipes/use-an-icon-pack.md @@ -61,7 +61,7 @@ Each pack's repository has a `docs/` directory: - [`ichava/icon-sets-tabler/docs/`](https://github.com/ichava/icon-sets-tabler/tree/main/docs) - [`ichava/icon-sets-flag/docs/`](https://github.com/ichava/icon-sets-flag/tree/main/docs) -- [`ichava/icon-sets-emoji/docs/`](https://github.com/ichava/icon-sets-emoji/tree/main/docs) +- [`ichava/icon-sets-twemoji/docs/`](https://github.com/ichava/icon-sets-twemoji/tree/main/docs) Look there for stroke widths, variant lists, attribution, and any pack-specific behaviour. diff --git a/docs/tools/artisan-commands.md b/docs/tools/artisan-commands.md index 30083193..7b2e19c0 100644 --- a/docs/tools/artisan-commands.md +++ b/docs/tools/artisan-commands.md @@ -92,7 +92,7 @@ Reports whether any registered icon pack is behind its upstream source. Reads ea ```bash php artisan ichava::ichava-core.check-updates # table for every pack -php artisan ichava::ichava-core.check-updates --package=ichava/icon-sets-emoji # restrict to one pack +php artisan ichava::ichava-core.check-updates --package=ichava/icon-sets-twemoji # restrict to one pack php artisan ichava::ichava-core.check-updates --format=json # machine-readable php artisan ichava::ichava-core.check-updates --fail-on-stale # exit 1 if any pack is behind ``` diff --git a/icon-sets.json b/icon-sets.json index 1284fe62..0ad65f85 100644 --- a/icon-sets.json +++ b/icon-sets.json @@ -42,10 +42,10 @@ "visibility": "public" }, { - "key": "emoji", - "package": "ichava/icon-sets-emoji", - "repository": "ichava/icon-sets-emoji", - "title": "Emoji Sets", + "key": "twemoji", + "package": "ichava/icon-sets-twemoji", + "repository": "ichava/icon-sets-twemoji", + "title": "Twemoji", "description": "Twemoji, Twitter/X's open-source emoji set, as SVG. Unicode 17 / Emoji 17 spec. Categorised by Unicode CLDR groups. OpenMoji is in ichava/icon-sets-openmoji.", "license": "MIT (code) / CC-BY 4.0 (Twemoji assets)", "icon_count": 3435, @@ -64,7 +64,7 @@ "package": "ichava/icon-sets-openmoji", "repository": "ichava/icon-sets-openmoji", "title": "OpenMoji", - "description": "OpenMoji emoji in two sets (colour and black outline), Unicode emoji 16.0, grouped by Unicode CLDR category. Moved verbatim from ichava/icon-sets-emoji.", + "description": "OpenMoji emoji in two sets (colour and black outline), Unicode emoji 16.0, grouped by Unicode CLDR category. Moved verbatim from ichava/icon-sets-twemoji, which now ships Twemoji only.", "license": "MIT (code) / CC-BY-SA 4.0 (OpenMoji assets)", "icon_count": 8568, "variants": [ diff --git a/src/Constants/JsonConfigConstants.php b/src/Constants/JsonConfigConstants.php index 290ad622..6c14bd6d 100644 --- a/src/Constants/JsonConfigConstants.php +++ b/src/Constants/JsonConfigConstants.php @@ -308,8 +308,8 @@ public static function getType(): string * is the site of the project whose icons the pack vendors, and it is the * only place that fact is recorded in a human-facing form. * - * Returns '' when the pack has no single upstream -- `icon-sets-emoji` - * vendors two projects across three sets and omits the key deliberately. + * Returns '' when the pack omits the key -- `icon-sets-twemoji` does, and + * names its upstream, with its URL, in `metadata.authors` instead. * * Example: https://tabler-icons.io/ */ @@ -495,7 +495,7 @@ public static function getUpstreamCdnUrls(): array * * { "type": "npm", "package": "...", "source_path": "..." } * { "type": "github-archive", "archive_url": "...", "source_path": "..." } - * { "type": "recipe", "recipe": "emoji-sets" } + * { "type": "recipe", "recipe": "twemoji-sets" } * { "type": "url", "version_field": "version" } * * @return array|null diff --git a/src/Events/IconPackUpdateAvailable.php b/src/Events/IconPackUpdateAvailable.php index 19c5539a..b31c6aab 100644 --- a/src/Events/IconPackUpdateAvailable.php +++ b/src/Events/IconPackUpdateAvailable.php @@ -27,9 +27,9 @@ public function __construct( /** * Which source under the pack's `upstream` block fired the * event. "primary" for the canonical source; the value of - * `additional_sources[*].name` for secondary trackers (e.g. - * emoji-sets dispatches one event for `primary` (Twemoji) and - * one for `openmoji` whenever either upstream moves). + * `additional_sources[*].name` for secondary trackers (a pack + * that tracks a second upstream dispatches one event for + * `primary` and one for that source whenever either moves). */ public string $sourceName = 'primary', ) {} diff --git a/src/Services/SvgProcessingService.php b/src/Services/SvgProcessingService.php index 332dda85..28bc1875 100644 --- a/src/Services/SvgProcessingService.php +++ b/src/Services/SvgProcessingService.php @@ -61,7 +61,7 @@ final class SvgProcessingService * 4: the sanitiser drops stray text and CDATA directly under `` and * `` (icon-sets-sync#85), which no config hash sees. Measured 2026-11-04 * across 142,247 pack SVGs, 2 outputs changed for it (OpenMoji's 1F684 - * high-speed train in icon-sets-emoji, eos-icons' link-off in + * high-speed train, now in icon-sets-openmoji, eos-icons' link-off in * icon-sets-bundled). The 34 that changed for the new `display` and `color` * attributes are re-keyed by the attribute hash on their own. */ diff --git a/tests/Feature/Commands/InstallCommandCharacterizationTest.php b/tests/Feature/Commands/InstallCommandCharacterizationTest.php index 9d1e79f2..03d956a7 100644 --- a/tests/Feature/Commands/InstallCommandCharacterizationTest.php +++ b/tests/Feature/Commands/InstallCommandCharacterizationTest.php @@ -69,7 +69,7 @@ function bindInstallCatalog(array|Throwable $sets): void 'Tabler Icons (', ' icons, outline + filled) — ○ not installed · ○ not seeded', 'Flag Icons (', - 'Emoji Sets (', + 'Twemoji (', 'Latest release: ', "Require '{$target}' via Composer? (yes/no) [yes]", 'Operation cancelled.', @@ -96,7 +96,7 @@ function bindInstallCatalog(array|Throwable $sets): void [$exit, $display] = $this->runCommand(INSTALL_COMMAND, ['set' => 'nope']); $this->assertSame(1, $exit); - $this->assertDisplayContains($display, ["✗ Unknown icon set 'nope'.", 'Available: tabler, flags, emoji']); + $this->assertDisplayContains($display, ["✗ Unknown icon set 'nope'.", 'Available: tabler, flags, twemoji']); }); it('fails when the catalog cannot be loaded', function (): void { diff --git a/tests/Feature/PackConfigShapeTest.php b/tests/Feature/PackConfigShapeTest.php index 098bd6b3..113f488d 100644 --- a/tests/Feature/PackConfigShapeTest.php +++ b/tests/Feature/PackConfigShapeTest.php @@ -14,8 +14,8 @@ * ever got `supportsCategories`, and IconSetBuilder::buildIconPath() dropped the * middle segment of a three-segment path: `glyphs/round/dot` was looked up as * `files/glyphs/dot.svg`. That made every icon one directory deeper than the - * first unreachable (15,393 in icon-sets-bundled, all 10,567 in - * icon-sets-emoji). + * first unreachable (15,393 in icon-sets-bundled, and all 10,567 in the + * emoji pack before OpenMoji moved out of it). * * The top-level shape is not read at all: the estate is forward-only, and the * fallback that kept a pack written against the old lookup working was diff --git a/tests/Unit/NoFormerTwemojiPackNameTest.php b/tests/Unit/NoFormerTwemojiPackNameTest.php new file mode 100644 index 00000000..1c51d7c9 --- /dev/null +++ b/tests/Unit/NoFormerTwemojiPackNameTest.php @@ -0,0 +1,92 @@ + paths relative to the repository root */ +function core_former_name_scanned_files(): array +{ + $root = dirname(__DIR__, 2); + $skip = ['.git', 'vendor', 'node_modules', '.phpstan.cache', '.phpunit.cache', '.idea', 'build']; + $files = []; + + $iterator = new RecursiveIteratorIterator( + new RecursiveCallbackFilterIterator( + new RecursiveDirectoryIterator($root, FilesystemIterator::SKIP_DOTS), + static fn (SplFileInfo $file): bool => ! ($file->isDir() && in_array($file->getFilename(), $skip, true)), + ), + ); + + foreach ($iterator as $file) { + if ($file instanceof SplFileInfo && $file->isFile()) { + $files[] = substr($file->getPathname(), strlen($root) + 1); + } + } + + sort($files); + + return $files; +} + +it('names the Twemoji pack by its current name everywhere outside history', function (): void { + $root = dirname(__DIR__, 2); + $former = core_former_twemoji_pack_name(); + $files = core_former_name_scanned_files(); + $offenders = []; + + foreach ($files as $path) { + if ($path === 'CHANGELOG.md') { + continue; + } + + $lines = file($root . '/' . $path, FILE_IGNORE_NEW_LINES) ?: []; + + foreach ($lines as $number => $line) { + if (! str_contains($line, $former)) { + continue; + } + + if ($path === '.github/workflows/changelog.yml' && str_contains($line, $former . ' had [0.2.6] filed')) { + continue; + } + + $offenders[] = $path . ':' . ($number + 1); + } + } + + // src, tests, fixtures, docs and workflows: 484 tracked files on + // 2026-11-05. A scan that stops finding files reports a clean tree. + expect(count($files))->toBeGreaterThan(400) + ->and($offenders)->toBe([], 'the former Twemoji pack name is back in: ' . implode(', ', $offenders)); +}); + +it('catalogues the Twemoji pack under its current name and key', function (): void { + $sets = json_decode((string) file_get_contents(dirname(__DIR__, 2) . '/icon-sets.json'), true, flags: JSON_THROW_ON_ERROR)['sets']; + $twemoji = array_values(array_filter($sets, static fn (array $set): bool => $set['package'] === 'ichava/icon-sets-twemoji')); + + expect($twemoji)->toHaveCount(1) + ->and($twemoji[0]['key'])->toBe('twemoji') + ->and($twemoji[0]['repository'])->toBe('ichava/icon-sets-twemoji'); +}); diff --git a/tests/fixtures/RegistrationGolden.json b/tests/fixtures/RegistrationGolden.json index 70066db2..ffdc2b8e 100644 --- a/tests/fixtures/RegistrationGolden.json +++ b/tests/fixtures/RegistrationGolden.json @@ -442,52 +442,6 @@ "version": "0.1.0" } }, - "/tests/fixtures/RegistrationGolden/emoji": { - "aliases": [], - "metadata": { - "base_path": "/tests/fixtures/RegistrationGolden/emoji", - "blade_component": null, - "category_kinds": [], - "declared_kind": "icon", - "description": "Twemoji, Twitter/X's open-source emoji set, as SVG. Unicode 17 / Emoji 17 spec. Categorised by Unicode CLDR groups. OpenMoji is in ichava/icon-sets-openmoji.", - "homepage": null, - "icon_set_name": "ichava/icon-sets-emoji", - "item_kinds": [], - "keywords": [ - "emoji", - "twemoji", - "svg", - "unicode", - "bundle" - ], - "kind": "icon", - "kind_issues": [], - "kind_rules": [], - "labels": [], - "license": "MIT (code) / CC-BY 4.0 (Twemoji assets)", - "name": "Emoji Sets", - "package_name": "ichava/icon-sets-emoji", - "prefix": "emoji", - "provider_class": null, - "repository": "https://github.com/ichava/icon-sets-emoji", - "theme_variants": [], - "total": 0, - "variant_metadata": { - "default": { - "name": "Default", - "slug": "default", - "description": "Standard Twemoji style", - "default": true, - "icon_suffix": "", - "display_order": 1, - "attributes": [], - "color_scheme": "adaptive" - } - }, - "vendor": "ichava", - "version": "0.1.0" - } - }, "/tests/fixtures/RegistrationGolden/extras": { "aliases": [], "metadata": { @@ -1192,7 +1146,7 @@ "blade_component": null, "category_kinds": [], "declared_kind": "icon", - "description": "OpenMoji emoji in two sets (colour and black outline), Unicode emoji 16.0, grouped by Unicode CLDR category. Moved verbatim from ichava/icon-sets-emoji.", + "description": "OpenMoji emoji in two sets (colour and black outline), Unicode emoji 16.0, grouped by Unicode CLDR category. Moved verbatim from ichava/icon-sets-twemoji, which now ships Twemoji only.", "homepage": "https://openmoji.org/", "icon_set_name": "ichava/icon-sets-openmoji", "item_kinds": [], @@ -1483,6 +1437,52 @@ "version": "0.1.0" } }, + "/tests/fixtures/RegistrationGolden/twemoji": { + "aliases": [], + "metadata": { + "base_path": "/tests/fixtures/RegistrationGolden/twemoji", + "blade_component": null, + "category_kinds": [], + "declared_kind": "icon", + "description": "Twemoji, Twitter/X's open-source emoji set, as SVG. Twemoji 15, on the Unicode emoji 16.0 taxonomy. Categorised by Unicode CLDR groups. OpenMoji is in ichava/icon-sets-openmoji.", + "homepage": null, + "icon_set_name": "ichava/icon-sets-twemoji", + "item_kinds": [], + "keywords": [ + "emoji", + "twemoji", + "svg", + "unicode", + "bundle" + ], + "kind": "icon", + "kind_issues": [], + "kind_rules": [], + "labels": [], + "license": "MIT (code) / CC-BY 4.0 (Twemoji assets)", + "name": "Twemoji", + "package_name": "ichava/icon-sets-twemoji", + "prefix": "twemoji", + "provider_class": null, + "repository": "https://github.com/ichava/icon-sets-twemoji", + "theme_variants": [], + "total": 0, + "variant_metadata": { + "default": { + "name": "Default", + "slug": "default", + "description": "Standard Twemoji style", + "default": true, + "icon_suffix": "", + "display_order": 1, + "attributes": [], + "color_scheme": "adaptive" + } + }, + "vendor": "ichava", + "version": "0.1.0" + } + }, "/tests/fixtures/SpecPack/resources/assets/svg": { "aliases": [], "metadata": { diff --git a/tests/fixtures/RegistrationGolden/openmoji/config.json b/tests/fixtures/RegistrationGolden/openmoji/config.json index cf4c292f..d25f4780 100644 --- a/tests/fixtures/RegistrationGolden/openmoji/config.json +++ b/tests/fixtures/RegistrationGolden/openmoji/config.json @@ -3,7 +3,7 @@ "package": { "name": "ichava/icon-sets-openmoji", "title": "OpenMoji", - "description": "OpenMoji emoji in two sets (colour and black outline), Unicode emoji 16.0, grouped by Unicode CLDR category. Moved verbatim from ichava/icon-sets-emoji.", + "description": "OpenMoji emoji in two sets (colour and black outline), Unicode emoji 16.0, grouped by Unicode CLDR category. Moved verbatim from ichava/icon-sets-twemoji, which now ships Twemoji only.", "keywords": [ "emoji", "openmoji", @@ -78,11 +78,11 @@ "openmoji_black_jsdelivr": "https://cdn.jsdelivr.net/gh/hfg-gmuend/openmoji@{version}/black/svg/{codepoint}.svg" }, "update_command": { - "_note": "Refreshed by ichava/icon-sets-sync from config/icon-sets-openmoji.json, through its `openmoji-sets` recipe: both sets from one pinned hfg-gmuend/openmoji release tag, categorised by the Unicode taxonomy, with the guards that keep every icon. The weekly sync-upstream run here calls it. ichava/icon-sets-emoji no longer carries OpenMoji, so this pack is its only home.", + "_note": "Refreshed by ichava/icon-sets-sync from config/icon-sets-openmoji.json, through its `openmoji-sets` recipe: both sets from one pinned hfg-gmuend/openmoji release tag, categorised by the Unicode taxonomy, with the guards that keep every icon. The weekly sync-upstream run here calls it. ichava/icon-sets-twemoji no longer carries OpenMoji, so this pack is its only home.", "type": "recipe", "recipe": "openmoji-sets" }, - "_vendored_note": "The files were moved verbatim from ichava/icon-sets-emoji, where they were produced from OpenMoji 15.1.0 and categorised with Unicode emoji 16.0 (emoji-test.txt).", + "_vendored_note": "The files were moved verbatim from ichava/icon-sets-twemoji, where they were produced from OpenMoji 15.1.0 and categorised with Unicode emoji 16.0 (emoji-test.txt).", "cldr_version": "16.0" } } diff --git a/tests/fixtures/RegistrationGolden/emoji/config.json b/tests/fixtures/RegistrationGolden/twemoji/config.json similarity index 86% rename from tests/fixtures/RegistrationGolden/emoji/config.json rename to tests/fixtures/RegistrationGolden/twemoji/config.json index 79d45306..2adcb3f0 100644 --- a/tests/fixtures/RegistrationGolden/emoji/config.json +++ b/tests/fixtures/RegistrationGolden/twemoji/config.json @@ -1,9 +1,9 @@ { "schema_version": "1.0", "package": { - "name": "ichava/icon-sets-emoji", - "title": "Emoji Sets", - "description": "Twemoji, Twitter/X's open-source emoji set, as SVG. Unicode 17 / Emoji 17 spec. Categorised by Unicode CLDR groups. OpenMoji is in ichava/icon-sets-openmoji.", + "name": "ichava/icon-sets-twemoji", + "title": "Twemoji", + "description": "Twemoji, Twitter/X's open-source emoji set, as SVG. Twemoji 15, on the Unicode emoji 16.0 taxonomy. Categorised by Unicode CLDR groups. OpenMoji is in ichava/icon-sets-openmoji.", "keywords": [ "emoji", "twemoji", @@ -25,7 +25,7 @@ "url": "https://github.com/jdecked/twemoji" } ], - "repository": "https://github.com/ichava/icon-sets-emoji", + "repository": "https://github.com/ichava/icon-sets-twemoji", "data": { "variants": { "default": { @@ -55,7 +55,7 @@ } }, "config": { - "icon_prefix": "emoji" + "icon_prefix": "twemoji" }, "upstream": { "_comment": "Each emoji set has its own upstream; Twemoji is the only one.", @@ -74,9 +74,9 @@ "twemoji_github_raw": "https://raw.githubusercontent.com/jdecked/twemoji/{twemoji_github_tag}/assets/svg/{codepoint}.svg" }, "update_command": { - "_note": "Refresh runs in ichava/icon-sets-sync via the `emoji-sets` recipe -- Twemoji (npm) + Unicode CLDR. No pack-side script.", + "_note": "Refresh runs in ichava/icon-sets-sync via the `twemoji-sets` recipe -- Twemoji (npm) + Unicode CLDR. No pack-side script.", "type": "recipe", - "recipe": "emoji-sets" + "recipe": "twemoji-sets" }, "_vendored_note": "Versions of the upstreams that produced the shipped assets. They move independently and conflating them is what left this pack empty: current_version read 17.0.0, which @twemoji/svg has never published, so `npm pack` failed and no assets were ever written (V4). Twemoji 15.0.0 is npm's latest; Unicode emoji 16.0 is the newest emoji-test.txt that exists and is what the CLDR categorisation used. The jdecked/twemoji repository tags independently of the npm package: npm's 15.0.0 has no v15.0.0 tag, only v15.1.0. `twemoji_github_raw` therefore carries `{twemoji_github_tag}` rather than `{version}` -- a caller substituting only `{version}` leaves a visible placeholder in the URL instead of building a plausible v15.0.0 that 404s.", "cldr_version": "16.0" diff --git a/tests/fixtures/RegistrationGolden/emoji/files/.gitkeep b/tests/fixtures/RegistrationGolden/twemoji/files/.gitkeep similarity index 100% rename from tests/fixtures/RegistrationGolden/emoji/files/.gitkeep rename to tests/fixtures/RegistrationGolden/twemoji/files/.gitkeep