)]}'
{
  "log": [
    {
      "commit": "4641d79d3a4f78f16971455eb3e4d236097ff60a",
      "tree": "aab7046406aa06439dd7bdbd4475c044512ed86f",
      "parents": [
        "7c21240cc0633fbbfc8c88431f3a8eb8e8c601ec"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Fri Jul 17 11:49:00 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 17 11:49:00 2026"
      },
      "message": "Clean up experimental data (#8236)\n\nBased on https://github.com/unicode-org/icu4x/pull/8235\n\nRemove stale data, use `MaybeAsVarULE` to reduce baked size, flatten\nstructs to improve JSON size.\n\n## Changelog\n\n`icu_experimental`\n* Remove `UnitsFormatter`, use `CategorizedUnitsFormatter`"
    },
    {
      "commit": "7c21240cc0633fbbfc8c88431f3a8eb8e8c601ec",
      "tree": "0003ab7370a43d6a041eef3cc563353291e22952",
      "parents": [
        "e14d38612a18c67a6b40f242f68ef7df37c7a80b"
      ],
      "author": {
        "name": "Shane F. Carr",
        "email": "shane@unicode.org",
        "time": "Fri Jul 17 11:47:45 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 17 11:47:45 2026"
      },
      "message": "Add Writeable Replace adapter (#8238)\n\nThis is a zero-allocation string replacement adapter for Writeables.\n\n## Changelog\n\nwriteable: new struct `writeable::adapters::Replace`\n\n---------\n\nCo-authored-by: Gemini \u003c176961590+gemini-code-assist[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "e14d38612a18c67a6b40f242f68ef7df37c7a80b",
      "tree": "4f5029ad81b06ea28a91cf268020714b9baf1397",
      "parents": [
        "7b373b18398f82106cdd77ebf8910fa5fb8bd9fb"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Fri Jul 17 11:02:46 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 17 11:02:46 2026"
      },
      "message": "Remove pattern selection from currency symbols data (#8235)"
    },
    {
      "commit": "7b373b18398f82106cdd77ebf8910fa5fb8bd9fb",
      "tree": "32a9c42f67bde1261c8b5592d4fed39eb8fc135c",
      "parents": [
        "f022cdf11d3e4af8d5ae6a5c6050f2965c841386"
      ],
      "author": {
        "name": "Younies Mahmoud",
        "email": "younies.mahmoud@gmail.com",
        "time": "Thu Jul 16 13:29:00 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 16 13:29:00 2026"
      },
      "message": "refactor(currency): Split currency symbols from essential patterns (#8228)\n\nSeparate symbol mappings (placeholders, pattern configurations, and\ndefault pattern selection) into a dedicated CurrencySymbolsV1 marker and\nstruct (`symbols.rs`), leaving CurrencyEssentialsV1 purely for core\nlayout rules (`patterns` and `indices`).\n\n## Changelog\n\n- Create `CurrencySymbolsV1` with `pattern_config_map`, `placeholders`,\nand `default_pattern_config` in\n`components/experimental/src/dimension/provider/currency/symbols.rs`.\n- Extract `CurrencySymbolsV1` in\n`provider/source/src/currency/symbols.rs` from CLDR (`symbol` and\n`symbol-narrow`).\n- Update `CurrencyEssentialsV1` in `essentials.rs` to only retain\n`patterns` and `indices`.\n- Update `CurrencyFormatterData::Essential` and formatters in\n`formatter.rs` \u0026 `compact_formatter.rs` to require and use both\n`CurrencyEssentialsV1` and `CurrencySymbolsV1`.\n- Update provider registry (`provider/registry/src/lib.rs`) and\nregenerate test and baked data for `CurrencySymbolsV1` and\n`CurrencyEssentialsV1`.\n\nTAG\u003dagy\nCONV\u003dd044eeab-1ec7-4391-9cf0-a6d3d9e6edf0\n\n---------\n\nCo-authored-by: Robert Bastian \u003c4706271+robertbastian@users.noreply.github.com\u003e"
    },
    {
      "commit": "f022cdf11d3e4af8d5ae6a5c6050f2965c841386",
      "tree": "c7b9477866f20dfd0982b1bdef8178e4fe1289a1",
      "parents": [
        "1768194beb937663e42c149660a935ad5c884151"
      ],
      "author": {
        "name": "Shane F. Carr",
        "email": "shane@unicode.org",
        "time": "Wed Jul 15 18:14:16 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 15 18:14:16 2026"
      },
      "message": "Add UnvalidatedTinyAsciiStr::default() (#8225)\n\n## Changelog\n\ntinystr: add `UnvalidatedTinyAsciiStr::DEFAULT`\n\n---------\n\nCo-authored-by: Robert Bastian \u003c4706271+robertbastian@users.noreply.github.com\u003e"
    },
    {
      "commit": "1768194beb937663e42c149660a935ad5c884151",
      "tree": "fe097b5cb547ec13acc19af257172b7e20e0b0fc",
      "parents": [
        "ae1795e4c0c546cbd06390e25f0d8cea0e84394d"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Wed Jul 15 17:09:38 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 15 17:09:38 2026"
      },
      "message": "Install `cargo-rdme` from GitHub (#8232)\n\nBecause it doesn\u0027t build.\n\n## Changelog\n\nN/A"
    },
    {
      "commit": "ae1795e4c0c546cbd06390e25f0d8cea0e84394d",
      "tree": "701e543b348ab0092fc6efbf45dd4bf5b53ba669",
      "parents": [
        "98270524781fdcd9465d2c58a4883c92a7d5233f"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Tue Jul 14 20:58:42 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 14 20:58:42 2026"
      },
      "message": "Model segmenter tailoring data like CLDR will (#8217)\n\n#7962 \n\nBest reviewed commit-by-commit.\n\n## Changelog\n\nN/A"
    },
    {
      "commit": "98270524781fdcd9465d2c58a4883c92a7d5233f",
      "tree": "751e43a98b8153b6727d99dd53b81ff718573f94",
      "parents": [
        "5eb104889b151c0a4cf8fddb1c7aeaaed0162314"
      ],
      "author": {
        "name": "Shane F. Carr",
        "email": "shane@unicode.org",
        "time": "Mon Jul 13 19:51:11 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 13 19:51:11 2026"
      },
      "message": "Implement missing length constructors in single displaynames (#8219)\n\n## Changelog\n\nicu_experimental::displaynames:\n- New methods:\n`LanguageIdentifierDisplayNameOwned::try_new_short[_unstable|_with_buffer_provider]`,\n`LanguageIdentifierDisplayNameOwned::try_new_long[_unstable|_with_buffer_provider]`\n`LanguageIdentifierDisplayNameOwned::try_new_short_menu[_unstable|_with_buffer_provider]`\n\n---------\n\nCo-authored-by: Gemini \u003c176961590+gemini-code-assist[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "5eb104889b151c0a4cf8fddb1c7aeaaed0162314",
      "tree": "f4c98d466f8bb2a303d0833b87243000c90ea5cf",
      "parents": [
        "f47f41200d2ffe5df9bf984729c661677bd2524f"
      ],
      "author": {
        "name": "Shane F. Carr",
        "email": "shane@unicode.org",
        "time": "Mon Jul 13 07:30:40 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 13 07:30:40 2026"
      },
      "message": "Add Dart example of hours with column alignment (#8218)\n\nCC @mosuem \n\n## Changelog\n\nN/A"
    },
    {
      "commit": "f47f41200d2ffe5df9bf984729c661677bd2524f",
      "tree": "7faefc76b879634b4c7db4d70edb522878dd61f6",
      "parents": [
        "6955c654ecdaf6892509cfa593634867a7bf6885"
      ],
      "author": {
        "name": "Shane F. Carr",
        "email": "shane@unicode.org",
        "time": "Fri Jul 10 22:34:14 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 10 22:34:14 2026"
      },
      "message": "Implement language display menu names (#8216)\n\n## Changelog\n\nicu_experimental::displaynames:\n\n- New constructors\n`LanguageIdentifierDisplayNameOwned::try_new_menu[_unstable|_with_buffer_provider]`"
    },
    {
      "commit": "6955c654ecdaf6892509cfa593634867a7bf6885",
      "tree": "fc843b67678c5166eea917077db40c3303c5b73b",
      "parents": [
        "6c96f3361c0688aa1d54bfb95cde73ce528d1875"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Fri Jul 10 10:41:09 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 10 10:41:09 2026"
      },
      "message": "Adopt RSCD naming (#8210)\n\n## Changelog\n\n- `icu_provider_source`\n- New items: `SourceDataProvider::with_unicode_rscd_for_tag()`,\n`SourceDataProvider::with_unicode_rscd()`,\n`SourceDataProvider::TESTED_UNICODE_TAG`,\n`SourceDataProvider::is_missing_rscd_error()`,\n- Deprecated `SourceDataProvider::with_ucd_for_tag()`,\n`SourceDataProvider::with_unihan_for_tag()`,\n`SourceDataProvider::with_ucd()`, `SourceDataProvider::with_unihan()`,\n`SourceDataProvider::TESTED_UCD_TAG`, ,\n`SourceDataProvider::is_missing_ucd_error()`\n\n---------\n\nCo-authored-by: Robin Leroy \u003cegg.robin.leroy@gmail.com\u003e"
    },
    {
      "commit": "6c96f3361c0688aa1d54bfb95cde73ce528d1875",
      "tree": "c373ea0b6f81eb54cb976e5e2dedcb2e0c7f858a",
      "parents": [
        "f4ea4eb5e88f0b7af1ea3c52fa3de5b4daf2da57"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Fri Jul 10 10:18:46 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 10 10:18:46 2026"
      },
      "message": "Don\u0027t use Ord with enumerated properties (#8212)\n\nSee\nhttps://github.com/unicode-org/icu4x/issues/6067#issuecomment-4925539102\n\nDategen should use public API, and I don\u0027t think `Ord` should be public\nAPI.\n\n## Changelog\n\nN/A"
    },
    {
      "commit": "f4ea4eb5e88f0b7af1ea3c52fa3de5b4daf2da57",
      "tree": "6bb93811225c1164954eb62626e7f844cec37502",
      "parents": [
        "5ba7ce7c89b3a251dc74958308865d057802b31c"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Fri Jul 10 10:18:13 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 10 10:18:13 2026"
      },
      "message": "Remove preferences serde impls (#8215)\n\nFixes #8171 \n\n## Changelog\n\nN/A\n\n---------\n\nCo-authored-by: Shane F. Carr \u003cshane@unicode.org\u003e\nCo-authored-by: Gemini \u003c176961590+gemini-code-assist[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "5ba7ce7c89b3a251dc74958308865d057802b31c",
      "tree": "3c392152851bb72468ae3224791cb5760b99d140",
      "parents": [
        "124150947abc48f0ac92da3b9b4847689fb4dd66"
      ],
      "author": {
        "name": "Shane F. Carr",
        "email": "shane@unicode.org",
        "time": "Fri Jul 10 10:15:55 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 10 10:15:55 2026"
      },
      "message": "Refactor language display names with QualifiersOwned (#8207)\n\nSplit from #8205\n\nI pulled out the first commit to make it easier to review. However, if\nyou also approve #8205, I will just merge that all at once.\n\n## Changelog\n\nN/A"
    },
    {
      "commit": "124150947abc48f0ac92da3b9b4847689fb4dd66",
      "tree": "694a55cb8c057a6cea21d7cab515d097b0f0c270",
      "parents": [
        "338eb0f6f5448176dcfaad34c33facf776a214dd"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Thu Jul 09 12:07:44 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 09 12:07:44 2026"
      },
      "message": "Some segmenter cleanups (#8209)\n\nSome of the changes from #8041 \n\n## Changelog\n\nN/A"
    },
    {
      "commit": "338eb0f6f5448176dcfaad34c33facf776a214dd",
      "tree": "4095802569b6073fa85696572fad9fdc1ff78fa0",
      "parents": [
        "0e91ea69758efbee79605cf80ce811af86f7adae"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Thu Jul 09 09:46:03 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 09 09:46:03 2026"
      },
      "message": "fix(currency): evaluate plural rules against formatted amount (#8198)\n\nCurrently the currency formatter uses the input `Decimal` to determine\nthe plural category. This is wrong, it needs to use the formatted\n`FormattedUnsignedDecimal`/`FormattedUnsignedCompactDecimal`. This is\nbecause these types might have a different plural category than the\n`Decimal` they\u0027re representing. For example in `fr`, `999_999` has\ncategory `other` (\"dollars US\"), but \"1.0 million\" has category `many`\n(\"de dollars US\").\n\n## Changelog\n\n`icu_plurals`:\n* add `PluralElements::get`"
    },
    {
      "commit": "0e91ea69758efbee79605cf80ce811af86f7adae",
      "tree": "3bc92d5eb7682caef436b47af21ceb73ef94e04e",
      "parents": [
        "9282b94d05c571da04e132fa5b34b4a2504f9ec4"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Thu Jul 09 09:39:19 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 09 09:39:19 2026"
      },
      "message": "2026c (#8200)\n\n## Changelog\n\nGeneral:\n* Updated data to TZDB 2026c"
    },
    {
      "commit": "9282b94d05c571da04e132fa5b34b4a2504f9ec4",
      "tree": "c9a341f2fdb4bb77bf38ec134f9e4b22363ba664",
      "parents": [
        "75a7cac13ca896c0d6b24408294ef35fe6b3601a"
      ],
      "author": {
        "name": "Shane F. Carr",
        "email": "shane@unicode.org",
        "time": "Wed Jul 08 20:05:57 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 08 20:05:57 2026"
      },
      "message": "Add borrowing and length hints for LanguageIdentifierDisplayName (#8193)\n\nFixes #8181\n\nDepends on #8192\n\n## Changelog\n\nicu_pattern: manually implement `writeable_length_hint`"
    },
    {
      "commit": "75a7cac13ca896c0d6b24408294ef35fe6b3601a",
      "tree": "c599da91cc5e7c2fdf2f23d017743e0320815aad",
      "parents": [
        "f13f7de7a0f9c5ceb295082e40121da6b39f2120"
      ],
      "author": {
        "name": "Moritz",
        "email": "mosum@google.com",
        "time": "Wed Jul 08 18:18:18 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 08 18:18:18 2026"
      },
      "message": "Add `libm` for android (#8199)\n\nWe should probably have some CI testing for Android. Not sure how to set\nit up though, or if it\u0027s even possible.\n\n## Changelog\n\nAdd `libm` as a library input in the Dart linking script for Android."
    },
    {
      "commit": "f13f7de7a0f9c5ceb295082e40121da6b39f2120",
      "tree": "29d87b5e2e87e8d495576f9b97d5102a3f924666",
      "parents": [
        "f692cb24000f18b5f4f7bfefab6a559dff7af455"
      ],
      "author": {
        "name": "Shane F. Carr",
        "email": "shane@unicode.org",
        "time": "Wed Jul 08 17:12:51 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 08 17:12:51 2026"
      },
      "message": "Add try_writeable_borrow and some impls for it (#8192)\n\nFixes #7004\n\nI have a call site for this now. This is the correct signature.\n\n## Changelog\n\nwriteable: add `TryWriteable::try_writeable_borrow`"
    },
    {
      "commit": "f692cb24000f18b5f4f7bfefab6a559dff7af455",
      "tree": "e65ef255d01918160861c237a4a5a091d82bcac4",
      "parents": [
        "ef148546b44a7719a9cd3923bfbdcb453f9c0f5d"
      ],
      "author": {
        "name": "Shane F. Carr",
        "email": "shane@unicode.org",
        "time": "Wed Jul 08 17:12:37 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 08 17:12:37 2026"
      },
      "message": "displaynames: Store variant fallback name on the stack (#8191)\n\nFixes #8190\n\n## Changelog\n\nN/A"
    },
    {
      "commit": "ef148546b44a7719a9cd3923bfbdcb453f9c0f5d",
      "tree": "771c4304a26b688cc962dbbc68de21d76a2fb7b7",
      "parents": [
        "7f5f30f975f89d7d0bc482b6c3ef5314476634f3"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Wed Jul 08 13:54:30 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 08 13:54:30 2026"
      },
      "message": "feat(currency): Merge all currency formatters into unified CurrencyFormatter\u003cV\u003e using AbstractFormatter (#8189)\n\n## Summary\n\nThis PR merges all remaining currency formatters into a single unified\n`CurrencyFormatter\u003cV\u003e` type by leveraging `AbstractFormatter`, proposing\nan alternative architecture to #8182.\nInstead of maintaining separate representation structs or duplicating\nformatting data (such as `decimal_formatter`, `compact_data`, and\n`plural_rules`), `CurrencyFormatter\u003cV\u003e` directly wraps an underlying\nvalue formatter (`DecimalFormatter` for standard currency formatting or\n`CompactDecimalFormatter` for compact currency formatting). This unifies\nthe currency formatting architecture, simplifies pattern interpolation,\nand significantly reduces boilerplate across the module.\n\n## Changelog\n- **Architecture Unification**: Refactored `CurrencyFormatter\u003cV\u003e` to\nconstrain `V: AbstractFormatter`, allowing it to wrap either\n`DecimalFormatter` or `CompactDecimalFormatter` directly in a single\n`value_formatter: V` field.\n- **Constructor Streamlining**:\n- Standard constructors (`try_new_short`, `try_new_narrow`,\n`try_new_long`) initialize `CurrencyFormatter` with `DecimalFormatter`.\n- Compact constructors (`try_new_compact_short`,\n`try_new_compact_narrow`, `try_new_compact_long`) initialize\n`CurrencyFormatter` with `CompactDecimalFormatter`.\n- **`icu_decimal` Delegation**: Exposed `pub(crate)` helper methods\n(`format_unsigned`, `format_sign`) and exported\n`FormattedUnsignedCompactDecimal` / `AbstractFormatter` from\n`icu_decimal` so currency formatters can delegate numeric formatting\ndirectly to the underlying value formatter.\n- **Boilerplate \u0026 Code Reduction**: Removed redundant data fields and\nsimplified formatting logic across `compact_formatter.rs` and\n`formatter.rs`, resulting in a net code reduction of over 200 lines\n(+665 additions, -876 deletions).\n\n---------\n\nCo-authored-by: Younies Mahmoud \u003cyounies.mahmoud@gmail.com\u003e"
    },
    {
      "commit": "7f5f30f975f89d7d0bc482b6c3ef5314476634f3",
      "tree": "ee3403942d5488c5808ffb551bb5a683ec0df7df",
      "parents": [
        "a796abb62177afef2acb7922509049b9febfbe32"
      ],
      "author": {
        "name": "Manish Goregaokar",
        "email": "manishsmail@gmail.com",
        "time": "Wed Jul 08 07:21:45 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 08 07:21:45 2026"
      },
      "message": "Scaffolding traits for range formatting (#8173)\n\nPart of #5448\n\nSplit out of #8149\n\nThis hooks up the scaffolding and pattern selection data loading\nframework for range formatting.\n\nYou can see #8149 to understand how this is used: I\u0027m trying to keep\nthis work in smaller PRs as much as possible and at this point more of\nit is \"land APIs that will be useful later\" which is harder to\nholistically review but overall the code here is still pretty\nstraightforward so it should be fine.\n\n## Changelog\n\nicu_datetime: Add scaffolding for range formatting\n  - New associated type: `TypedDateDataMarkers::RangeSkel`"
    },
    {
      "commit": "a796abb62177afef2acb7922509049b9febfbe32",
      "tree": "3f726a547129c7fd40dd315d9b1adae5edc30b42",
      "parents": [
        "c7314122840e111ee846c131033e105fa2deff5f"
      ],
      "author": {
        "name": "Shane F. Carr",
        "email": "shane@unicode.org",
        "time": "Tue Jul 07 22:06:50 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 07 22:06:50 2026"
      },
      "message": "Implement BCP-47 fallback for LanguageIdentifierDisplayName (#8132)\n\nCo-authored-by: Gemini \u003c176961590+gemini-code-assist[bot]@users.noreply.github.com\u003e\nCo-authored-by: Robert Bastian \u003c4706271+robertbastian@users.noreply.github.com\u003e"
    },
    {
      "commit": "c7314122840e111ee846c131033e105fa2deff5f",
      "tree": "5691cf00ff4d87bfe54b5f68606389f786cee78d",
      "parents": [
        "799fde4ed4e97014e0f820aa4d0e5004fc095607"
      ],
      "author": {
        "name": "Younies Mahmoud",
        "email": "younies.mahmoud@gmail.com",
        "time": "Tue Jul 07 19:29:19 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 07 19:29:19 2026"
      },
      "message": "feat/currency: Migrate LongCurrencyFormatter and add try_new_long (#8150)\n\nThis PR migrates the `LongCurrencyFormatter` functionality into the main\n`CurrencyFormatter`, building on top of the refactoring in #8145.\n\n## Changelog\n- Migrated `LongCurrencyFormatter` to `CurrencyFormatter`.\n- Added `try_new_long` and `try_new_long_unstable` constructors.\n- Added tests for long currency formatting, including numbering system\noverrides.\n- Removed redundant `long_formatter.rs` and `long_format.rs` files."
    },
    {
      "commit": "799fde4ed4e97014e0f820aa4d0e5004fc095607",
      "tree": "32c70e26dc2b68c488335952c07233a28e32ac03",
      "parents": [
        "37a1d8a4868ba385380074d2a61b9edb65530f50"
      ],
      "author": {
        "name": "Moritz",
        "email": "mosum@google.com",
        "time": "Tue Jul 07 13:32:39 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 07 13:32:39 2026"
      },
      "message": "Skip building if code assets are disabled (#8183)\n\nAs Flutter will re-run the build hooks multiple times, once with data,\nonce with code assets, etc.\n\nWe only need to act on code assets.\n\n## Changelog\n\nFFI: \n  * Dart: in the build hook, skip building if code assets are disabled."
    },
    {
      "commit": "37a1d8a4868ba385380074d2a61b9edb65530f50",
      "tree": "5547bb05514f23dd688f354ddc46c76dc8df5b71",
      "parents": [
        "3f92e680195879b002cdff237f0152969ecc7ca7"
      ],
      "author": {
        "name": "Shane F. Carr",
        "email": "shane@unicode.org",
        "time": "Tue Jul 07 06:25:39 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jul 07 06:25:39 2026"
      },
      "message": "Use self.as_str() instead of \u0026self.0 in impl Writeable for subtags (#8166)\n\nAddress feedback from PR #8139:\n- Delegate `Writeable` to `as_str()` instead of `\u0026self.0` (which is\n`TinyAsciiStr`) for locale subtags in `helpers.rs`.\n\nThe macro syntax changes suggested in #8139 are being discussed in\n#8165.\n\n## Changelog\n\nN/A\n\nCo-authored-by: Gemini \u003c176961590+gemini-code-assist[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "3f92e680195879b002cdff237f0152969ecc7ca7",
      "tree": "90a8e109252ec18ef7706ce1d43dcc5cbe5a56ed",
      "parents": [
        "7008df655ebfcafd8a2bd1b4b5292b1ebe2c0348"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Mon Jul 06 15:10:16 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 06 15:10:16 2026"
      },
      "message": "Make neo an alternative constructor on existing segmenter types (#8174)\n\nThis will be needed for releasing neo. We need to be able to keep\nhandling the `V1` data structs, which means we\u0027ll have to keep carrying\nthe code for them. I\u0027m handling this by making each `FooSegmenter`,\n`FooSegmenterBorrowed`, `FooBreakIterator` have an internal enum over\nthe data struct. Currently the neo variants are `#[cfg(feature \u003d\n\"unstable\")]`, when we stabilise neo, we will make the legacy variant be\n`#[cfg(feature \u003d \"serde\")]`, as it will only be reachable in the serde\ncodepath (we\u0027ll have to change the buffer provider constructors to check\nboth data structs).\n\n## Changelog\n\nN/A"
    },
    {
      "commit": "7008df655ebfcafd8a2bd1b4b5292b1ebe2c0348",
      "tree": "b811a699814e231cc722625a9259e40ee5331a67",
      "parents": [
        "0730ac98f2718e41f11e6c586f7a0331d166a922"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Mon Jul 06 15:06:36 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 06 15:06:36 2026"
      },
      "message": "Restrict Greek case logic to certain Unicode blocks (#8179)\n\nThis replaces the hardcoded exclusion ranges `\u0027\\u{1D00}\u0027..\u003d\u0027\\u{1DBF}\u0027 |\n\u0027\\u{AB65}\u0027` by more future-proof inclusions by block. This is needed for\nUnicode 18.\n\n## Changelog\n\nN/A"
    },
    {
      "commit": "0730ac98f2718e41f11e6c586f7a0331d166a922",
      "tree": "672b2713e65b598cfc0c35a2299089bfeac039f4",
      "parents": [
        "3452708d1d4719e217192ebc96775e4e59f1a633"
      ],
      "author": {
        "name": "Younies Mahmoud",
        "email": "younies.mahmoud@gmail.com",
        "time": "Mon Jul 06 15:01:11 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 06 15:01:11 2026"
      },
      "message": "feat(currency): Migrate CurrencyFormatter to adopt the new design with generic ValueRepresentation (Decimal) and add short/narrow constructors (#8145)"
    },
    {
      "commit": "3452708d1d4719e217192ebc96775e4e59f1a633",
      "tree": "eea89a939d38096af15584ae4ff20d2c6a41b395",
      "parents": [
        "d0e721bf145e38953df94d2d22098d6e9f30c423"
      ],
      "author": {
        "name": "Manish Goregaokar",
        "email": "manishsmail@gmail.com",
        "time": "Mon Jul 06 10:36:51 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jul 06 10:36:51 2026"
      },
      "message": "Writeables for range formatting (#8172)\n\nPart of #5448\n\nSplit out of #8149\n\n\nThis PR just has the writeables: without figuring out data loading,\n_once_ you have the data loaded you can produce these types for\nformatting.\n\nI could add tests for these, but I think they\u0027d be more fiddly than it\u0027s\nworth. #8149 has tests showing that this works end-to-end.\n\nYou can see #8149 to understand how this is used: I\u0027m trying to keep\nthis work in smaller PRs as much as possible and at this point more of\nit is \"land APIs that will be useful later\" which is harder to\nholistically review but overall the code here is still pretty\nstraightforward so it should be fine.\n\n## Changelog: N/A\n\n\u003c!-- Please fill in according to documents/process/changelog.md --\u003e"
    },
    {
      "commit": "d0e721bf145e38953df94d2d22098d6e9f30c423",
      "tree": "25ea68b62b3d675f216ae19cb31c3c53271629c6",
      "parents": [
        "b9e49c88b4c13d21c5bc33ffc952f927555a1edf"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Fri Jul 03 13:13:28 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 03 13:13:28 2026"
      },
      "message": "Move casemapping datagen to UCD data (#8170)\n\n#4602 \n\n## Changelog\n\nN/A"
    },
    {
      "commit": "b9e49c88b4c13d21c5bc33ffc952f927555a1edf",
      "tree": "1d10a7f7692f1013f5dffbe28f7215d242f1e417",
      "parents": [
        "a5635a1a4ce870c0fc67aaa4f696599768ba06b5"
      ],
      "author": {
        "name": "Chaganti Reddy",
        "email": "97330178+Chaganti-Reddy@users.noreply.github.com",
        "time": "Fri Jul 03 09:54:55 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jul 03 09:54:55 2026"
      },
      "message": "docs(writeable): clarify to_string doc wording (#8167)\n\nUpdates the doc comment generated for Writeable to_string fns per the\nwording suggested by @robertbastian in #8140.\n\nCloses #8164"
    },
    {
      "commit": "a5635a1a4ce870c0fc67aaa4f696599768ba06b5",
      "tree": "9fa60dc1e4b02bb14b0406421613176b9404cb33",
      "parents": [
        "65ad44403a08f29813751725d3f014d007d29c07"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Thu Jul 02 16:35:32 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jul 02 16:35:32 2026"
      },
      "message": "Infer region in calendar resolution (#8102)\n\nFixes #8096\n\n## Changelog\n\n`icu_locale_core`:\n* `preferences` types now implement `serde` and `databake`\n(feature-gated)\n\n`icu_calendar`:\n* Add `AnyCalendarKind::try_new` and deprecate `AnyCalendarKind::new`.\nThe new version uses locale data to infer calendars from locales.\n* Deprecate `CalendarPreferences::resolve_calendar`. This method did not\nperform likely-subtags expansion.\n\n`icu_datetime`:\n* Use the correct calendar even if the region is only implied by the\nlanguage (i.e. `fa`)"
    },
    {
      "commit": "65ad44403a08f29813751725d3f014d007d29c07",
      "tree": "de814df60bdde5a7aa2db12098baa58597d3cc36",
      "parents": [
        "aef08cb11c46958c8e5ba8f6c0b2aeec2b3b2334"
      ],
      "author": {
        "name": "Shane F. Carr",
        "email": "shane@unicode.org",
        "time": "Wed Jul 01 23:07:11 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 01 23:07:11 2026"
      },
      "message": "Add writeable delegate macros and support where clauses (#8139)\n\nAdds `writeable::impl_writeable_delegate!` and\n`writeable::impl_try_writeable_delegate!`, using them throughout the\ncodebase.\n\n## Changelog\n\n- writeable:\n- New `impl_writeable_delegate!` macro to delegate `Writeable`\nimplementations\n- New `impl_try_writeable_delegate!` macro to delegate `TryWriteable`\nimplementations\n    - Support for `where` clause in `impl_display_with_writeable!`"
    },
    {
      "commit": "aef08cb11c46958c8e5ba8f6c0b2aeec2b3b2334",
      "tree": "a70a16511fcfe8c913e7012cd05cc2ff7912d594",
      "parents": [
        "ba900d30d0fbec1c824ecc4877c358d5ffc2688e"
      ],
      "author": {
        "name": "Manish Goregaokar",
        "email": "manishsmail@gmail.com",
        "time": "Wed Jul 01 08:36:44 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 01 08:36:44 2026"
      },
      "message": "Implement difference resolution on DateTimeInput (#8147)\n\nPart of #5448\n\nThis implements the routine that can compare two dates and figure out\nwhat the greatest different field is, including handling flexible day\nperiod differences.\n\nI figured this is a smaller piece that we can land early reducing the\nsize of the final set of changes. I don\u0027t _love_ landing unused code,\nbut \"unused and tested\" is fine and a good way to build things up piece\nby piece.\n\nThis also creates the `range` module where all the rest of this is going\nto live.\n\n## Changelog: N/A"
    },
    {
      "commit": "ba900d30d0fbec1c824ecc4877c358d5ffc2688e",
      "tree": "e323eda4a1d59a4170a7a1cdc76998c888b7a305",
      "parents": [
        "d011dcca59e640f32da5a14c90b1e045bf4b37ff"
      ],
      "author": {
        "name": "Manish Goregaokar",
        "email": "manishsmail@gmail.com",
        "time": "Wed Jul 01 08:09:52 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jul 01 08:09:52 2026"
      },
      "message": "Move PatternsByGreatestDifference::get_*_pattern resolvers to PatternsByGreatestDifferenceULE (#8148)\n\nThis is annoying.\n\nNormally, our VarULE types are the \"internal\" types and we implement\ncomplex logic on our regular types, because it\u0027s easy, and you can\nalways go from a VarULE type to a regular one but the other way around\nisn\u0027t always possible.\n\nSo having methods on `PatternsByGreatestDifference` is great: they can\nrefer to the \"nice\" decoded fields, and if we have a\n`PatternsByGreatestDifferenceULE` (which we will) we can always\n`ZeroFrom` it to the other type.\n\nUnfortunately, there\u0027s one downside: because\n`PatternsByGreatestDifference` _could_ be allocated, we cannot return\nlong lived `\u0027data` references to its patterns. This is why\n[`PatternsByGreatestDifference::get_*_pattern`](https://unicode-org.github.io/icu4x/rustdoc/icu/datetime/provider/range_patterns/struct.PatternsByGreatestDifference.html#method.get_date_pattern)\nreturns things with lifetime `\u0027a` not `\u0027data`.\n\nSo we can\u0027t actually write code that e.g. returns an appropriately\nresolved `FormattedDateTimeRange` that contains `\u0027data` patterns.\n\n`PatternsByGreatestDifference*` lives inside a VarZeroVec in\n[`GenericPackedPatterns`](https://unicode-org.github.io/icu4x/rustdoc/icu/datetime/provider/packed_pattern/struct.GenericPackedPatterns.html)\nanyway, which means ICU4X code will _always_ have this type as\n`PatternsByGreatestDifferenceULE` (even a runtime mutated VarZeroVec\ncontains encoded data). So there\u0027s no API downside of moving these\nmethods over to `PatternsByGreatestDifferenceULE` where they will be\nactually callable.\n\nThe main downsides are:\n\n- The code is slightly worse since it needs to decode some AsULEs. Not a\nbig deal\n- The tests are slightly worse because they need to convert to\n`PatternsByGreatestDifferenceULE`. _shrug_.\n\n\n## Changelog: N/A\n\n\u003c!-- Please fill in according to documents/process/changelog.md --\u003e"
    },
    {
      "commit": "d011dcca59e640f32da5a14c90b1e045bf4b37ff",
      "tree": "fe2021e064a8627175b1f1f3eb8cbea441cd5d95",
      "parents": [
        "f4b2756bb5ec5c1a918863247fa3550716de610a"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Tue Jun 30 14:16:05 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 30 14:16:05 2026"
      },
      "message": "Update LineBreakStates.txt, fix bug in neo (#8162)\n\nSee https://github.com/unicode-org/icu/pull/4055\n\n#7962 \n\n## Changelog\n\nN/A"
    },
    {
      "commit": "f4b2756bb5ec5c1a918863247fa3550716de610a",
      "tree": "0540092c525b2245b41d1535acb1f34b87f9c2c7",
      "parents": [
        "20105543d08bcd024df1ba86688e9ee933fb1767"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Mon Jun 29 15:03:37 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 29 15:03:37 2026"
      },
      "message": "Use neo grapheme segmenter for neo complex segmentation (#8152)\n\nSo far, the neo segmenters have used the existing complex segmentation\ncode, which uses a (non-neo) `GraphemeClusterBreakSegmenter` internally.\nThis PR makes the whole complex code path generic in a GCBS, so that neo\ncan use neo.\n\n#7962 \n\n## Changelog\n\nN/A"
    },
    {
      "commit": "20105543d08bcd024df1ba86688e9ee933fb1767",
      "tree": "8068cf1c81df50ac2ed93905e590364493b7dfe9",
      "parents": [
        "4f4c9f1fa068b6e4e0331b385104a7b2872489c5"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Fri Jun 26 12:58:03 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 26 12:58:03 2026"
      },
      "message": "Rename complex languages to complex scripts (#8137)\n\nIn the context of segmentation, there are no complex languages, only\ncomplex scripts. The segmenter looks at the Unicode `Script` property to\ndetermine which dictionary model to load.\n\nLanguages *also* appear in the context of segmentation, for tailorings\nlike Greek or Japanese/Chinese, so we should use accurate names.\n\n## Changelog\n\nN/A"
    },
    {
      "commit": "4f4c9f1fa068b6e4e0331b385104a7b2872489c5",
      "tree": "0288a1b1737ad5a7b36f37c15594bb2a83611ca1",
      "parents": [
        "b9fb558848c5f4fc0eb99469281445fffe814a6c"
      ],
      "author": {
        "name": "Shane F. Carr",
        "email": "shane@unicode.org",
        "time": "Fri Jun 26 05:01:16 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 26 05:01:16 2026"
      },
      "message": "Datagen: Use structured keys with alt and menu variants for display names (#8090)\n\nCo-authored-by: Gemini \u003c176961590+gemini-code-assist[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "b9fb558848c5f4fc0eb99469281445fffe814a6c",
      "tree": "fb2389df35d52174cb77bb938c8a77c90ec036a1",
      "parents": [
        "7f41308de755620a5d4f16bf3c086ddf1390793f"
      ],
      "author": {
        "name": "Shane F. Carr",
        "email": "shane@unicode.org",
        "time": "Fri Jun 26 04:18:43 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 26 04:18:43 2026"
      },
      "message": "Add LossyWrap::to_string impl (#8140)\n\nAdds a fn that should have been there but was missing.\n\n## Changelog\n\nwriteable:\n\n- New concrete fn LossyWrap::to_string"
    },
    {
      "commit": "7f41308de755620a5d4f16bf3c086ddf1390793f",
      "tree": "51197d939c4a7b7ede726d3b61cd9ee152143c83",
      "parents": [
        "1569b93140c14c1261dd47f3e0e7bdc889280ddf"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Thu Jun 25 12:53:23 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 25 12:53:23 2026"
      },
      "message": "Use pseudo symbols for complex language detection (#8129)\n\nThis continues #8076. Instead of having constants for complex symbols,\nwe use the pseudo-symbol mechanism that was introduced for tailorings,\nand associate each pseudo symbol with a `Language`. This scales better\nthan constants, because the state machines don\u0027t have a fixed number of\ncomplex classes, and it\u0027s also nice to not have a third type of state.\n\n## Changelog\n\nN/A"
    },
    {
      "commit": "1569b93140c14c1261dd47f3e0e7bdc889280ddf",
      "tree": "340218ded73de60fb7f15f6d76e59a8e2a708f0f",
      "parents": [
        "c3bc5e91c5f7f53a21310ffa922281248013bb57"
      ],
      "author": {
        "name": "Shane F. Carr",
        "email": "shane@unicode.org",
        "time": "Thu Jun 25 06:01:57 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 25 06:01:57 2026"
      },
      "message": "Introduce dedicated LanguageIdentifierDisplayNameOptions struct (#8135)\n\n## Changelog\n\nicu_experimental: Introduce dedicated\n`LanguageIdentifierDisplayNameOptions` struct\n* New types: `LanguageIdentifierDisplayNameOptions` (with optional\n`language_display: Option\u003cLanguageDisplay\u003e`)\n* New methods: `LanguageIdentifierDisplayNameOwned::try_new()`,\n`LanguageIdentifierDisplayNameOwned::try_new_with_buffer_provider()`,\nand `LanguageIdentifierDisplayNameOwned::try_new_unstable()` now take\n`LanguageIdentifierDisplayNameOptions` instead of `DisplayNamesOptions`.\n\nCo-authored-by: Gemini \u003c176961590+gemini-code-assist[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "c3bc5e91c5f7f53a21310ffa922281248013bb57",
      "tree": "7bb09095f02f3f65e54b6b9025deef802f61fcb7",
      "parents": [
        "67a0b91c6f1e23210c9813bfe5ebb86e77f35460"
      ],
      "author": {
        "name": "Shane F. Carr",
        "email": "shane@unicode.org",
        "time": "Thu Jun 25 01:24:01 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 25 01:24:01 2026"
      },
      "message": "Add icu_collator 2.1 and 2.2 patch releases to CHANGELOG (#8131)"
    },
    {
      "commit": "67a0b91c6f1e23210c9813bfe5ebb86e77f35460",
      "tree": "be40feee432d1b1585313509bde611979d41136c",
      "parents": [
        "3b1748738957aa5e3ab4d6aa312eccb018fa4ab6"
      ],
      "author": {
        "name": "Shane F. Carr",
        "email": "shane@unicode.org",
        "time": "Wed Jun 24 17:00:04 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 24 17:00:04 2026"
      },
      "message": "Support TryWriteable inputs in Single and Double placeholder patterns (#8123)\n\n## Changelog\n\nicu_pattern: new input structs DoublePlaceholderValueProviderTry,\nSinglePlaceholderValueProviderTry"
    },
    {
      "commit": "3b1748738957aa5e3ab4d6aa312eccb018fa4ab6",
      "tree": "2b8f08159c0d49a570229e1d36be5db499834957",
      "parents": [
        "7c58107934504dcc0ff9182c81eb428580597d71"
      ],
      "author": {
        "name": "Moritz",
        "email": "mosum@google.com",
        "time": "Wed Jun 24 15:07:45 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 24 15:07:45 2026"
      },
      "message": "Upgrade dependencies for Dart ICU4X package (#8119)\n\nTo not fall too far behind the current implementation.\n\n## Changelog\nUpdate `diplomat` hash and Dart dependencies.\n\n---------\n\nCo-authored-by: Robert Bastian \u003c4706271+robertbastian@users.noreply.github.com\u003e"
    },
    {
      "commit": "7c58107934504dcc0ff9182c81eb428580597d71",
      "tree": "9501055a15355098012cb3076585b47de9b408a3",
      "parents": [
        "fc2c62636b1dc63d260832afa07b1a3084348e55"
      ],
      "author": {
        "name": "Younies Mahmoud",
        "email": "younies.mahmoud@gmail.com",
        "time": "Wed Jun 24 14:56:48 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 24 14:56:48 2026"
      },
      "message": "experimental/currency: Support numbering system attribution and programmatic option overrides in CurrencyEssentialsV1 (#8053)"
    },
    {
      "commit": "fc2c62636b1dc63d260832afa07b1a3084348e55",
      "tree": "658d28d4578aaf322de213ee16975613627c42eb",
      "parents": [
        "1693446d06db5e40e4f9d403e9e12a72070a8037"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Wed Jun 24 11:15:26 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 24 11:15:26 2026"
      },
      "message": "Loose matching for property names in unicodeset (#8127)\n\nMight not be the best way to do this, but I need this for segmenter and\nit\u0027s still unstable code anyway.\n\n## Changelog\n\nN/A"
    },
    {
      "commit": "1693446d06db5e40e4f9d403e9e12a72070a8037",
      "tree": "64ad4d745b5bc67d270c7a6b52f3e57f35e93bf8",
      "parents": [
        "3d1cfab03a7949c804eaec40679fbf71e1afaa4c"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Wed Jun 24 09:24:07 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 24 09:24:07 2026"
      },
      "message": "Download Unicode test files in `download-repo-sources` (#8124)\n\n## Changelog\n\nN/A"
    },
    {
      "commit": "3d1cfab03a7949c804eaec40679fbf71e1afaa4c",
      "tree": "5ba5b70854ea4b6dc07a3b9e9cc6eb8e2ccde4cb",
      "parents": [
        "dcf695adf73e1ee96c622bfca0320fff880eb08f"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Tue Jun 23 19:23:09 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 23 19:23:09 2026"
      },
      "message": "Validate japanese era data struct earlier (#8126)"
    },
    {
      "commit": "dcf695adf73e1ee96c622bfca0320fff880eb08f",
      "tree": "dd2e5654a82303f59bbf9c8de0aa8b5e70d3fb79",
      "parents": [
        "e9d8ebe555cc3048cd11a375bb277160d18daab9"
      ],
      "author": {
        "name": "Shane F. Carr",
        "email": "shane@unicode.org",
        "time": "Tue Jun 23 16:21:57 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 23 16:21:57 2026"
      },
      "message": "Remove unused PatternBackend::Error associated type (#8122)\n\n## Changelog\n\nicu_pattern: Remove public associated Error type from sealed trait\nPatternBackend"
    },
    {
      "commit": "e9d8ebe555cc3048cd11a375bb277160d18daab9",
      "tree": "5a2f7dfcc197d44b95ad8e6340a8f714d123c3f4",
      "parents": [
        "51de0b8144429e2a56d5a21ff3567d5d14e98a81"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Tue Jun 23 14:52:18 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 23 14:52:18 2026"
      },
      "message": "Use `001` as default region for `und` units (#8104)\n\nThis was a side effect of `und` expanding to `en-Latn-US`. #8110\npreserves behaviour, but makes it explicit that we choose `US` as the\ndefault region.\n\nmeter and kilogram become core units, foot and pound become extended\nunits.\n\nThis significantly reduces data size, because the US\u0027s\nspecial-snowflaking was not great for fallback\n\n```diff\n-units/names/area/core/v1, \u003clookup\u003e, 32936B, 2233 identifiers\n+units/names/area/core/v1, \u003clookup\u003e, 16794B, 1112 identifiers\n\n-units/names/area/extended/v1, \u003clookup\u003e, 25723B, 2286 identifiers\n+units/names/area/extended/v1, \u003clookup\u003e, 15796B, 1315 identifiers\n\n-units/names/length/core/v1, \u003clookup\u003e, 34216B, 2375 identifiers\n+units/names/length/core/v1, \u003clookup\u003e, 24255B, 1684 identifiers\n\n-units/names/length/extended/v1, \u003clookup\u003e, 26077B, 2403 identifiers\n+units/names/length/extended/v1, \u003clookup\u003e, 25257B, 2152 identifiers\n\n-units/names/mass/core/v1, \u003clookup\u003e, 33003B, 3101 identifiers\n+units/names/mass/core/v1, \u003clookup\u003e, 17354B, 1658 identifiers\n\n-units/names/mass/extended/v1, \u003clookup\u003e, 16789B, 1445 identifiers\n+units/names/mass/extended/v1, \u003clookup\u003e, 10676B, 935 identifiers\n\n-units/names/volume/core/v1, \u003clookup\u003e, 38249B, 2898 identifiers\n+units/names/volume/core/v1, \u003clookup\u003e, 21271B, 1546 identifiers\n\n-units/names/volume/extended/v1, \u003clookup\u003e, 62909B, 5710 identifiers\n+units/names/volume/extended/v1, \u003clookup\u003e, 40657B, 3546 identifiers\n```\n\n## Changelog\n\nN/A"
    },
    {
      "commit": "51de0b8144429e2a56d5a21ff3567d5d14e98a81",
      "tree": "a1fd614752d1dc9e4e1e0574e82cf432b4b31892",
      "parents": [
        "ae48e93945698b720ea143cb26a2780a25d8f06e"
      ],
      "author": {
        "name": "Manish Goregaokar",
        "email": "manishsmail@gmail.com",
        "time": "Mon Jun 22 23:05:16 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 22 23:05:16 2026"
      },
      "message": "zerovec: Fix pointer provenance issues found by miri (#8114)"
    },
    {
      "commit": "ae48e93945698b720ea143cb26a2780a25d8f06e",
      "tree": "f12df7ffc88537ef6db39214b14443d5b39a18e4",
      "parents": [
        "e740229b167f2ab353f7d9046671d3ca1f816c05"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Mon Jun 22 19:30:01 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 22 19:30:01 2026"
      },
      "message": "Remove `und` -\u003e `en-Latn-US` expansion (#8110)\n\nAs the data struct requires us to have a `und -\u003e aa-Bbbb-CC` mapping,\nthis is actually a change to the code. Instead of interpreting this\nentry as `und -\u003e aa-Bbbb-CC`, we now interpret it as `und-Bbbb -\u003e\naa-Bbbb-CC`, `und-CC -\u003e aa-Bbbb-CC`, and `und-Bbbb-CC -\u003e aa-Bbbb-CC`,\nand we put the `Latn-US` mappings in it for data backward compatibility.\n\nDatagen was updated to generate the same data from either `und -\u003e\naa-Bbbb-CC`, or `und-Bbbb -\u003e aa-Bbbb-CC`, `und-CC -\u003e aa-Bbbb-CC`, and\n`und-Bbbb-CC -\u003e aa-Bbbb-CC`, as this will change in the next CLDR\nversion (https://unicode-org.atlassian.net/browse/CLDR-14524)\n\n## Changelog\n\n`icu_locale`:\n* `LocaleExpander::maximize` no longer maximizes `und` to `en-Latn-US`"
    },
    {
      "commit": "e740229b167f2ab353f7d9046671d3ca1f816c05",
      "tree": "5f15fb3211f0090e4769ac405bb6bfc0b0e42053",
      "parents": [
        "9fe598962e2ce2c6cab65e7a166a6d095f92f6f5"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Mon Jun 22 19:12:56 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 22 19:12:56 2026"
      },
      "message": "Fix `CodePointInversionList::contains_set` (#8121)\n\nA single range in the superset can contain multiple ranges of the\nsubset.\n\n## Changelog\n\n`icu_collections`:\n* Fix a bug in `CodePointInversionList::contains_set`"
    },
    {
      "commit": "9fe598962e2ce2c6cab65e7a166a6d095f92f6f5",
      "tree": "607d0df2af5eea0718631892cfb014792ad2c349",
      "parents": [
        "5a5b9db61a5c9fffdf0c3d33427738bb7720ece6"
      ],
      "author": {
        "name": "Shane F. Carr",
        "email": "shane@unicode.org",
        "time": "Mon Jun 22 16:57:14 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 22 16:57:14 2026"
      },
      "message": "Implement single language display names (#8082)\n\n## Changelog\n\n- `icu_experimental`:\n- Added `displaynames::single::LanguageDisplayNameOwned` and\n`LanguageDisplayName` for formatting language display names.\n\n---------\n\nCo-authored-by: Gemini \u003c176961590+gemini-code-assist[bot]@users.noreply.github.com\u003e\nCo-authored-by: Robert Bastian \u003c4706271+robertbastian@users.noreply.github.com\u003e"
    },
    {
      "commit": "5a5b9db61a5c9fffdf0c3d33427738bb7720ece6",
      "tree": "82b7ff5c495a56490278f193c1b3cbe4089c18b3",
      "parents": [
        "ef6da97102bdd45f34d12cd51276076956e53178"
      ],
      "author": {
        "name": "Shane F. Carr",
        "email": "shane@unicode.org",
        "time": "Mon Jun 22 16:55:13 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 22 16:55:13 2026"
      },
      "message": "writeable: impl TryWriteable on references, Either (#8109)\n\nWriteable already had this.\n\n## Changelog\n\nwriteable:\n- impl TryWriteable on references\n- impl TryWriteable on Either\n\n---------\n\nCo-authored-by: Gemini \u003c176961590+gemini-code-assist[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "ef6da97102bdd45f34d12cd51276076956e53178",
      "tree": "4aa91d77b7027fafc48102c19b76978238a1a4b0",
      "parents": [
        "c6fd4da3460f6a99e8f11c913955ee902c451aa5"
      ],
      "author": {
        "name": "Moritz",
        "email": "mosum@google.com",
        "time": "Mon Jun 22 14:12:56 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 22 14:12:56 2026"
      },
      "message": "Update `diplomat` version (#8120)\n\nAnd regenerate all language bindings.\n\n## Changelog\n\nN/A"
    },
    {
      "commit": "c6fd4da3460f6a99e8f11c913955ee902c451aa5",
      "tree": "5f0d964951bcd4ebf3089d6c7a95ba5de4f861dd",
      "parents": [
        "58525668fcf951cafc4fc81393918dff3e9d29a1"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Mon Jun 22 10:51:41 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 22 10:51:41 2026"
      },
      "message": "Fix loose line breaking (#8111)\n\n#7962 \n\nWe have identified one of the test cases as incorrect, see\nhttps://unicode-org.atlassian.net/browse/ICU-23405.\n\n~This is a behaviour difference from the old segmenter.~\n\n## Changelog\n\nN/A"
    },
    {
      "commit": "58525668fcf951cafc4fc81393918dff3e9d29a1",
      "tree": "55a066b5889e17200e5344299a6bca45fa940e82",
      "parents": [
        "41424d776426a62d97f87b6ebd38262c33c204c9"
      ],
      "author": {
        "name": "Xuanwo",
        "email": "github@xuanwo.io",
        "time": "Mon Jun 22 10:50:16 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 22 10:50:16 2026"
      },
      "message": "Fix typo in complex script segmentation (#8112)"
    },
    {
      "commit": "41424d776426a62d97f87b6ebd38262c33c204c9",
      "tree": "e0c57019e1d7ab6481c316ced5acbcd88c2f6def",
      "parents": [
        "047dba4ea8f971f2e7dade43b52f99a54e5bc831"
      ],
      "author": {
        "name": "Manish Goregaokar",
        "email": "manishsmail@gmail.com",
        "time": "Mon Jun 22 10:34:54 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 22 10:34:54 2026"
      },
      "message": "Add iterator-based parse_ucd_lines helper (#8115)\n\nTake 2 at https://github.com/unicode-org/icu4x/pull/8077\n\nMy original attempt was predicated on \"I want all of this parsery code\nin one file\", and _then_ doing cleanups on top of that. But I think\nafter going through that, it seems like we can actually design a pretty\nlightweight internal iteratory abstraction that handles all of the\nparsing complexities (including `@missing`), so that the caller can just\nhave the processing step.\n\nI\u0027ve tried to make it so that it\u0027s abundantly clear when e.g. an\n`@missing` line is being explicitly ignored.\n\nI think this code is much easier to read: the processing code doesn\u0027t\nneed to muck with file syntax anymore. We still need to e.g. make it\nclear that we expect `@missing` rules before the data in the ranges they\nrepresent, but now it\u0027s much clearer that we make that assumption.\n\nAlso the main property parsing function becomes single-pass.\n\n## Changelog: N/A"
    },
    {
      "commit": "047dba4ea8f971f2e7dade43b52f99a54e5bc831",
      "tree": "d5aa3526a8f082e5efe91c4cd1373778a8e19715",
      "parents": [
        "d1f289d77b75b2e9aa7af0572bd6b71969785536"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Mon Jun 22 09:53:23 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 22 09:53:23 2026"
      },
      "message": "Fix `get_likely_script` (#7918)\n\nFixes #7866\n\n## Changelog\n\n`icu_locale`:\n* Fixes an issue in `LocaleDirectionality` for unknown languages"
    },
    {
      "commit": "d1f289d77b75b2e9aa7af0572bd6b71969785536",
      "tree": "524305fa46bb8a0b31f0086ec0a10a9c45573d20",
      "parents": [
        "16e9c3684dc1e705a875fe87164c1bbe1606ec9f"
      ],
      "author": {
        "name": "Manish Goregaokar",
        "email": "manishsmail@gmail.com",
        "time": "Mon Jun 22 09:26:28 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 22 09:26:28 2026"
      },
      "message": "Install cargo-rdme at 1.5.1 (#8118)\n\nDifferent from https://github.com/unicode-org/icu4x/pull/8117 in that it\ndoesn\u0027t _force_ a particular version, but if it is installing fresh it\ninstalls the right one. Allows users to have flexibility in their local\nenvironments. But not as watertight.\n\n## Changelog: N/A"
    },
    {
      "commit": "16e9c3684dc1e705a875fe87164c1bbe1606ec9f",
      "tree": "a4b8d9c556b3f8fc8f1527c738b40f7648f191d4",
      "parents": [
        "2b1a8856df8c590ecedfcb241f6d2573dc76295a"
      ],
      "author": {
        "name": "Shane F. Carr",
        "email": "shane@unicode.org",
        "time": "Fri Jun 19 04:00:10 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 19 04:00:10 2026"
      },
      "message": "Make cross-crate internal API style apply to component crates (#8105)\n\nI was thinking about ICU4X component crates when I wrote this. It wasn\u0027t\nintended to apply to unstable crates (those versioned out of sync with\nICU4X).\n\n## Changelog\n\nN/A"
    },
    {
      "commit": "2b1a8856df8c590ecedfcb241f6d2573dc76295a",
      "tree": "3e9530167b97de09ad49c850778c8c8b88416f7a",
      "parents": [
        "e76be57a770c4dd1a2611e709f90faec8bb76251"
      ],
      "author": {
        "name": "Shane F. Carr",
        "email": "shane@unicode.org",
        "time": "Fri Jun 19 03:28:43 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 19 03:28:43 2026"
      },
      "message": "Implement VariantDisplayName and refactor single module (#8085)\n\n## Changelog\n\nicu_experimental::displaynames: New types `VariantDisplayName` and\n`VariantDisplayNameOwned`\n\n---------\n\nCo-authored-by: Gemini \u003c176961590+gemini-code-assist[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "e76be57a770c4dd1a2611e709f90faec8bb76251",
      "tree": "cd34b9c3a5e321b17018be4cccebf12b453c42b5",
      "parents": [
        "5ff54cbae22e2c52b01a4a924f0bb48a76dd9a68"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Thu Jun 18 07:06:14 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 18 07:06:14 2026"
      },
      "message": "Fix a safety issue in the Japanese calendar (#8095)\n\n`PackedEra` construction unsafely assumed that `day \u003e 0`, which could\nlead to undefined behavior when calling `NonZeroU8::new_unchecked` with\n0.\n\nThis PR makes `PackedEra::pack` fallible, returning a `Result`. ~This\nchange propagates to `JapaneseEras::last_after_reiwa` and the `Japanese`\nconstructors.~\n\n## Changelog\n\n`icu_calendar`\n* Fix safety issue in `Japanese::try_new_with_buffer_provider`"
    },
    {
      "commit": "5ff54cbae22e2c52b01a4a924f0bb48a76dd9a68",
      "tree": "1ca5b0b59ae9db22d7d30c5db244f4ef704bf78d",
      "parents": [
        "33852ac2ae8e368a5a9292c765b40d9c1917e218"
      ],
      "author": {
        "name": "Shane F. Carr",
        "email": "shane@unicode.org",
        "time": "Wed Jun 17 09:56:09 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 17 09:56:09 2026"
      },
      "message": "Address post-merge feedback on CollationSpecialPrimaries (#8089)\n\nCo-authored-by: Gemini \u003c176961590+gemini-code-assist[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "33852ac2ae8e368a5a9292c765b40d9c1917e218",
      "tree": "adedcfcbc3e11995f420bcde0c81e59a14facc84",
      "parents": [
        "5128903b078670eed901ca5dd81632d9429b7221"
      ],
      "author": {
        "name": "Shane F. Carr",
        "email": "shane@unicode.org",
        "time": "Tue Jun 16 23:04:09 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 16 23:04:09 2026"
      },
      "message": "Fix CI by running apt-get update before installing LLVM 20 (#8091)\n\nCo-authored-by: Gemini \u003c176961590+gemini-code-assist[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "5128903b078670eed901ca5dd81632d9429b7221",
      "tree": "d11034d0a20a73fba120d3576252b53b99b373c1",
      "parents": [
        "662803d4628e5f1acd22c89ff14c1b5b33cbfb6e"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Tue Jun 16 16:49:56 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 16 16:49:56 2026"
      },
      "message": "Update `GraphemeClusterBreak*.txt` (#8087)\n\n#7962 \n\n## Changelog\n\nN/A"
    },
    {
      "commit": "662803d4628e5f1acd22c89ff14c1b5b33cbfb6e",
      "tree": "7a466a27896a9d63ef3f409a32bddbcfa20afc31",
      "parents": [
        "5e5a4789906485c9da52e04e10eaf5ab2aa94e41"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Tue Jun 16 16:12:54 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 16 16:12:54 2026"
      },
      "message": "Make `UnitsConverter` non-generic, accept inputs by value, return correct error type (#8073)\n\nCurrently we have `UnitsConverter\u003cN: Convertible\u003e`. This is because we\nconvert the conversion factors to the `N` type during construction,\nwhich both loses precision and means we cannot use the same converter\nfor multiple `N`.\n\nThis PR moves the conversion into the `convert` call, and into the\n`Convertible` trait, which now defines the three operations we need for\nproportional, reciprocal, and offset converters. For each type, such as\n`f64`, those operations can be holistically improved.\n\nIt also changes the `UnitsConverter` constructor to return\n`InvalidConversionError` instead of just an `Option`, and changes the\nbounds on `convert` so that `f64` can be passed by value.\n\n## Changelog\n\n`icu_experimental`\n* `UnitsConverter` is no longer generic in `N: Convertible`, instead its\n`convert` method is\n* `Convertibles`s are now passed by value, and for `Ratio\u003cBigInt\u003e` the\n`Convertible` impl is now on the reference\n* The `Convertibles` trait was completely overhauled to allow for more\naccurate calculations"
    },
    {
      "commit": "5e5a4789906485c9da52e04e10eaf5ab2aa94e41",
      "tree": "e3e440f98c2ce295a8916a067b181911251a8a34",
      "parents": [
        "f00a7271f2617086d140db1d9822fe48149b3ee1"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Tue Jun 16 16:00:13 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 16 16:00:13 2026"
      },
      "message": "Detect complex language based on symbol (#8076)\n\nCurrently, we have a huge match statement that determines which complex\npayload to use for a given character. As we already do a CPT lookup for\neach character, we should use the CPT to tell us which complex payload\nto use.\n\nThis also includes some performance improvements: using an on-stack\n`SmallVec` instead of allocating for the complex cache and lookahead\nmap, as well as removing intermediate allocations for the complex\nsegmenters.\n\n## Changelog\n\nN/A"
    },
    {
      "commit": "f00a7271f2617086d140db1d9822fe48149b3ee1",
      "tree": "097716b1e0846d89191282568a29172f0683ece3",
      "parents": [
        "498fb39be2fbf9647b91988ca4ef5d6ac3676d9f"
      ],
      "author": {
        "name": "Shane F. Carr",
        "email": "shane@unicode.org",
        "time": "Tue Jun 16 06:17:10 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 16 06:17:10 2026"
      },
      "message": "Fix variant casing in display names attributes (#8084)\n\nCo-authored-by: Gemini \u003c176961590+gemini-code-assist[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "498fb39be2fbf9647b91988ca4ef5d6ac3676d9f",
      "tree": "05eb36ba26e371a4273b16b23ff7acea3b651093",
      "parents": [
        "0bda1f13567d5bc08b7c91ec94cd2a4b6edec0a4"
      ],
      "author": {
        "name": "Shane F. Carr",
        "email": "shane@unicode.org",
        "time": "Tue Jun 16 02:39:28 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 16 02:39:28 2026"
      },
      "message": "Replace magic numbers with constants in CollationSpecialPrimaries deserialization (#8083)\n\nSee #8075\n\nCo-authored-by: Gemini \u003c176961590+gemini-code-assist[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "0bda1f13567d5bc08b7c91ec94cd2a4b6edec0a4",
      "tree": "e3d7a3bff35a01c167338f89cffc1a408d97f8e2",
      "parents": [
        "a961ffeabd4ef2bc4959577c263bc3bac132f329"
      ],
      "author": {
        "name": "Shane F. Carr",
        "email": "shane@unicode.org",
        "time": "Tue Jun 16 01:00:53 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 16 01:00:53 2026"
      },
      "message": "Add regression test for Collator AlternateHandling::Shifted with MaxVariable::Currency (#8080)\n\nSee #8075, #8081\n\nCo-authored-by: Gemini \u003c176961590+gemini-code-assist[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "a961ffeabd4ef2bc4959577c263bc3bac132f329",
      "tree": "bfc01e671913c412bc399d9f5114878e18ea2028",
      "parents": [
        "3ccf62310de16af0e074f4b3e3cc3eaea8691e98"
      ],
      "author": {
        "name": "Shane F. Carr",
        "email": "shane@unicode.org",
        "time": "Mon Jun 15 23:04:56 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 15 23:04:56 2026"
      },
      "message": "Implement more data markers for single displaynames (#8071)\n\nCo-authored-by: Gemini \u003c176961590+gemini-code-assist[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "3ccf62310de16af0e074f4b3e3cc3eaea8691e98",
      "tree": "fb1fba820bb38ede77a37fd820511db7cc33c5e9",
      "parents": [
        "184f44eaf494bbdb302279bb001c99a19ce441a8"
      ],
      "author": {
        "name": "Manish Goregaokar",
        "email": "manishsmail@gmail.com",
        "time": "Sat Jun 13 00:44:29 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Jun 13 00:44:29 2026"
      },
      "message": "Store range sub-patterns instead of patterns (#8063)"
    },
    {
      "commit": "184f44eaf494bbdb302279bb001c99a19ce441a8",
      "tree": "f0989bc5485b4b9bc3f3628cd4f5c119017baa2a",
      "parents": [
        "d068082f135da73a5fb6897a775630af0f17abae"
      ],
      "author": {
        "name": "Manish Goregaokar",
        "email": "manishsmail@gmail.com",
        "time": "Fri Jun 12 18:04:04 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 12 18:04:04 2026"
      },
      "message": "Range formatting: Fix distance calculation for single fields (#8069)"
    },
    {
      "commit": "d068082f135da73a5fb6897a775630af0f17abae",
      "tree": "e33bb34448e33e115603d40fe5b064858b0495a7",
      "parents": [
        "02ce3fe6d5348c3e0f28b9883acd60443421cefb"
      ],
      "author": {
        "name": "Shane F. Carr",
        "email": "shane@unicode.org",
        "time": "Fri Jun 12 17:51:11 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 12 17:51:11 2026"
      },
      "message": "Create design doc for DateTimeFieldBag (#8062)\n\nCo-authored-by: codex \u003ccodex@openai.com\u003e\nCo-authored-by: Gemini \u003c176961590+gemini-code-assist[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "02ce3fe6d5348c3e0f28b9883acd60443421cefb",
      "tree": "25e1bbfe52b242cd1d4f43ef0e60aaf7f74d3519",
      "parents": [
        "d4c6ddf23239aa03a0c9cf914cc9d9646a254243"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Fri Jun 12 13:47:48 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 12 13:47:48 2026"
      },
      "message": "Compress neo segmenter tailorings (#8046)\n\nCurrently, tailorings are stored as CPT overlays, which are quite big.\nThis PR instead fragments the root CPT a bit more, introducing _pseudo\nsymbols_. We can then store tailorings as mappings from pseudo symbols\nto symbols, which is much smaller. The untailored CPT grows by 3.8kB,\nbut the tailorings shrink by 17.8kB\n\n## Changelog\n\nN/A"
    },
    {
      "commit": "d4c6ddf23239aa03a0c9cf914cc9d9646a254243",
      "tree": "09d1f7a658cb674673f38bd1ad4edc02eeb8bbee",
      "parents": [
        "00c6793da5e8a8b91d6d9464ed0c8ea121e9f34b"
      ],
      "author": {
        "name": "Shane F. Carr",
        "email": "shane@unicode.org",
        "time": "Fri Jun 12 01:05:19 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 12 01:05:19 2026"
      },
      "message": "Add consistency tests for mirrored enums (#8026)\n\nAdd matches on upstream enums combined with\n`non_exhaustive_omitted_patterns` lint to ensure `CollationRootHan`,\n`AltVariantKind`, and `Deduplication` in `icu4x-datagen` stay consistent\nwith their upstream definitions.\n\nThe lint is enabled on nightly via `icu4x_nightly_tests` cfg, which is\nconfigured in `Cargo.toml` and enabled in `Makefile.toml` for nightly CI\nruns.\n\n---------\n\nCo-authored-by: Gemini \u003c176961590+gemini-code-assist[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "00c6793da5e8a8b91d6d9464ed0c8ea121e9f34b",
      "tree": "44375d6cab0427df434228b9bbc6aa9554b4ec94",
      "parents": [
        "ebfc67915d8fc4eebf347b706ef4e509c5556b18"
      ],
      "author": {
        "name": "Shane F. Carr",
        "email": "shane@unicode.org",
        "time": "Fri Jun 12 01:01:58 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 12 01:01:58 2026"
      },
      "message": "Add detailed implementation README for display names (#8057)\n\nThis pull request adds the comprehensive design specification and\nplaceholder integration tests for the \"single\" language display names\nformatter in `icu_experimental`.\n\n## Changelog\n\nN/A (docs only)\n\n---------\n\nCo-authored-by: Gemini \u003c176961590+gemini-code-assist[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "ebfc67915d8fc4eebf347b706ef4e509c5556b18",
      "tree": "de2ba9f05795d31d7c22f1048af06d5129372c59",
      "parents": [
        "6a8f91749a6aa850998ab55302a30afd896c3391"
      ],
      "author": {
        "name": "Manish Goregaokar",
        "email": "manishsmail@gmail.com",
        "time": "Thu Jun 11 23:20:19 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 11 23:20:19 2026"
      },
      "message": "Deduplicate identical interval format patterns where possible (#8061)"
    },
    {
      "commit": "6a8f91749a6aa850998ab55302a30afd896c3391",
      "tree": "7b13a20988aa7a4526cd41671d517499f206140c",
      "parents": [
        "e1741e8550fb14d893fbc381ec760b243d2da1df"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Thu Jun 11 15:34:23 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 11 15:34:23 2026"
      },
      "message": "Add property constants for short names and aliases (#8040)\n\nWhy not.\n\n## Changelog\n\n`icu_properties`\n* Add enumerated property constants for short names and aliases (i.e.\n`LineBreak::HH`)"
    },
    {
      "commit": "e1741e8550fb14d893fbc381ec760b243d2da1df",
      "tree": "8514412749d465c0b4ae93b823b3caa1363a4907",
      "parents": [
        "dd97064bed78e760a2ac9c98ad33fabb90e3247c"
      ],
      "author": {
        "name": "Younies Mahmoud",
        "email": "younies.mahmoud@gmail.com",
        "time": "Thu Jun 11 13:12:05 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 11 13:12:05 2026"
      },
      "message": "currency: Pack distinct patterns in CurrencyEssentialsV1 and support explicit standard negative patterns (#8050)"
    },
    {
      "commit": "dd97064bed78e760a2ac9c98ad33fabb90e3247c",
      "tree": "a4cc21a8ba7d0af128eb6ff721d326f274aba670",
      "parents": [
        "a691fb46e3fa3acd01a8c6fadd929f600b39169a"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Thu Jun 11 12:10:24 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 11 12:10:24 2026"
      },
      "message": "Update neo segmenter machines (#8064)\n\nLatest from https://github.com/unicode-org/unicodetools/pull/1321\n\n## Changelog\n\nN/A"
    },
    {
      "commit": "a691fb46e3fa3acd01a8c6fadd929f600b39169a",
      "tree": "ea9a83eca3e78901042d750a78fe825c76fc033b",
      "parents": [
        "7aa2f3400939d52c1680a4dee7193080cbf247b1"
      ],
      "author": {
        "name": "Shane F. Carr",
        "email": "shane@unicode.org",
        "time": "Thu Jun 11 05:15:17 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jun 11 05:15:17 2026"
      },
      "message": "Add alt\u003dascii support to icu_provider_source and datagen (#8025)\n\nThis PR adds support for `alt\u003d\"ascii\"` in `icu_provider_source` and `icu4x-datagen`.\n\nPart of #1225\n\n## Changelog\n\nicu_provider_source: Add `with_alt_variants` to `SourceDataProvider` to\nsupport alt variants.\n\n- New enum: `AltVariantKind`\n- New method: `SourceDataProvider::with_alt_variants`\n\nicu4x-datagen: Add `--alt-variant` CLI flag to enable alt variants\nduring datagen.\n\n---------\n\nCo-authored-by: Gemini \u003c176961590+gemini-code-assist[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "7aa2f3400939d52c1680a4dee7193080cbf247b1",
      "tree": "e501557b93a3de7491a6904d66cb45ddffaa6747",
      "parents": [
        "7bfde66187eba6183d26fac9c3c1b4ef9821e318"
      ],
      "author": {
        "name": "Manish Goregaokar",
        "email": "manishsmail@gmail.com",
        "time": "Wed Jun 10 19:41:02 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 10 19:41:02 2026"
      },
      "message": "Datagen for range patterns (#8034)"
    },
    {
      "commit": "7bfde66187eba6183d26fac9c3c1b4ef9821e318",
      "tree": "d20a911a3b6ea41d698ef1f6c33b928711d3edd2",
      "parents": [
        "d1945206010bf019e65daaf58b9687d2044a3c3c"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Wed Jun 10 14:41:02 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 10 14:41:02 2026"
      },
      "message": "Cache neo segmenters in datagen (#8059)\n\n#7962 \n\nEach segmenter should only be parsed once across `DataProvider`,\n`IterableDataProvider`, and root/tailorings.\n\n## Changelog\n\nN/A"
    },
    {
      "commit": "d1945206010bf019e65daaf58b9687d2044a3c3c",
      "tree": "93573f6003301c0711b7f575e624f3820b5bc33e",
      "parents": [
        "ef92415f978993b98ac13c1bb8782e2279cf7423"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Jun 10 14:29:46 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 10 14:29:46 2026"
      },
      "message": "Bump js-cookie from 3.0.5 to 3.0.7 in /tools/web-demo (#7987)\n\nBumps [js-cookie](https://github.com/js-cookie/js-cookie) from 3.0.5 to\n3.0.7.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/js-cookie/js-cookie/releases\"\u003ejs-cookie\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.0.7\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePrevent cookie attribute injection: CVE-2026-46625 (eb3c40e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003ePartitioned\u003c/code\u003e attribute to readme (b994768)\u003c/li\u003e\n\u003cli\u003ePublish to npm registry via trusted publisher exclusively\n(4dc71be)\u003c/li\u003e\n\u003cli\u003eEnsure consistent behaviour for \u003ccode\u003eget(\u0027name\u0027)\u003c/code\u003e +\n\u003ccode\u003eget()\u003c/code\u003e (1953d30)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/js-cookie/js-cookie/commit/17bacba0171dd022728d8fdeba3203c60791bf58\"\u003e\u003ccode\u003e17bacba\u003c/code\u003e\u003c/a\u003e\nCraft v3.0.7 release\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/js-cookie/js-cookie/commit/adb823cb7e95ead47f3af4d4951e589acbde2077\"\u003e\u003ccode\u003eadb823c\u003c/code\u003e\u003c/a\u003e\nFix release workflow halting at \u003ccode\u003egit tag\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/js-cookie/js-cookie/commit/5f9e759b07d2752e8407a3a43fb5f879bf384c5e\"\u003e\u003ccode\u003e5f9e759\u003c/code\u003e\u003c/a\u003e\nMay remove Git user config from release workflow\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/js-cookie/js-cookie/commit/6ac921184c7b3b7d9431c88707f56521acd72ab4\"\u003e\u003ccode\u003e6ac9211\u003c/code\u003e\u003c/a\u003e\nFix release workflow not able to push commit + tag\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/js-cookie/js-cookie/commit/2278bc55e1804c4c2d9bd2110a9b449949a52751\"\u003e\u003ccode\u003e2278bc5\u003c/code\u003e\u003c/a\u003e\nFix missing package version bump\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/js-cookie/js-cookie/commit/eb3c40e89731e99b8970faaf35ddad249c6c0020\"\u003e\u003ccode\u003eeb3c40e\u003c/code\u003e\u003c/a\u003e\nPrevent cookie attribute injection\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/js-cookie/js-cookie/commit/f6f157f430d707d2ffd0c9c9138227a6cea564e5\"\u003e\u003ccode\u003ef6f157f\u003c/code\u003e\u003c/a\u003e\nBump globals from 17.5.0 to 17.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/js-cookie/js-cookie/commit/f409d022da50a0c6fa8724f087fbc50fab9a9533\"\u003e\u003ccode\u003ef409d02\u003c/code\u003e\u003c/a\u003e\nBump eslint from 10.2.0 to 10.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/js-cookie/js-cookie/commit/a686883c03a754c04546cfc1653911a70a640b40\"\u003e\u003ccode\u003ea686883\u003c/code\u003e\u003c/a\u003e\nBump protobufjs in the npm_and_yarn group across 1 directory\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/js-cookie/js-cookie/commit/c6112d2d4f2881a12aaf89d9e2996ef6870eb6d0\"\u003e\u003ccode\u003ec6112d2\u003c/code\u003e\u003c/a\u003e\nBump \u003ccode\u003e@​protobufjs/utf8\u003c/code\u003e in the npm_and_yarn group across 1\ndirectory\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/js-cookie/js-cookie/compare/v3.0.5...v3.0.7\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eMaintainer changes\u003c/summary\u003e\n\u003cp\u003eThis version was pushed to npm by \u003ca\nhref\u003d\"https://www.npmjs.com/~GitHub%20Actions\"\u003eGitHub Actions\u003c/a\u003e, a new\nreleaser for js-cookie since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility\nscore](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003djs-cookie\u0026package-manager\u003dnpm_and_yarn\u0026previous-version\u003d3.0.5\u0026new-version\u003d3.0.7)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don\u0027t\nalter it yourself. You can also trigger a rebase manually by commenting\n`@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits\nthat have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all\nof the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop\nDependabot creating any more for this major version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop\nDependabot creating any more for this minor version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop\nDependabot creating any more for this dependency (unless you reopen the\nPR or upgrade to it yourself)\nYou can disable automated security fix PRs for this repo from the\n[Security Alerts\npage](https://github.com/unicode-org/icu4x/network/alerts).\n\n\u003c/details\u003e\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "ef92415f978993b98ac13c1bb8782e2279cf7423",
      "tree": "90f6d1f63126c59f4f9ac54b79ae5f5f8dedea9b",
      "parents": [
        "023f4ddba776756f5b87c9b44035d753227b6d33"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Jun 10 14:29:18 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jun 10 14:29:18 2026"
      },
      "message": "Bump tar from 0.4.45 to 0.4.46 (#8031)\n\nBumps [tar](https://github.com/composefs/tar-rs) from 0.4.45 to 0.4.46.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/composefs/tar-rs/releases\"\u003etar\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.4.46\u003c/h2\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003earchive: Fix another PAX header desync (GHSA-3cv2-h65g-fgmm) by \u003ca\nhref\u003d\"https://github.com/cgwalters\"\u003e\u003ccode\u003e@​cgwalters\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/composefs/tar-rs/pull/454\"\u003ecomposefs/tar-rs#454\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSee also \u003ca\nhref\u003d\"https://github.com/astral-sh/tokio-tar/security/advisories/GHSA-3cv2-h65g-fgmm\"\u003ehttps://github.com/astral-sh/tokio-tar/security/advisories/GHSA-3cv2-h65g-fgmm\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eci: Fix and re-enable reverse dependency testing by \u003ca\nhref\u003d\"https://github.com/cgwalters\"\u003e\u003ccode\u003e@​cgwalters\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/composefs/tar-rs/pull/444\"\u003ecomposefs/tar-rs#444\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate astral-tokio-tar requirement from 0.5 to 0.6 by \u003ca\nhref\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot]\nin \u003ca\nhref\u003d\"https://redirect.github.com/composefs/tar-rs/pull/446\"\u003ecomposefs/tar-rs#446\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate some links by \u003ca\nhref\u003d\"https://github.com/atouchet\"\u003e\u003ccode\u003e@​atouchet\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/composefs/tar-rs/pull/445\"\u003ecomposefs/tar-rs#445\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support of absolute paths by \u003ca\nhref\u003d\"https://github.com/zxvfc\"\u003e\u003ccode\u003e@​zxvfc\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/composefs/tar-rs/pull/426\"\u003ecomposefs/tar-rs#426\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: Expand notes on concurrent mutations and following symlinks by\n\u003ca href\u003d\"https://github.com/cgwalters\"\u003e\u003ccode\u003e@​cgwalters\u003c/code\u003e\u003c/a\u003e in\n\u003ca\nhref\u003d\"https://redirect.github.com/composefs/tar-rs/pull/453\"\u003ecomposefs/tar-rs#453\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate repo links by \u003ca\nhref\u003d\"https://github.com/cgwalters\"\u003e\u003ccode\u003e@​cgwalters\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/composefs/tar-rs/pull/451\"\u003ecomposefs/tar-rs#451\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: Add crates.io trusted publishing workflow by \u003ca\nhref\u003d\"https://github.com/cgwalters\"\u003e\u003ccode\u003e@​cgwalters\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/composefs/tar-rs/pull/456\"\u003ecomposefs/tar-rs#456\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelease 0.4.46 by \u003ca\nhref\u003d\"https://github.com/cgwalters\"\u003e\u003ccode\u003e@​cgwalters\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/composefs/tar-rs/pull/455\"\u003ecomposefs/tar-rs#455\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot]\nmade their first contribution in \u003ca\nhref\u003d\"https://redirect.github.com/composefs/tar-rs/pull/446\"\u003ecomposefs/tar-rs#446\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/atouchet\"\u003e\u003ccode\u003e@​atouchet\u003c/code\u003e\u003c/a\u003e\nmade their first contribution in \u003ca\nhref\u003d\"https://redirect.github.com/composefs/tar-rs/pull/445\"\u003ecomposefs/tar-rs#445\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/zxvfc\"\u003e\u003ccode\u003e@​zxvfc\u003c/code\u003e\u003c/a\u003e made\ntheir first contribution in \u003ca\nhref\u003d\"https://redirect.github.com/composefs/tar-rs/pull/426\"\u003ecomposefs/tar-rs#426\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca\nhref\u003d\"https://github.com/composefs/tar-rs/compare/0.4.45...0.4.46\"\u003ehttps://github.com/composefs/tar-rs/compare/0.4.45...0.4.46\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/composefs/tar-rs/commit/fc459c149f83bf4daceaa52e17d351989002e1a9\"\u003e\u003ccode\u003efc459c1\u003c/code\u003e\u003c/a\u003e\nRelease 0.4.46\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/composefs/tar-rs/commit/43e05a85e053d5e64eeda0b04e279be8686419b6\"\u003e\u003ccode\u003e43e05a8\u003c/code\u003e\u003c/a\u003e\nci: Add crates.io trusted publishing workflow\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/composefs/tar-rs/commit/bba5666997d95dcd89a9d38235709a1d5e44565b\"\u003e\u003ccode\u003ebba5666\u003c/code\u003e\u003c/a\u003e\nUpdate repo links\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/composefs/tar-rs/commit/cd94c46e0d74fbcc50eea3f30665a1b1159254cc\"\u003e\u003ccode\u003ecd94c46\u003c/code\u003e\u003c/a\u003e\ndocs: Document TOCTOU / concurrent-mutation threat model\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/composefs/tar-rs/commit/1b4997cf5ef115f8d82680016c28490b5645b9c7\"\u003e\u003ccode\u003e1b4997c\u003c/code\u003e\u003c/a\u003e\nbuilder: Expand docs for follow_symlinks and append_dir_all\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/composefs/tar-rs/commit/bab14dd84b411ac16ecb56d4f2d2f7bfb88a9838\"\u003e\u003ccode\u003ebab14dd\u003c/code\u003e\u003c/a\u003e\narchive: Fix another PAX header desync (GHSA-3cv2-h65g-fgmm)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/composefs/tar-rs/commit/2349b494827807791473f3c6ca9b2fc5ef274cdb\"\u003e\u003ccode\u003e2349b49\u003c/code\u003e\u003c/a\u003e\nAdd support of absolute paths\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/composefs/tar-rs/commit/39d031184127427bd9a740b7e20afd31deead928\"\u003e\u003ccode\u003e39d0311\u003c/code\u003e\u003c/a\u003e\nUpdate some links\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/composefs/tar-rs/commit/59d803e2f1ed39272c4c1d1cdb04d799280b3335\"\u003e\u003ccode\u003e59d803e\u003c/code\u003e\u003c/a\u003e\nUpdate astral-tokio-tar requirement from 0.5 to 0.6\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/composefs/tar-rs/commit/8296b9a88cfcdbdd1e3b59cd820899b35e6151e1\"\u003e\u003ccode\u003e8296b9a\u003c/code\u003e\u003c/a\u003e\nci: Fix and re-enable reverse dependency testing (\u003ca\nhref\u003d\"https://redirect.github.com/composefs/tar-rs/issues/444\"\u003e#444\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/composefs/tar-rs/compare/0.4.45...0.4.46\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility\nscore](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003dtar\u0026package-manager\u003dcargo\u0026previous-version\u003d0.4.45\u0026new-version\u003d0.4.46)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don\u0027t\nalter it yourself. You can also trigger a rebase manually by commenting\n`@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits\nthat have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all\nof the ignore conditions of the specified dependency\n- `@dependabot ignore this major version` will close this PR and stop\nDependabot creating any more for this major version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this minor version` will close this PR and stop\nDependabot creating any more for this minor version (unless you reopen\nthe PR or upgrade to it yourself)\n- `@dependabot ignore this dependency` will close this PR and stop\nDependabot creating any more for this dependency (unless you reopen the\nPR or upgrade to it yourself)\nYou can disable automated security fix PRs for this repo from the\n[Security Alerts\npage](https://github.com/unicode-org/icu4x/network/alerts).\n\n\u003c/details\u003e\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "023f4ddba776756f5b87c9b44035d753227b6d33",
      "tree": "d1c86792bdfaf8a97fb56cd06e9e6a2d199e2177",
      "parents": [
        "1d821a3616c6d541f403520d877a6fe939c1517e"
      ],
      "author": {
        "name": "Manish Goregaokar",
        "email": "manishsmail@gmail.com",
        "time": "Tue Jun 09 23:10:49 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 09 23:10:49 2026"
      },
      "message": "Make skeleton datagen generic (#8055)"
    },
    {
      "commit": "1d821a3616c6d541f403520d877a6fe939c1517e",
      "tree": "ef3096a4b21b01859214d033312c5854e7b26e9d",
      "parents": [
        "bf279b06077cb96ded7c477984c22d78a0534579"
      ],
      "author": {
        "name": "Younies Mahmoud",
        "email": "younies.mahmoud@gmail.com",
        "time": "Tue Jun 09 10:52:44 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 09 10:52:44 2026"
      },
      "message": "experimental/currency: Improve documentation and refactor placeholder interning in essentials (#8048)"
    },
    {
      "commit": "bf279b06077cb96ded7c477984c22d78a0534579",
      "tree": "8b3858fefc579091319843917602dbf8e8023702",
      "parents": [
        "c61622ed7a8482d69830f06bca6dcc90604ca1eb"
      ],
      "author": {
        "name": "Fuqiao Xue",
        "email": "xfq@w3.org",
        "time": "Tue Jun 09 09:51:13 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 09 09:51:13 2026"
      },
      "message": "Add dhat JSON parsing in benchmark memory tool (#8036)\n\nFix #460.\n\n## Changelog (N/A)"
    },
    {
      "commit": "c61622ed7a8482d69830f06bca6dcc90604ca1eb",
      "tree": "c2b9b910a4d4c91177a317f65f52afecd9b30b2d",
      "parents": [
        "921269277671cc2e9194c946c260d9b10572c4c5"
      ],
      "author": {
        "name": "Younies Mahmoud",
        "email": "younies.mahmoud@gmail.com",
        "time": "Mon Jun 08 20:46:29 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 08 20:46:29 2026"
      },
      "message": "experimental/currency: Polish documentation, extraction logic, and error reporting across extended data, display names, and compact patterns (#8049)"
    },
    {
      "commit": "921269277671cc2e9194c946c260d9b10572c4c5",
      "tree": "ecd9bb35e2f5ef7173ff2143a2c073ef5f56a3b9",
      "parents": [
        "3dfef9e9f5c7df0a8c61989a640f27d415a71153"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Mon Jun 08 15:35:05 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 08 15:35:05 2026"
      },
      "message": "Implement CSS line break word option in neo segmenter (#8043)\n\nThis uses the similar property reassignments to the stable segmenter:\n\n* `break-all`: `NU`, `AL`, `SA`, `CJ` \u003d\u003e `ID`\n*\nhttps://github.com/unicode-org/icu4x/blob/3dfef9e9f5c7df0a8c61989a640f27d415a71153/components/segmenter/src/line.rs#L1105-L1118\n* `keep-all`: `ID`, `CJ`, `JL`, `JV`, `JT`, `H2`, `H3` \u003d\u003e `AL`\n*\nhttps://github.com/unicode-org/icu4x/blob/3dfef9e9f5c7df0a8c61989a640f27d415a71153/components/segmenter/src/line.rs#L879-L910\n\n## Changelog\n\nN/A"
    },
    {
      "commit": "3dfef9e9f5c7df0a8c61989a640f27d415a71153",
      "tree": "c9f7fa9106c3be3acc7a28f73c0b08e47545dc8b",
      "parents": [
        "4c970d48c9bd29992e89c7e4d071711b0174586a"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Fri Jun 05 20:33:39 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 05 20:33:39 2026"
      },
      "message": "Improve static code elimination in neo segmenter (#8038)\n\nCurrently the complex code path is statically removed per input encoding\n(i.e. for Latin-1), but not per segmenter type. This statically removes\nit for grapheme and sentence segmenters.\n \n## Changelog\n\nN/A"
    },
    {
      "commit": "4c970d48c9bd29992e89c7e4d071711b0174586a",
      "tree": "230a094716fae7c0daf6775c58b46638b44e74df",
      "parents": [
        "a41e377640d776bcc178401dab4418d5da8a8530"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Fri Jun 05 19:53:48 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 05 19:53:48 2026"
      },
      "message": "Bump MSRV to 1.88 (#8037)\n\nI want if-let chains\n\nBlocked on #8039 \n\n## Changelog\n\nN/A"
    },
    {
      "commit": "a41e377640d776bcc178401dab4418d5da8a8530",
      "tree": "7bd6b33ed09b65e6858644cf49d59656d11c0d3b",
      "parents": [
        "2b186d928ad673177ed6eba6eeea25a48bc73eb8"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Fri Jun 05 19:32:46 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 05 19:32:46 2026"
      },
      "message": "Simplify spec-test (#8042)\n\n## Changelog\n\nN/A"
    },
    {
      "commit": "2b186d928ad673177ed6eba6eeea25a48bc73eb8",
      "tree": "5244d4e0ecee2adc87794d50d36cfff1110b7ad3",
      "parents": [
        "9317c575ae97abf2c9b52709ce1820f3734b01e0"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Fri Jun 05 19:30:35 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Jun 05 19:30:35 2026"
      },
      "message": "Bump nightlies and LLVM (#8039)\n\nThis PR bumps the nightly to `nightly-2026-06-01`, the LLVM nightly to\n`nightly-2025-07-01` and LLVM to version 20.\n\nRust was on LLVM 20 until `nightly-2025-08-01`. \n\nThe only thing blocking LLVM 21 is that the GH actions runner does not\nsupport it. `ubuntu-26` will.\n\n\nhttps://github.com/unicode-org/icu4x/blob/main/documents/process/rust_versions.md:\n\n* It MUST be available via apt on all currently-supported Ubuntu LTS\n  * ✅ 24.04 https://launchpad.net/ubuntu/+source/llvm-toolchain-20\n  * ✅ 22.04 available through https://apt.llvm.org/\n* It MUST be available via apt on Debian `testing`\n  * ✅ https://tracker.debian.org/pkg/llvm-toolchain-20\n* It MUST be available via `brew`\n  * ✅ https://formulae.brew.sh/formula/lld@21\n* It MUST be available on Fedora via `yum`\n  * ✅ https://packages.fedoraproject.org/pkgs/llvm/llvm/\n* There is no dedicated `llvm-20` package, but the `llvm` package has\nversion 20\n* It MUST be available on the GitHub Actions runners with ubuntu-latest\n  * ✅ Can be installed through `apt`\n* It SHOULD be available on the latest XCode\n* ✅\nhttps://github.com/swiftlang/llvm-project/blob/swift/release/6.3/llvm/utils/gn/secondary/llvm/version.gni\n* It SHOULD be available on ICU4X developer machines using nonstandard\npackage management\n  * ?\n* It SHOULD be available on RHEL and latest Rocky Linux via yum\n  * ?\n\n## Changelog\n\nN/A"
    }
  ],
  "next": "9317c575ae97abf2c9b52709ce1820f3734b01e0"
}
