)]}'
{
  "log": [
    {
      "commit": "cf5c61492a0f1795c1a59f29200837379e16759a",
      "tree": "2f2524d37654ebcd21689d8bf575e5be2db8f73a",
      "parents": [
        "c8dbf36ab09d2cc13f2ef4845fcc0bde9cd1f594"
      ],
      "author": {
        "name": "Shane F. Carr",
        "email": "shane@unicode.org",
        "time": "Tue Jun 02 23:02:20 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 02 23:02:20 2026"
      },
      "message": "Make serde impl of GenericPackedPatterns more generic (#8024)"
    },
    {
      "commit": "c8dbf36ab09d2cc13f2ef4845fcc0bde9cd1f594",
      "tree": "a0b9b895782ca7982c83539aba1e226cf547f927",
      "parents": [
        "1d8470368ab0ec6da4c6d5428fecec3aebfe9c72"
      ],
      "author": {
        "name": "Manish Goregaokar",
        "email": "manishsmail@gmail.com",
        "time": "Mon Jun 01 21:46:24 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 01 21:46:24 2026"
      },
      "message": "Genericize skeleton-matching code in datagen (simpler part) (#8015)\n\nFirst three commits of https://github.com/unicode-org/icu4x/pull/8013\nfor more incremental review\n\n## Changelog: N/A"
    },
    {
      "commit": "1d8470368ab0ec6da4c6d5428fecec3aebfe9c72",
      "tree": "4226953cd9d326cb21061ba5f54e067e4a291bb4",
      "parents": [
        "db6f3dbcaf8fa76c942ee17ca4bc54ff04b37504"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Mon Jun 01 20:08:37 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 01 20:08:37 2026"
      },
      "message": "Document ISO-15924-only `Script` constants (#8017)\n\n## Changelog\n\n`icu_properties`:\n* Added `Script` constants for some non-Unicode scripts"
    },
    {
      "commit": "db6f3dbcaf8fa76c942ee17ca4bc54ff04b37504",
      "tree": "4bc1f182acb2ccbc207ef58a527151883e80eb6c",
      "parents": [
        "be2d26e077f3ad0125000d56955a32c8f7809bfb"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Mon Jun 01 18:57:40 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 01 18:57:40 2026"
      },
      "message": "Use canonical property value names (#8016)\n\n`HangulSyllableType::LeadingVowelSyllable`,\n`HangulSyllableType::LeadingVowelTrailingSyllable`, `Script::Ethiopian`,\nand `Script::Nastaliq` use spellings that don\u0027t match Unicode/ICU4C.\nThey were added in https://github.com/unicode-org/icu4x/pull/2416,\nhttps://github.com/unicode-org/icu4x/pull/4426, and\nhttps://github.com/unicode-org/icu4x/pull/4885.\n\nDeprecate the values and replace by constants with the canonical\nspelling. Unfortunately we cannot do this on FFI.\n\n## Changelog\n\nicu_properties: Deprecate `HangulSyllableType::LeadingVowelSyllable`,\n`HangulSyllableType::LeadingVowelTrailingSyllable`, `Script::Ethiopian`,\nand `Script::Nastaliq` in favor of names matching their official Unicode\nnames\n- New associated constants: `HangulSyllableType::LVSyllable`,\n`HangulSyllableType::LVTSyllable`, `Script::Ethiopic`,\n`Script::ArabicNastaliq`"
    },
    {
      "commit": "be2d26e077f3ad0125000d56955a32c8f7809bfb",
      "tree": "690a3da2299b0de2ae67d8b54b4369143d6b4d89",
      "parents": [
        "158d417ff39c8909fc57f0309c36adbde6206ca5"
      ],
      "author": {
        "name": "Manish Goregaokar",
        "email": "manishsmail@gmail.com",
        "time": "Mon Jun 01 16:50:38 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 01 16:50:38 2026"
      },
      "message": "Safety improvements for fixed_decimal (#8002)\n\nI\u0027ve been using a Gemini Skill I wrote to help with unsafe reviews. It\u0027s\nnot perfect and does not yet replace human review, however it does\nmanage to catch some things.\n\nI ran it on ICU4X utils and it came up with a bunch of minor safety\ncomment improvements.\n\n## Changelog: N/A\n\n\u003c!-- Please fill in according to documents/process/changelog.md --\u003e"
    },
    {
      "commit": "158d417ff39c8909fc57f0309c36adbde6206ca5",
      "tree": "8e87335464364184e6657ea60d90309697791626",
      "parents": [
        "0724fbcec926c111c5c5a20bfaaf6ee99ce9ff20"
      ],
      "author": {
        "name": "Manish Goregaokar",
        "email": "manishsmail@gmail.com",
        "time": "Sat May 30 16:24:47 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat May 30 16:24:47 2026"
      },
      "message": "Tuple layout fix for resb (#8008)\n\nFixes #8007 \n\n\n## Changelog\n\nresb: (breaking) APIs produce a typed `I32Pair` instead of `(i32, i32)`\nfor maximum layout soundness\nresb: (breaking) `cast_bytes_to_slice` replaced with type-specific cast\nfunctions"
    },
    {
      "commit": "0724fbcec926c111c5c5a20bfaaf6ee99ce9ff20",
      "tree": "92a0dc8c0c4befec2e00a1a77aa881a618ad18b0",
      "parents": [
        "1cda7c092e4ad44d73191bb65139e53a7f793fd8"
      ],
      "author": {
        "name": "Shane F. Carr",
        "email": "shane@unicode.org",
        "time": "Fri May 29 22:23:10 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 29 22:23:10 2026"
      },
      "message": "Warn on unknown alt variants in display names (#8010)\n\nCo-authored-by: Gemini \u003c176961590+gemini-code-assist[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "1cda7c092e4ad44d73191bb65139e53a7f793fd8",
      "tree": "598a1792c2281c3e8eceaa48a00b734c2b9924b2",
      "parents": [
        "2e42def9d76d14252d00efbda06aa2b0a0809a07"
      ],
      "author": {
        "name": "Shane F. Carr",
        "email": "shane@unicode.org",
        "time": "Fri May 29 22:20:34 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 29 22:20:34 2026"
      },
      "message": "Split singular display names into owned and borrowed types (#8006)\n\nCo-authored-by: Gemini \u003c176961590+gemini-code-assist[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "2e42def9d76d14252d00efbda06aa2b0a0809a07",
      "tree": "eab9680ad99849b635af50098177afdae88d85ac",
      "parents": [
        "0c90a693eb35fd0a79ed9f57a5e7a7026d63578c"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Fri May 29 18:49:30 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 29 18:49:30 2026"
      },
      "message": "Generate enumerated property constants from `PropertyDiscriminants.txt` (#8001)"
    },
    {
      "commit": "0c90a693eb35fd0a79ed9f57a5e7a7026d63578c",
      "tree": "7cc0e7f39af02b5e11b6417ade10c5d5fe83732d",
      "parents": [
        "a45643940c6d048fd3b582c753d9335d00b901f9"
      ],
      "author": {
        "name": "Manish Goregaokar",
        "email": "manishsmail@gmail.com",
        "time": "Fri May 29 18:35:35 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 29 18:35:35 2026"
      },
      "message": "Safety improvements for resb (#8003)\n\nI\u0027ve been using a Gemini Skill I wrote to help with unsafe reviews. It\u0027s\nnot perfect and does not yet replace human review, however it does\nmanage to catch some things.\n\nI ran it on ICU4X utils and it came up with a bunch of minor safety\ncomment improvements.\n\n## Changelog: N/A\n\n\u003c!-- Please fill in according to documents/process/changelog.md --\u003e"
    },
    {
      "commit": "a45643940c6d048fd3b582c753d9335d00b901f9",
      "tree": "ffe0bf0f7e2725f413f6cfba184ac2428bce524e",
      "parents": [
        "5ce95b58fb06455c203df01df39f9ca0e5091f8f"
      ],
      "author": {
        "name": "Manish Goregaokar",
        "email": "manishsmail@gmail.com",
        "time": "Fri May 29 18:35:20 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 29 18:35:20 2026"
      },
      "message": "Safety improvements for zoneinfo64 (#8005)\n\nI\u0027ve been using a Gemini Skill I wrote to help with unsafe reviews. It\u0027s\nnot perfect and does not yet replace human review, however it does\nmanage to catch some things.\n\nI ran it on ICU4X utils and it came up with a bunch of minor safety\ncomment improvements.\n\n## Changelog: N/A\n\n\u003c!-- Please fill in according to documents/process/changelog.md --\u003e"
    },
    {
      "commit": "5ce95b58fb06455c203df01df39f9ca0e5091f8f",
      "tree": "b50a719fe2b078b1d733141e077acf4b0b56d62c",
      "parents": [
        "b7c3aa954b8fb7fcf57957bf67d23509ae83023e"
      ],
      "author": {
        "name": "Manish Goregaokar",
        "email": "manishsmail@gmail.com",
        "time": "Fri May 29 16:37:14 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 29 16:37:14 2026"
      },
      "message": "Change calendar constructor roundtrip tests to be per-calendar (#7998)\n\nFixes https://github.com/unicode-org/icu4x/issues/7921\n\nSimple agent-driven refactor\n\n## Changelog: N/A\n\n\n\u003c!-- Please fill in according to documents/process/changelog.md --\u003e"
    },
    {
      "commit": "b7c3aa954b8fb7fcf57957bf67d23509ae83023e",
      "tree": "471817780ae732b597f46c2f75368ddfc2664a36",
      "parents": [
        "8b0a57c3249236b3c52c32231583c9006ed8159a"
      ],
      "author": {
        "name": "Manish Goregaokar",
        "email": "manishsmail@gmail.com",
        "time": "Fri May 29 16:04:54 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 29 16:04:54 2026"
      },
      "message": "Turn PackedPatterns into GenericPackedPatterns (#7967)\n\nPart of  #5488\n\nYou can see this in use at\nhttps://github.com/unicode-org/icu4x/pull/7966\n\nDepends on https://github.com/unicode-org/icu4x/pull/7999\n\nI decided not to genericize the serde code for now. It doesn\u0027t seem\nworth it and I want to experiment with that in a separate step. But\ngenericizing the builder/lookup code means that the whole \"variant\nlookup\" business is encapsulated.\n\n\nNote that I have not yet experimented with this end-to-end. I think this\nis going to be a necessary change either way, though, and can be landed\nseparately.\n\n## Changelog: N/A\n\n---------\n\nCo-authored-by: Robert Bastian \u003c4706271+robertbastian@users.noreply.github.com\u003e\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": "8b0a57c3249236b3c52c32231583c9006ed8159a",
      "tree": "b504bdadc873a44e9ad59a7ae48d0526635d5abb",
      "parents": [
        "7675aee7ef4ef39246a5273f03871ddef1cb86f8"
      ],
      "author": {
        "name": "Shane F. Carr",
        "email": "shane@unicode.org",
        "time": "Fri May 29 15:00:09 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 29 15:00:09 2026"
      },
      "message": "Add generic ZeroFrom impls for PluralElements (#7999)\n\nicu_plurals: Add generic `ZeroFrom` implementation for `PluralElements`\n* New trait implementations: `impl\u003c\u0027a, T, C\u003e ZeroFrom\u003c\u0027a,\nPluralElements\u003cC\u003e\u003e for PluralElements\u003cT\u003e`\n\n---------\n\nCo-authored-by: Gemini \u003c176961590+gemini-code-assist[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "7675aee7ef4ef39246a5273f03871ddef1cb86f8",
      "tree": "e26ede04d105d5ddf4f92f7575ba99ebca0e2415",
      "parents": [
        "8690105d5fe048f22c8d64ccf56d16ca40325a20"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Fri May 29 14:47:44 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 29 14:47:44 2026"
      },
      "message": "Validate enumerated property defaults against UCD (#8000)\n\nThe UCD contains an entry of the shape\n\n`# @missing: 0000..10FFFF; \u003cname\u003e`\n\nfor each property, which we treat as the default.\n\n#4602 \n\n## Changelog\n\nN/A"
    },
    {
      "commit": "8690105d5fe048f22c8d64ccf56d16ca40325a20",
      "tree": "cd025e2bfa5359cef5a296b302182d08ba704f5b",
      "parents": [
        "59bd4924d2888519cbfb79fa1612fcd100385796"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Fri May 29 13:20:43 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 29 13:20:43 2026"
      },
      "message": "Don\u0027t use enumerated property discriminants from icuexportdata (#7924)\n\nWe need to figure out some way to test our `icu4c_value`s against ICU4C.\nI\u0027d prefer doing this not through icuexportdata but through the Rust ICU\nbindings, however they don\u0027t seem to expose properties at the moment.\n\nThe cool thing is that datagen with Unicode 18 now *just works*. Of\ncourse there are some errors because we need to define new\nconstants/discrimants:\n\n```\n2026-04-29T12:16:26.501Z ERROR [icu_provider_source::properties::enum_codepointtrie] Missing Rust value for Script \"Chisoi\" \"Chis\"\n2026-04-29T12:16:26.502Z ERROR [icu_provider_source::properties::enum_codepointtrie] Missing Rust value for Script \"Proto_Cuneiform\" \"Pcun\"\n2026-04-29T12:16:26.502Z ERROR [icu_provider_source::properties::enum_codepointtrie] Missing Rust value for Script \"Seal\" \"Seal\"\n2026-04-29T12:16:28.404Z ERROR [icu_provider_source::properties::enum_codepointtrie] Missing Rust value for Joining_Group \"Crown_Ain\" \"Crown_Ain\"\n2026-04-29T12:16:28.404Z ERROR [icu_provider_source::properties::enum_codepointtrie] Missing Rust value for Joining_Group \"Crown_Beh\" \"Crown_Beh\"\n2026-04-29T12:16:28.404Z ERROR [icu_provider_source::properties::enum_codepointtrie] Missing Rust value for Joining_Group \"Crown_Feh\" \"Crown_Feh\"\n2026-04-29T12:16:28.404Z ERROR [icu_provider_source::properties::enum_codepointtrie] Missing Rust value for Joining_Group \"Crown_Hah\" \"Crown_Hah\"\n2026-04-29T12:16:28.404Z ERROR [icu_provider_source::properties::enum_codepointtrie] Missing Rust value for Joining_Group \"Crown_Heh\" \"Crown_Heh\"\n2026-04-29T12:16:28.404Z ERROR [icu_provider_source::properties::enum_codepointtrie] Missing Rust value for Joining_Group \"Crown_Kaf\" \"Crown_Kaf\"\n2026-04-29T12:16:28.409Z ERROR [icu_provider_source::properties::enum_codepointtrie] Missing Rust value for Joining_Group \"Crown_Meem\" \"Crown_Meem\"\n2026-04-29T12:16:28.409Z ERROR [icu_provider_source::properties::enum_codepointtrie] Missing Rust value for Joining_Group \"Crown_Sad\" \"Crown_Sad\"\n2026-04-29T12:16:28.409Z ERROR [icu_provider_source::properties::enum_codepointtrie] Missing Rust value for Joining_Group \"Crown_Seen\" \"Crown_Seen\"\n2026-04-29T12:16:28.409Z ERROR [icu_provider_source::properties::enum_codepointtrie] Missing Rust value for Joining_Group \"Crown_Tah\" \"Crown_Tah\"\n```\n\n## Changelog\n\nN/A"
    },
    {
      "commit": "59bd4924d2888519cbfb79fa1612fcd100385796",
      "tree": "ded18e510d1bee7893ad539e6b461c5461d49331",
      "parents": [
        "6db6dcb7c789fc743184aab1aa98a4a919094a95"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Fri May 29 12:26:33 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 29 12:26:33 2026"
      },
      "message": "Make CCC a transparent newtype, deprecate `icu4c_value` conversions (#7997)\n\n`CanonicalCombiningClass` is unique in the sense that the numeric values\nare define by Unicode, not by ICU4C. Currently they are only accessible\nthrough `to_icu4c_value`/`from_icu4c_value`, which are pretty much the\nonly use cases of these methods (there are some internal ones that are\neasy to replace as well).\n\nInstead, we should make the field public and allow clients to treat CCC\nas an integer.\n\n## Changelog\n\n`icu_properties`:\n* Deprecate `to_icu4c_value`/`from_icu4c_value` on enumerated properties\n* Expose `CanonicalCombiningClass`\u0027 integer field"
    },
    {
      "commit": "6db6dcb7c789fc743184aab1aa98a4a919094a95",
      "tree": "1247eb0a9a0fe845d8b8f16098061870827452f9",
      "parents": [
        "4170078b3cdfce58f2bc514483ea0e8bbc700194"
      ],
      "author": {
        "name": "Manish Goregaokar",
        "email": "manishsmail@gmail.com",
        "time": "Thu May 28 23:15:34 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 28 23:15:34 2026"
      },
      "message": "agent-driven: Refactor out enforce_consistent_field_length validation… (#7995)\n\nPart of https://github.com/unicode-org/icu4x/issues/5488\n\nMinor refactoring that seems useful for comprehending the packedpatterns\ncode, discovered while working on range formatting (#7967, #7966).\nProbably will be useful as we genericize it, seemed separable from the\nother work so I split it out.\n\n\n## Changelog: N/A\n\n\u003c!-- Please fill in according to documents/process/changelog.md --\u003e"
    },
    {
      "commit": "4170078b3cdfce58f2bc514483ea0e8bbc700194",
      "tree": "fa1cb7348dfc0813384290ebf090017e163228c8",
      "parents": [
        "388a098907fcc6f98a4b49da5b3f044f3ff4f2ab"
      ],
      "author": {
        "name": "Manish Goregaokar",
        "email": "manishsmail@gmail.com",
        "time": "Thu May 28 18:45:30 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 28 18:45:30 2026"
      },
      "message": "Add note in LocaleFallbacker docs about normalization (#7994)\n\nFixes https://github.com/unicode-org/icu4x/issues/7993\n\nI think a simple note and doctest is sufficient. Not sure if this is the\nbest place for it.\n## Changelog: N/A\n\n---------\n\nCo-authored-by: Shane F. Carr \u003cshane@unicode.org\u003e"
    },
    {
      "commit": "388a098907fcc6f98a4b49da5b3f044f3ff4f2ab",
      "tree": "653a8f5ac4647020c6c944b52264f705698f0d66",
      "parents": [
        "ed83396fa2e87b1ef37b608d3fac9c1c40f5fa53"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Thu May 28 13:36:36 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 28 13:36:36 2026"
      },
      "message": "ScriptExtensions FFI should use the `Script` enum (#7996)\n\nWe currently use raw `u16`s, even though we have a `Script` type.\n\nI\u0027m not sure whether this is breaking for JS, and whether we care about\nthe breakage for C++ and C, so I\u0027ve only done this for Dart and Kotlin.\n\n## Changelog\n\n`icu_capi`:\n* Dart, Kotlin: use the `Script` type on `ScriptExtension` APIs"
    },
    {
      "commit": "ed83396fa2e87b1ef37b608d3fac9c1c40f5fa53",
      "tree": "9d423fb4181069083af9d0187aa12f0e63367255",
      "parents": [
        "4e3e878b7a4d177fdfd3dc89971cd2caff942908"
      ],
      "author": {
        "name": "Shane F. Carr",
        "email": "shane@unicode.org",
        "time": "Thu May 28 12:36:34 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 28 12:36:34 2026"
      },
      "message": "Use Maximal deduplication strategy for testdata (#7978)\n\nThis change switches the deduplication strategy in make_testdata.rs from\nRetainBaseLanguages to Maximal. This reduces the size of the generated\ntestdata by removing redundant files that match their parent or root.\n\n## Changelog\n\nN/A"
    },
    {
      "commit": "4e3e878b7a4d177fdfd3dc89971cd2caff942908",
      "tree": "1bcaedf23712bd918247c533e740bd6c1c8a9842",
      "parents": [
        "f1171b3262a1dc7cce26bfb20f5d298f9ddd251e"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Wed May 27 14:39:44 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 27 14:39:44 2026"
      },
      "message": "Add CSS line break tailorings for neo segmenter (#7981)"
    },
    {
      "commit": "f1171b3262a1dc7cce26bfb20f5d298f9ddd251e",
      "tree": "2794cb5a44ae5f7b7e7b8e89216e3c59aa8d259d",
      "parents": [
        "026a019dd8f8fb05dc5b5595fd347fd311f27dac"
      ],
      "author": {
        "name": "Shane F. Carr",
        "email": "shane@unicode.org",
        "time": "Tue May 26 17:25:16 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 26 17:25:16 2026"
      },
      "message": "Add benchmarks for list component (#7948)\n\nSee #1746 \n\nAdds benchmarks for the list component, covering construction and\nformatting for different styles (And, Or, Unit). It also includes\ntargeted adversarial benchmarks for Spanish to test complex conditional\nrules (e.g., \"o\" -\u003e \"u\" before \"o\" sounds and numbers starting with 8\nand 11).\n\n## Changelog\n\nN/A\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": "026a019dd8f8fb05dc5b5595fd347fd311f27dac",
      "tree": "89c2d65854308cc95693fa99e3047e62553e4a71",
      "parents": [
        "4221faa8770bcab2d17581016179ab2e6f90c7e7"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Tue May 26 13:00:03 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 26 13:00:03 2026"
      },
      "message": "Correctly implement numeric month fields for calendars with leap months (#7986)\n\nUsing `M` or `MM` with the Hebrew or EastAsianTraditional calendars\nneeds to load leap patterns. For EAT these are already being generated,\nbut not loaded, for Hebrew we need to generate them.\n\n## Changelog\n\n`icu_datetime`: Correctly implement numeric month fields for calendars\nwith leap months"
    },
    {
      "commit": "4221faa8770bcab2d17581016179ab2e6f90c7e7",
      "tree": "3274e21b7f5eb859010e76e54e5f69046ebb909d",
      "parents": [
        "f0f2481e7b4be2f5b8d8df356294014ba53c1382"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Fri May 22 13:02:31 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 22 13:02:31 2026"
      },
      "message": "Generate two more binary properties ourselves (#7990)"
    },
    {
      "commit": "f0f2481e7b4be2f5b8d8df356294014ba53c1382",
      "tree": "598bc6be05e85d605d9b11de493b0c40d068064f",
      "parents": [
        "0284a40c703dd094cd9edbc9fd33e4097452044d"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Fri May 22 10:37:30 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 22 10:37:30 2026"
      },
      "message": "Fix emoji collation (#7989)"
    },
    {
      "commit": "0284a40c703dd094cd9edbc9fd33e4097452044d",
      "tree": "30cd8d6e807ad70afc22e89a2968ad3717ff0ec2",
      "parents": [
        "e342a702a06ba59ad076c150e8172fac2674c72a"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Wed May 20 15:15:53 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 20 15:15:53 2026"
      },
      "message": "Validate CLDR islamic agreement  (#7985)"
    },
    {
      "commit": "e342a702a06ba59ad076c150e8172fac2674c72a",
      "tree": "77115b7c47bfa88a8b6eb4bc9437483e620cdb61",
      "parents": [
        "4d97c0230cd52c90704b806169f547865d5be08d"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Wed May 20 14:34:20 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 20 14:34:20 2026"
      },
      "message": "Remove dead testdata files (#7984)\n\nMissed in #7904 \n\n## Changelog\n\nN/A"
    },
    {
      "commit": "4d97c0230cd52c90704b806169f547865d5be08d",
      "tree": "139fcad47b72f59e77bec7a9decaa5be96136cce",
      "parents": [
        "fc3db546ab705fae269670abf5a85291caebf938"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Wed May 20 09:55:52 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 20 09:55:52 2026"
      },
      "message": "Use flexible day periods when they show up in our current set of fieldsets  (#7971)\n\nBased on #7970 \n\nUnlike #7965, this merges the day period rules into the names data\nstruct. This saves one data load during construction, and also allows us\nto map directly from the hour to an index in the data struct (\u003dname),\nwithout going through a day period type. This means we don\u0027t need to\nstore empty strings for unused day periods, and we don\u0027t need to store\nthe `presence` bitmap in the rules type. The rules type, which is now 24\nbits, is encoded in 4 UTF-8 bytes in the names ZeroVec.\n\nThis is simpler than #7965, as we don\u0027t need to keep the two data\nstructs consistent. It also has smaller data than the the other PR.\n\n\n## Changelog\n\n`icu_datetime`:\n* Correctly handle the `B` pattern in hour field sets"
    },
    {
      "commit": "fc3db546ab705fae269670abf5a85291caebf938",
      "tree": "58b62330a2aadb5ba80f890d1f27683f86f80c4b",
      "parents": [
        "cf3514451960940e104077ae9680b303aac5e0c6"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Tue May 19 14:30:47 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 19 14:30:47 2026"
      },
      "message": "Enable additional CSS line break tests (#7980)\n\n#7962 \n\n\n## Changelog\n\nN/A"
    },
    {
      "commit": "cf3514451960940e104077ae9680b303aac5e0c6",
      "tree": "b980edb2d91c9623f7d8450c94cb4cc87edb6fb9",
      "parents": [
        "e5ce6296c0d1b8aeca55bac2567feb995eb2ff84"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Tue May 19 14:29:53 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 19 14:29:53 2026"
      },
      "message": "Replace `LinearNames` data struct by domain specific structs (#7979)\n\nSplit from #7971 \n\n## Changelog\n\nN/A"
    },
    {
      "commit": "e5ce6296c0d1b8aeca55bac2567feb995eb2ff84",
      "tree": "4bf8b83474c1af232f8ea761848805290280f621",
      "parents": [
        "4c6c8dce9126e49d2c591b90b504d5d2f9282add"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Mon May 18 18:43:05 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 18 18:43:05 2026"
      },
      "message": "Read explicit eot class from neo segmenter sources  (#7977)\n\nThis allows collapsing the eot (end of text) class with another class if\nthat makes sense.\n\nhttps://github.com/unicode-org/icu4x/issues/7962 \n\n## Changelog\n\nN/A"
    },
    {
      "commit": "4c6c8dce9126e49d2c591b90b504d5d2f9282add",
      "tree": "a8826b8229399b3fe96edad07fa815153ca7dcb8",
      "parents": [
        "619a1abbd92a6a1b81f6f4631b59c3f94cf52709"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Mon May 18 17:31:31 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 18 17:31:31 2026"
      },
      "message": "Data-driven neo segmenter tailorings (#7976)\n\nChanges the sentence segmenter to use a (hardcoded) data-driven\ntailoring for Greek.\n\nAlso adds tailoring support to the line segmenter\n\n#7962\n\n## Changelog\n\nN/A"
    },
    {
      "commit": "619a1abbd92a6a1b81f6f4631b59c3f94cf52709",
      "tree": "ea43116e4be14918bab70c5be4e6ed7a7127f52d",
      "parents": [
        "3b4322d40f76621550347b8c8aacb870791b822e"
      ],
      "author": {
        "name": "Shane F. Carr",
        "email": "shane@unicode.org",
        "time": "Mon May 18 17:27:15 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 18 17:27:15 2026"
      },
      "message": "Address Askama 0.15 deprecation warnings in codegen templates (#7975)\n\nReplaced uninitialized `let` declarations with `decl` in\n`datetime_formatter.rs.jinja` and `zoned_formatter.rs.jinja`. The\nwarning message from Askama 0.15 suggested using `create`, but that\nresulted in an \"unknown node\" error. Using `decl` worked and is\nconsistent with Askama documentation for declaring uninitialized\nvariables.\n\n## Changelog\n\nN/A\n\nCo-authored-by: Gemini \u003c176961590+gemini-code-assist[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "3b4322d40f76621550347b8c8aacb870791b822e",
      "tree": "3746f81312e3bdf5b47dea45bbf09e5e15efe248",
      "parents": [
        "af36de569e22c1ea2d80173f0c217202f8d7baa4"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Mon May 18 16:11:30 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 18 16:11:30 2026"
      },
      "message": "Deprecate ICU-only properties (#7973)\n\n#7892\n\nAlso cleaned up datagen to have different code paths for Unicode\nproperties, ICU properties (deprecated), and compatibility properties\n(probably should be deprecated as well)\n\n## Changelog\n\n`icu_properties`:\n* Deprecate some non-Unicode properties"
    },
    {
      "commit": "af36de569e22c1ea2d80173f0c217202f8d7baa4",
      "tree": "14f2ad447ac1b526a7c7c07b7226472252b65347",
      "parents": [
        "bcb206cee8165e6bbad7fc053a4b5bd47b444644"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Mon May 18 15:39:23 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 18 15:39:23 2026"
      },
      "message": "Move unused import statement (#7974)\n\nThis produces a warning with `cargo make testdata`\n\n## Changelog\n\nN/A"
    },
    {
      "commit": "bcb206cee8165e6bbad7fc053a4b5bd47b444644",
      "tree": "ef7af5322fc368a1c9e46ee0e6607ffdca26f11a",
      "parents": [
        "8b444712e5117f64a94135b17106588f53ec4542"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Mon May 18 13:43:20 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 18 13:43:20 2026"
      },
      "message": "Clean up after #7964 (#7970)\n\nMainly addresses tests\n* Splits tests between source data provider (locale-specific tests) and\nthe component crate (behaviour-specific tests)\n* Returns `Result` instead of panicking in constructor\n* Tests edge cases like empty periods, single periods\n\n#7969\n\n## Changelog\n\nN/A\n\n---------\n\nCo-authored-by: Shane F. Carr \u003cshane@unicode.org\u003e"
    },
    {
      "commit": "8b444712e5117f64a94135b17106588f53ec4542",
      "tree": "0b9ad4303db988350d3c2f1c040bb763830fdf05",
      "parents": [
        "1f4c495cc17fc9979ce2dc4f19cc3b972a79f656"
      ],
      "author": {
        "name": "Manish Goregaokar",
        "email": "manishsmail@gmail.com",
        "time": "Thu May 14 18:28:52 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 14 18:28:52 2026"
      },
      "message": "Add DayPeriodRules data model and data (#7964)\n\nProgress on https://github.com/unicode-org/icu4x/issues/487\n\nThis is just the rules data, not the symbols, which in the current\ndesign will be stored in the same symbols struct.\n\n## Changelog: N/A\n\nChangelog will be written on final PR."
    },
    {
      "commit": "1f4c495cc17fc9979ce2dc4f19cc3b972a79f656",
      "tree": "2b5e4920cdebc2de6d9584421b79b9f017675f55",
      "parents": [
        "82bacb50da2fbdf2810fdf22f8c8278e7c4fe7ee"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Tue May 12 13:36:36 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 12 13:36:36 2026"
      },
      "message": "Update neo line segmenter to Unicode 17 (#7960)\n\n## Changelog\n\nN/A"
    },
    {
      "commit": "82bacb50da2fbdf2810fdf22f8c8278e7c4fe7ee",
      "tree": "6d5e771348ae31004ae94e823aec997930567a6d",
      "parents": [
        "6b0dae8024f57a827dc414a1ebbdfc4cc7932c4a"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue May 12 12:02:27 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 12 12:02:27 2026"
      },
      "message": "Bump fast-uri from 3.0.6 to 3.1.2 in /tools/web-demo (#7953)\n\nBumps [fast-uri](https://github.com/fastify/fast-uri) from 3.0.6 to\n3.1.2.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/fastify/fast-uri/releases\"\u003efast-uri\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.1.2\u003c/h2\u003e\n\u003ch2\u003e⚠️ Security Release\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix for \u003ca\nhref\u003d\"https://github.com/fastify/fast-uri/security/advisories/GHSA-v39h-62p7-jpjc\"\u003ehttps://github.com/fastify/fast-uri/security/advisories/GHSA-v39h-62p7-jpjc\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eHandle malformed fragment decoding as a parse error by \u003ca\nhref\u003d\"https://github.com/mcollina\"\u003e\u003ccode\u003e@​mcollina\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/fastify/fast-uri/pull/171\"\u003efastify/fast-uri#171\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/fastify/fast-uri/compare/v3.1.1...v3.1.2\"\u003ehttps://github.com/fastify/fast-uri/compare/v3.1.1...v3.1.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev3.1.1\u003c/h2\u003e\n\u003ch2\u003e⚠️ Security Release\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix for \u003ca\nhref\u003d\"https://github.com/fastify/fast-uri/security/advisories/GHSA-q3j6-qgpj-74h6\"\u003ehttps://github.com/fastify/fast-uri/security/advisories/GHSA-q3j6-qgpj-74h6\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild(deps-dev): bump tsd from 0.32.0 to 0.33.0 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/fastify/fast-uri/pull/148\"\u003efastify/fast-uri#148\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/checkout from 4 to 5 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/fastify/fast-uri/pull/149\"\u003efastify/fast-uri#149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(.npmrc): ignore scripts by \u003ca\nhref\u003d\"https://github.com/Fdawgs\"\u003e\u003ccode\u003e@​Fdawgs\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/fastify/fast-uri/pull/150\"\u003efastify/fast-uri#150\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): remove \u003ccode\u003e@​fastify/pre-commit\u003c/code\u003e by \u003ca\nhref\u003d\"https://github.com/Fdawgs\"\u003e\u003ccode\u003e@​Fdawgs\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/fastify/fast-uri/pull/151\"\u003efastify/fast-uri#151\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/setup-node from 4 to 5 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/fastify/fast-uri/pull/152\"\u003efastify/fast-uri#152\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci(ci): add concurrency config by \u003ca\nhref\u003d\"https://github.com/Fdawgs\"\u003e\u003ccode\u003e@​Fdawgs\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/fastify/fast-uri/pull/153\"\u003efastify/fast-uri#153\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/setup-node from 5 to 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/fastify/fast-uri/pull/154\"\u003efastify/fast-uri#154\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/checkout from 5 to 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/fastify/fast-uri/pull/156\"\u003efastify/fast-uri#156\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(license): standardise license notice by \u003ca\nhref\u003d\"https://github.com/Fdawgs\"\u003e\u003ccode\u003e@​Fdawgs\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/fastify/fast-uri/pull/159\"\u003efastify/fast-uri#159\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003estyle: remove trailing whitespace by \u003ca\nhref\u003d\"https://github.com/Fdawgs\"\u003e\u003ccode\u003e@​Fdawgs\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/fastify/fast-uri/pull/161\"\u003efastify/fast-uri#161\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: remove unused github files by \u003ca\nhref\u003d\"https://github.com/Tony133\"\u003e\u003ccode\u003e@​Tony133\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/fastify/fast-uri/pull/162\"\u003efastify/fast-uri#162\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update readme by \u003ca\nhref\u003d\"https://github.com/Tony133\"\u003e\u003ccode\u003e@​Tony133\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/fastify/fast-uri/pull/164\"\u003efastify/fast-uri#164\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump\nfastify/workflows/.github/workflows/plugins-ci-package-manager.yml from\n5 to 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/fastify/fast-uri/pull/165\"\u003efastify/fast-uri#165\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump fastify/workflows/.github/workflows/plugins-ci.yml\nfrom 5 to 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/fastify/fast-uri/pull/166\"\u003efastify/fast-uri#166\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump neostandard from 0.12.2 to 0.13.0 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/fastify/fast-uri/pull/167\"\u003efastify/fast-uri#167\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: add lock-threads workflow by \u003ca\nhref\u003d\"https://github.com/Fdawgs\"\u003e\u003ccode\u003e@​Fdawgs\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/fastify/fast-uri/pull/169\"\u003efastify/fast-uri#169\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/Tony133\"\u003e\u003ccode\u003e@​Tony133\u003c/code\u003e\u003c/a\u003e made\ntheir first contribution in \u003ca\nhref\u003d\"https://redirect.github.com/fastify/fast-uri/pull/162\"\u003efastify/fast-uri#162\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/fastify/fast-uri/compare/v3.1.0...v3.1.1\"\u003ehttps://github.com/fastify/fast-uri/compare/v3.1.0...v3.1.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev3.1.0\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eci: remove master branch support by \u003ca\nhref\u003d\"https://github.com/Fdawgs\"\u003e\u003ccode\u003e@​Fdawgs\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/fastify/fast-uri/pull/126\"\u003efastify/fast-uri#126\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(test) remove .gitkeep by \u003ca\nhref\u003d\"https://github.com/Fdawgs\"\u003e\u003ccode\u003e@​Fdawgs\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/fastify/fast-uri/pull/128\"\u003efastify/fast-uri#128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci(ci): set job permissions by \u003ca\nhref\u003d\"https://github.com/Fdawgs\"\u003e\u003ccode\u003e@​Fdawgs\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/fastify/fast-uri/pull/129\"\u003efastify/fast-uri#129\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: set permissions at workflow level by \u003ca\nhref\u003d\"https://github.com/Fdawgs\"\u003e\u003ccode\u003e@​Fdawgs\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/fastify/fast-uri/pull/131\"\u003efastify/fast-uri#131\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: set workflow permissions to read-only by default by \u003ca\nhref\u003d\"https://github.com/Fdawgs\"\u003e\u003ccode\u003e@​Fdawgs\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/fastify/fast-uri/pull/132\"\u003efastify/fast-uri#132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci(ci): restore job level permissions by \u003ca\nhref\u003d\"https://github.com/Fdawgs\"\u003e\u003ccode\u003e@​Fdawgs\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/fastify/fast-uri/pull/133\"\u003efastify/fast-uri#133\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump tsd from 0.31.2 to 0.32.0 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/fastify/fast-uri/pull/134\"\u003efastify/fast-uri#134\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci(ci): pin actions to commit-hash by \u003ca\nhref\u003d\"https://github.com/Fdawgs\"\u003e\u003ccode\u003e@​Fdawgs\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/fastify/fast-uri/pull/135\"\u003efastify/fast-uri#135\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eci: add node 24 to test matrix by \u003ca\nhref\u003d\"https://github.com/Fdawgs\"\u003e\u003ccode\u003e@​Fdawgs\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/fastify/fast-uri/pull/136\"\u003efastify/fast-uri#136\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\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/fastify/fast-uri/commit/919dd8ea7689fcc220d0d9b71307f5095e723ef9\"\u003e\u003ccode\u003e919dd8e\u003c/code\u003e\u003c/a\u003e\nBumped v3.1.2\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/fastify/fast-uri/commit/c65ba573714af6b8e19e481d9444c27bc4355d07\"\u003e\u003ccode\u003ec65ba57\u003c/code\u003e\u003c/a\u003e\nfixup: linting\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/fastify/fast-uri/commit/6c86c17c3d76fb93aa3700ec6c0fa00faeb97293\"\u003e\u003ccode\u003e6c86c17\u003c/code\u003e\u003c/a\u003e\nMerge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/fastify/fast-uri/commit/a95158ad308df4d92bbde4eba699ce5165e9f796\"\u003e\u003ccode\u003ea95158a\u003c/code\u003e\u003c/a\u003e\nHandle malformed fragment decoding without throwing (\u003ca\nhref\u003d\"https://redirect.github.com/fastify/fast-uri/issues/171\"\u003e#171\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/fastify/fast-uri/commit/cea547c91c6aae610041b17b75792ca4aa035a6d\"\u003e\u003ccode\u003ecea547c\u003c/code\u003e\u003c/a\u003e\nBumped v3.1.1\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/fastify/fast-uri/commit/876ce79b662c3e5015e4e7dffe6f37752ad34f35\"\u003e\u003ccode\u003e876ce79\u003c/code\u003e\u003c/a\u003e\nMerge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/fastify/fast-uri/commit/dcdf690b71a7bb3a19887ada65a9ab160d83bcc0\"\u003e\u003ccode\u003edcdf690\u003c/code\u003e\u003c/a\u003e\nci: add lock-threads workflow (\u003ca\nhref\u003d\"https://redirect.github.com/fastify/fast-uri/issues/169\"\u003e#169\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/fastify/fast-uri/commit/c860e6589b1ac346f66e114b4eadb9613768108c\"\u003e\u003ccode\u003ec860e65\u003c/code\u003e\u003c/a\u003e\nbuild(deps-dev): bump neostandard from 0.12.2 to 0.13.0 (\u003ca\nhref\u003d\"https://redirect.github.com/fastify/fast-uri/issues/167\"\u003e#167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/fastify/fast-uri/commit/9b4c6dc82fde0ca44e674403ece9185d85bb6d5f\"\u003e\u003ccode\u003e9b4c6dc\u003c/code\u003e\u003c/a\u003e\nbuild(deps): bump fastify/workflows/.github/workflows/plugins-ci.yml (\u003ca\nhref\u003d\"https://redirect.github.com/fastify/fast-uri/issues/166\"\u003e#166\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/fastify/fast-uri/commit/85d09a9f7aa76b32c2bb005a90a71e144c361d24\"\u003e\u003ccode\u003e85d09a9\u003c/code\u003e\u003c/a\u003e\nbuild(deps): bump\nfastify/workflows/.github/workflows/plugins-ci-package-mana...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/fastify/fast-uri/compare/v3.0.6...v3.1.2\"\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\u003dfast-uri\u0026package-manager\u003dnpm_and_yarn\u0026previous-version\u003d3.0.6\u0026new-version\u003d3.1.2)](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": "6b0dae8024f57a827dc414a1ebbdfc4cc7932c4a",
      "tree": "c11205150bee211e599f089f8d47d857346542f5",
      "parents": [
        "0fecd071c0ae9d920a3dfe7e7512e98771a95813"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue May 12 12:01:59 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 12 12:01:59 2026"
      },
      "message": "Bump minimatch and editorconfig in /tools/web-demo (#7963)\n\nBumps [minimatch](https://github.com/isaacs/minimatch) and\n[editorconfig](https://github.com/editorconfig/editorconfig-core-js).\nThese dependencies needed to be updated together.\nUpdates `minimatch` from 9.0.5 to 9.0.9\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/isaacs/minimatch/commit/8a10e473e2e0ff03c2d4de308f257093af2bce21\"\u003e\u003ccode\u003e8a10e47\u003c/code\u003e\u003c/a\u003e\n9.0.9\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/isaacs/minimatch/commit/c6f180636cebd4de2f9af7ef29ca4c9bf2eeef02\"\u003e\u003ccode\u003ec6f1806\u003c/code\u003e\u003c/a\u003e\nbrace-expansion@2\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/isaacs/minimatch/commit/446cfa3e2aa3ef45bd4a27fa4418221e158489f6\"\u003e\u003ccode\u003e446cfa3\u003c/code\u003e\u003c/a\u003e\n9.0.8\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/isaacs/minimatch/commit/8fa151ab95fd4e2acd6e1a81f10d02dc7c1098d3\"\u003e\u003ccode\u003e8fa151a\u003c/code\u003e\u003c/a\u003e\ndocs: add warning about ReDoS\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/isaacs/minimatch/commit/71b78a2a4cad3a40af08a39c065e71bbf69ea7f7\"\u003e\u003ccode\u003e71b78a2\u003c/code\u003e\u003c/a\u003e\nfix partial matching of globstar patterns\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/isaacs/minimatch/commit/2de496f6d9362dd92460f35ffa6ff8de2907244b\"\u003e\u003ccode\u003e2de496f\u003c/code\u003e\u003c/a\u003e\n9.0.7\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/isaacs/minimatch/commit/0d4616de9193bf1d359271662e92657bb51b2f75\"\u003e\u003ccode\u003e0d4616d\u003c/code\u003e\u003c/a\u003e\nlimit nested extglob recursion, flatten extglobs\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/isaacs/minimatch/commit/7117ef381e74deace1c62a74d2298c8fe61d10ca\"\u003e\u003ccode\u003e7117ef3\u003c/code\u003e\u003c/a\u003e\n9.0.6\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/isaacs/minimatch/commit/2418458b7fe82e0a1fd1a1b6f618c41c90b9848a\"\u003e\u003ccode\u003e2418458\u003c/code\u003e\u003c/a\u003e\nupdate deps, do not checkin dist\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/isaacs/minimatch/commit/1d1f531009d5e4a86083de37e5ef3f301e073986\"\u003e\u003ccode\u003e1d1f531\u003c/code\u003e\u003c/a\u003e\nupdate deps\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/isaacs/minimatch/compare/v9.0.5...v9.0.9\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `editorconfig` from 1.0.4 to 1.0.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/editorconfig/editorconfig-core-js/releases\"\u003eeditorconfig\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.0.7\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDon\u0027t use caching in publish by \u003ca\nhref\u003d\"https://github.com/hildjj\"\u003e\u003ccode\u003e@​hildjj\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/editorconfig/editorconfig-core-js/pull/155\"\u003eeditorconfig/editorconfig-core-js#155\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/editorconfig/editorconfig-core-js/compare/v1.0.6...v1.0.7\"\u003ehttps://github.com/editorconfig/editorconfig-core-js/compare/v1.0.6...v1.0.7\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.0.6\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTweak publish workflow by \u003ca\nhref\u003d\"https://github.com/hildjj\"\u003e\u003ccode\u003e@​hildjj\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/editorconfig/editorconfig-core-js/pull/154\"\u003eeditorconfig/editorconfig-core-js#154\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/editorconfig/editorconfig-core-js/compare/v1.0.5...v1.0.6\"\u003ehttps://github.com/editorconfig/editorconfig-core-js/compare/v1.0.5...v1.0.6\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.0.5\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: allow minor and patch versions of \u003ccode\u003eminimatch\u003c/code\u003e by \u003ca\nhref\u003d\"https://github.com/G-Rath\"\u003e\u003ccode\u003e@​G-Rath\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/editorconfig/editorconfig-core-js/pull/146\"\u003eeditorconfig/editorconfig-core-js#146\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/editorconfig/editorconfig-core-js/compare/v1.0.4...v1.0.5\"\u003ehttps://github.com/editorconfig/editorconfig-core-js/compare/v1.0.4...v1.0.5\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/editorconfig/editorconfig-core-js/commit/98df0661dcf1c551d69386c47e1f30277cae4543\"\u003e\u003ccode\u003e98df066\u003c/code\u003e\u003c/a\u003e\n1.0.7\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/editorconfig/editorconfig-core-js/commit/ea624be61dd002a40be84f6631782619c291b170\"\u003e\u003ccode\u003eea624be\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/editorconfig/editorconfig-core-js/issues/155\"\u003e#155\u003c/a\u003e\nfrom hildjj/no-cache\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/editorconfig/editorconfig-core-js/commit/9db359586e6022da1625d17f01d5c06cd8cde6b7\"\u003e\u003ccode\u003e9db3595\u003c/code\u003e\u003c/a\u003e\nDon\u0027t use caching in publish\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/editorconfig/editorconfig-core-js/commit/8039906f56cdf014273a4608b10c2f1d60d61291\"\u003e\u003ccode\u003e8039906\u003c/code\u003e\u003c/a\u003e\n1.0.6\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/editorconfig/editorconfig-core-js/commit/58ab73739397dd2b082b91a06de8923b15528a9e\"\u003e\u003ccode\u003e58ab737\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/editorconfig/editorconfig-core-js/issues/154\"\u003e#154\u003c/a\u003e\nfrom hildjj/publish-workflow\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/editorconfig/editorconfig-core-js/commit/10d395b326d5e56ac3a70ef32ab9f7cc25ef8d44\"\u003e\u003ccode\u003e10d395b\u003c/code\u003e\u003c/a\u003e\nTweak publish workflow\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/editorconfig/editorconfig-core-js/commit/71bc49f6df183645edb32eaf7612522a1db4d9b7\"\u003e\u003ccode\u003e71bc49f\u003c/code\u003e\u003c/a\u003e\n1.0.5\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/editorconfig/editorconfig-core-js/commit/c2c27422275cebab4ff9aea8130c5c26731747b9\"\u003e\u003ccode\u003ec2c2742\u003c/code\u003e\u003c/a\u003e\nMerge pull request \u003ca\nhref\u003d\"https://redirect.github.com/editorconfig/editorconfig-core-js/issues/146\"\u003e#146\u003c/a\u003e\nfrom G-Rath/relax-minimatch\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/editorconfig/editorconfig-core-js/commit/a3a6f236331f4af45c8d54250d70c50e9410cfa1\"\u003e\u003ccode\u003ea3a6f23\u003c/code\u003e\u003c/a\u003e\nGet ready for OIDC publishing\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/editorconfig/editorconfig-core-js/commit/497c2a8d120907cb224283ba752793c8ef1f6abc\"\u003e\u003ccode\u003e497c2a8\u003c/code\u003e\u003c/a\u003e\nci: stick with v3.30 and cleanup\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/editorconfig/editorconfig-core-js/compare/v1.0.4...v1.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 editorconfig since your current version.\u003c/p\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\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": "0fecd071c0ae9d920a3dfe7e7512e98771a95813",
      "tree": "fa9a7109a75af10e5f22df17121bfa6ad81dc2b0",
      "parents": [
        "bd160acec03a6d857cc6c533eea0e96017393179"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Tue May 12 10:01:59 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 12 10:01:59 2026"
      },
      "message": "Add specific iterator types neo segmenter; internal fixes (#7956)\n\nSee commit messages.\n\n## Changelog\n\nN/A"
    },
    {
      "commit": "bd160acec03a6d857cc6c533eea0e96017393179",
      "tree": "107c5a11e86dd1bfac740334f306202b229d6c49",
      "parents": [
        "e9575f7e4b5aeddfeeb87ada5d3e715950e8233e"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Tue May 12 10:01:00 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 12 10:01:00 2026"
      },
      "message": "Reduce test complexity following word break tailoring change (#7961)\n\nFollow-up to #7952\n\nUpdates the spec tests to load untailored data without complex handling.\n\nWord tailoring was removed in #7961.\n\n## Changelog\n\nN/A"
    },
    {
      "commit": "e9575f7e4b5aeddfeeb87ada5d3e715950e8233e",
      "tree": "292e80ad24c30ca3de686fc45d8426fcd19bd239",
      "parents": [
        "f89b1f22c07ccb78676e75f5f35f33c25e50d5a4"
      ],
      "author": {
        "name": "Shane F. Carr",
        "email": "shane@unicode.org",
        "time": "Tue May 12 09:01:29 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 12 09:01:29 2026"
      },
      "message": "Enable all features of zerofrom in playground; bump version (#7958)\n\n#7957\n\n## Changelog\n\n- zerofrom: enable all features in playground"
    },
    {
      "commit": "f89b1f22c07ccb78676e75f5f35f33c25e50d5a4",
      "tree": "015d8b4a041829c8b70796bd5a4b66bb5d1e2583",
      "parents": [
        "8966fccd1bec6c1fddf7fb5e377386da8c244f84"
      ],
      "author": {
        "name": "Manish Goregaokar",
        "email": "manishsmail@gmail.com",
        "time": "Mon May 11 16:43:17 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 11 16:43:17 2026"
      },
      "message": "Support sparse enums in zerovec::make_ule (#7940)\n\nWe currently ban sparse enums: enum discriminants cannot have \"gaps\"\nsince zerovec validation uses fast range checking. But that\u0027s not\nactually necessary, we can easily compile more complex enums down to\n`match`es over ranges (which LLVM is pretty good at optimizing). It\u0027s\nnot going to be _as_ fast, but zerovec validation is allowed to be that\ncomplex.\n\nThis also fixes a soundness issue found by @shnatsel (thanks!) where you\ncould create sparse enums without zerovec realizing.\n\n\nhttps://github.com/unicode-org/icu4x/security/advisories/GHSA-mx24-jf73-wh55\n\n## Changelog\n\nzerovec_derive: Support sparse enums in `zerovec::make_ule`."
    },
    {
      "commit": "8966fccd1bec6c1fddf7fb5e377386da8c244f84",
      "tree": "e77673c3f15d0550d54f4fb548174e0dd9827db7",
      "parents": [
        "e17daad2e19c348af7a4ed65aa09ac9ab91ce276"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Mon May 11 07:39:38 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 11 07:39:38 2026"
      },
      "message": "Update line break machine (#7954)"
    },
    {
      "commit": "e17daad2e19c348af7a4ed65aa09ac9ab91ce276",
      "tree": "3df28e3b118217a2d7d155e6766d31bacc642b86",
      "parents": [
        "cd6dc8843d87ba8309dc845ccdffac86c2ca6ccd"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Fri May 08 21:25:29 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 08 21:25:29 2026"
      },
      "message": "Add grapheme, sentence, word neo segmenters (#7951)\n\n## Changelog\n\nN/A"
    },
    {
      "commit": "cd6dc8843d87ba8309dc845ccdffac86c2ca6ccd",
      "tree": "b2d466b8a7725630ed0da865a3cbbebe92a9a390",
      "parents": [
        "06294d98851f563a222a720d0b098a481b61e785"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Fri May 08 15:54:27 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 08 15:54:27 2026"
      },
      "message": "Remove colon word break tailoring (#7952)\n\nThis was removed from ICU in\nhttps://unicode-org.atlassian.net/browse/ICU-22941, and from CLDR in\nhttps://github.com/unicode-org/cldr/pull/3973\n\n## Changelog\n\nicu_segmenter:\n* Align word segmenter behaviour with ICU4C and UAX#29"
    },
    {
      "commit": "06294d98851f563a222a720d0b098a481b61e785",
      "tree": "259fd54065e89ea335c269fcb733f3376da4d3a5",
      "parents": [
        "fa50198f6368afe8091f88521990b208059d0e8b"
      ],
      "author": {
        "name": "‍",
        "email": "aumetra@cryptolab.net",
        "time": "Fri May 08 15:15:18 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 08 15:15:18 2026"
      },
      "message": "Implement AsRef for Locale and LanguageIdentifier (#7923)\n\n\u003c!--\nThank you for your pull request to ICU4X!\n\nReminder: try to use [Conventional\nComments](https://conventionalcomments.org/) to make comments clearer.\n\nPlease see\nhttps://github.com/unicode-org/icu4x/blob/main/CONTRIBUTING.md for\ngeneral\ninformation on contributing to ICU4X.\n--\u003e\n\nThis PR adds `AsRef\u003cLanguageIdentifier\u003e` implementations for the\n`Locale` and `LanguageIdentifier` types of `icu_locale_core`.\n\nThe usecase for this change are trait bounds such as in\n`fluent-langneg`:\n\n```rust\npub fn foobar\u003c\n    \u0027a,\n    R: \u0027a + AsRef\u003cLanguageIdentifier\u003e,\n\u003e(\n    requested: \u0026[R],\n);\n```\n\nIn this example a pure `From\u003cT\u003e for LanguageIdentifier` impl is not\nsufficient and would necessitate cloning the value, even for just a\nread-only access.\n\nThis is essentially just adding back trait impls that were removed from\nwhen the crate was created from `icu_locid`.\n\n## Changelog\n\n\u003c!-- Please fill in according to documents/process/changelog.md --\u003e\n\nicu_locale_core: Add `AsRef\u003cLanguageIdentifier\u003e` impls\n- New impls: `AsRef\u003cLanguageIdentifier\u003e for Locale`,\n`AsRef\u003cLanguageIdentifier\u003e for LanguageIdentifier`"
    },
    {
      "commit": "fa50198f6368afe8091f88521990b208059d0e8b",
      "tree": "c27e11de1c7f781589d879c128ee622298012218",
      "parents": [
        "627134461087f4c35f72fc3ac6cd0ef19f3b33d1"
      ],
      "author": {
        "name": "Sidney Cammeresi",
        "email": "sac@readyset.io",
        "time": "Fri May 08 15:08:59 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 08 15:08:59 2026"
      },
      "message": "Fix off-by-one Unihan range boundary in identical-level sort key (#7928)\n\nICU4C said `prev\u003c0x4e00 || prev\u003e\u003d0xa000`, but the BOCSU port used an\ninclusive range, so U+A000 went into the wrong branch.\n\n## Changelog\n\nicu_collator: Fix generation of identical level sort keys containing the\ncodepoint U+A000."
    },
    {
      "commit": "627134461087f4c35f72fc3ac6cd0ef19f3b33d1",
      "tree": "bdcdbd31aad21385179d64a829c1b309c71b8cee",
      "parents": [
        "e7f505a50f346df3f76c996fe250fc9a825756f7"
      ],
      "author": {
        "name": "Sidney Cammeresi",
        "email": "sac@readyset.io",
        "time": "Fri May 08 15:05:28 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 08 15:05:28 2026"
      },
      "message": "Fix out-of-bounds panic in backward-secondary sort key path (#7927)\n\nWith collation \"fr-CA\" and an empty input string, the reverse-segment\nblock panicked due to arithmetic underflow. This is an error from the\nport. ICU4C uses signed integers and caught this condition because the\nindex went negative.\n\n## Changelog\n\nFix a possible panic when generating a sort key for a collation that\nuses backward secondary level."
    },
    {
      "commit": "e7f505a50f346df3f76c996fe250fc9a825756f7",
      "tree": "b878d74dc9f8071482cbc97646e0968ce8199487",
      "parents": [
        "dcb841c487635a498aa6b5e101be36dfc6ef3df7"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Fri May 08 11:11:06 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 08 11:11:06 2026"
      },
      "message": "Neo segmenter: use updated data files, generalise break status (#7949)\n\n## Changelog\n\nN/A"
    },
    {
      "commit": "dcb841c487635a498aa6b5e101be36dfc6ef3df7",
      "tree": "1b30b48b0ac88d58500e549634b507ccc83aa1d8",
      "parents": [
        "72a3d77db6fe276727eaf82002ded2541ad5deef"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Fri May 08 10:59:13 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 08 10:59:13 2026"
      },
      "message": "Add InCB to unicode set parser (#7950)\n\n## Changelog\n\nN/A"
    },
    {
      "commit": "72a3d77db6fe276727eaf82002ded2541ad5deef",
      "tree": "d55840b71614c8eca55e08a66278268ee5eefe94",
      "parents": [
        "1d670251307d45abdc605fa3d643252403612dfb"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Fri May 08 06:25:32 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 08 06:25:32 2026"
      },
      "message": "Full API for neo `LineSegmenter`, complex handling, tests (#7942)\n\n## Changelog\n\nicu_segmenter:\n* add experimental `neo::LineSegmenter`"
    },
    {
      "commit": "1d670251307d45abdc605fa3d643252403612dfb",
      "tree": "861547df99792e1a9437932117f1c6cdcc1cdb99",
      "parents": [
        "ad0697a918bca1d9867011b015a0e869e8714aff"
      ],
      "author": {
        "name": "Manish Goregaokar",
        "email": "manishsmail@gmail.com",
        "time": "Thu May 07 16:00:22 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 07 16:00:22 2026"
      },
      "message": "Fix weekday skeleton matching for Finnish (standalone weekday formats) (#7945)\n\nFixes https://github.com/unicode-org/icu4x/issues/5892\n\n\nThis took a fair amount of time to debug, because the data I was looking\nat (latest CLDR) did not match the data ICU4X saw (CLDR 48.2). This had\nchanged in https://github.com/unicode-org/cldr/pull/5524: CLDR no longer\nuses `c` in skeletons. ICU4X was ignoring `c`.\n\nThe main change here is to transform `c` to `E` in datagen (which is\nwhat https://github.com/unicode-org/cldr/pull/5524 does too), and then\nwarn if we ever see both.\n\n\nThis will likely be fixed entirely by a future CLDR upgrade. It\u0027s\nquestionable whether the code in this PR is necessary; if people think\nwe should just wait for the release we can close this PR for now and\nresurrect its tests when we upgrade CLDR. At least there will be\nbreadcrumbs for anyone looking at #5892 in the future.\n\n## Changelog\n\nicu_datetime: Correctly handle CLDR 48.2 data with \"c\" in the skeletons.\n\n---------\n\nCo-authored-by: Shane F. Carr \u003cshane@unicode.org\u003e"
    },
    {
      "commit": "ad0697a918bca1d9867011b015a0e869e8714aff",
      "tree": "055917a1a288bb4f94dfbd7666216b17ab5e29b0",
      "parents": [
        "3d9bd6dbdbeb5b6fa39c9e3105ec6526b152d21b"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Wed May 06 21:08:31 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 06 21:08:31 2026"
      },
      "message": "Make segmenter tests readable (#7943)\n\nI don\u0027t want to stare at lists of indices when debugging the new\nimplementation.\n\n## Changelog\n\nN/A"
    },
    {
      "commit": "3d9bd6dbdbeb5b6fa39c9e3105ec6526b152d21b",
      "tree": "95a837be10df5b644e062b415d22196388768bb6",
      "parents": [
        "9b7ffb4a11325fe1ca7efa8141cf49f462af4c7b"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Wed May 06 10:26:22 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 06 10:26:22 2026"
      },
      "message": "Evolve `CollationSpecialPrimariesV1` data struct (#7872)\n\nNow that we can change the baked representation, this evolves the data\nstruct while keeping the serialized representation stable, removing the\nhacks we had added for this.\n\n## Changelog\n\n`icu_collator`: Changes to the `CollationSpecialPrimariesV1` data struct"
    },
    {
      "commit": "9b7ffb4a11325fe1ca7efa8141cf49f462af4c7b",
      "tree": "1bd154db75538b497a2383fdba9c80dd3ecd059f",
      "parents": [
        "f75a9f22c80b4f45d95b68942998a6da4d49ce6b"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Wed May 06 10:14:52 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 06 10:14:52 2026"
      },
      "message": "Use grapheme segmentation for `LineBreakStrictness::Anywhere` (#7941)\n\n#4771 #7932 \n\n## Changelog\n\nicu_segmenter:\n* Use grapheme segmentation for `LineBreakStrictness:Anywhere`"
    },
    {
      "commit": "f75a9f22c80b4f45d95b68942998a6da4d49ce6b",
      "tree": "6fa229bedea5f8cbd1b867cd7e711ac3947deef1",
      "parents": [
        "9b08712e425b0002910e32fc4e8e92560d9a9a69"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Wed May 06 09:37:30 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 06 09:37:30 2026"
      },
      "message": "Segmenter proof of concept (#7898)\n\nThis uses the data from\nhttps://github.com/unicode-org/unicodetools/pull/1321.\n\n## Changelog\n\nN/A"
    },
    {
      "commit": "9b08712e425b0002910e32fc4e8e92560d9a9a69",
      "tree": "1b8610444b5fc2a33ce20f4ef7d4d281e9897ae0",
      "parents": [
        "162257d91c3d37e7babe3b01855d059a9bf0a8a0"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Tue May 05 15:21:37 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 05 15:21:37 2026"
      },
      "message": "Rename fake `ucd/unihan` directory to `ucd/Unihan` (#7939)\n\nThis mirrors the naming in\nhttps://github.com/unicode-org/unicodetools/tree/main/unicodetools/data/ucd/dev\n\n## Changelog\n\nN/A"
    },
    {
      "commit": "162257d91c3d37e7babe3b01855d059a9bf0a8a0",
      "tree": "39dad74d3d839b5ec3d7fc835ca0f70cc031cb49",
      "parents": [
        "b191a7afdd2cd5ff4b6ba1b654946f650661e62b"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Tue May 05 14:24:50 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 05 14:24:50 2026"
      },
      "message": "Validate CLDR ethiopic/ethiopic-amete-alem agreement (#7938)\n\nFixes #7925\n\n```\nethiopic/ethiopic-amete-alem data mismatch: ff-Adlm\nethiopic/ethiopic-amete-alem data mismatch: ff-Adlm-BF\nethiopic/ethiopic-amete-alem data mismatch: ff-Adlm-CM\nethiopic/ethiopic-amete-alem data mismatch: ff-Adlm-GH\nethiopic/ethiopic-amete-alem data mismatch: ff-Adlm-GM\nethiopic/ethiopic-amete-alem data mismatch: ff-Adlm-GW\nethiopic/ethiopic-amete-alem data mismatch: ff-Adlm-LR\nethiopic/ethiopic-amete-alem data mismatch: ff-Adlm-MR\nethiopic/ethiopic-amete-alem data mismatch: ff-Adlm-NE\nethiopic/ethiopic-amete-alem data mismatch: ff-Adlm-NG\nethiopic/ethiopic-amete-alem data mismatch: ff-Adlm-SL\nethiopic/ethiopic-amete-alem data mismatch: ff-Adlm-SN\nethiopic/ethiopic-amete-alem data mismatch: sc\n```\n\n## Changelog\n\nN/A"
    },
    {
      "commit": "b191a7afdd2cd5ff4b6ba1b654946f650661e62b",
      "tree": "973f0bc0d0d9f0a06144e1936c743fde957cf47f",
      "parents": [
        "4570575704095c844cfe806a217f473a535adbd0"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Tue May 05 13:57:39 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 05 13:57:39 2026"
      },
      "message": "Simplify segmenter implementations (#7937)\n\nThe goal here is to reduce the difference between the line segmenter\nimplementations and the other segmenters, simplify code, and isolate\ntailoring logic.\n\nBest reviewed commit by commit.\n\n## Changelog\n\nN/A"
    },
    {
      "commit": "4570575704095c844cfe806a217f473a535adbd0",
      "tree": "eaccba69de9998d737cd5f8408d44e886f89136d",
      "parents": [
        "8e78984eea0dfbfaf563270d1c71a5f1b2e6407c"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Tue May 05 09:14:56 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 05 09:14:56 2026"
      },
      "message": "Move `unicodeset_parse` to `icu_properties` (#7935)\n\n#3959\n\n## Changelog\n\nicu_properties:\n* Add experimental UTS#35 Unicode set parsing"
    },
    {
      "commit": "8e78984eea0dfbfaf563270d1c71a5f1b2e6407c",
      "tree": "1133f2c5a14094121dc5931d777b15d38455dbb0",
      "parents": [
        "7b557f59317275a74e1e96f48f04b5140ac6a22b"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Mon May 04 18:01:36 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 04 18:01:36 2026"
      },
      "message": "Validate line break property constants (#7934)\n\nThe way datagen currently derives the numeric value for a property is by\nthe ordering of the property in `line.toml`. This seems extremely\nbrittle, and should be validated against the constants we use at\nruntime.\n\n#1637\n\n## Changelog\n\nN/A"
    },
    {
      "commit": "7b557f59317275a74e1e96f48f04b5140ac6a22b",
      "tree": "2134ea14914e3bf785275a63e2ee8f58a5177e95",
      "parents": [
        "d0644e15069a8203013d268793c9aaf58f6e1e01"
      ],
      "author": {
        "name": "Mohammed Afreed baig",
        "email": "mohammedafreedbaig47@gmail.com",
        "time": "Fri May 01 17:12:50 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 01 17:12:50 2026"
      },
      "message": "Add regression tests for locale default hour cycle (Fixes #594) (#7652)\n\nFixes #594\n\n## Changelog\nAdd regression tests for `components::Bag::hour_cycle` resolution across\nlocales."
    },
    {
      "commit": "d0644e15069a8203013d268793c9aaf58f6e1e01",
      "tree": "c387630737749a39ef0239fe7151cac857b1de2d",
      "parents": [
        "56ebf1ad83d35d75f30792a3803579f2abb7ec73"
      ],
      "author": {
        "name": "Manish Goregaokar",
        "email": "manishsmail@gmail.com",
        "time": "Wed Apr 29 15:57:48 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 29 15:57:48 2026"
      },
      "message": "Support numbering system overrides in datetime (#7905)\n\nFixes #1225\n\nMultiple of these are used in a year or day context, so the original\nsuggestion of \"generate string month data for these\" does not work. In\ntheory, we _could_ handle most of these in one-off ways: `jpnyear` is a\nsimple hardcoded `if`, the month-only ones like romanlow can go in data,\netc. But since we need this infrastructure anyway for hanidec/hebr\nyears, I don\u0027t think it\u0027s worth implementing this three different ways.\n\nThis is a pretty nontrivial PR that was also almost entirely\nagent-written. I spent a lot of work talking to the agent, linking it to\ndocs, and getting it to diagnose various issues. In the actual code,\nmost of my work was minor cleanups and reorganizing the `jj` history.\n\n(I used an agent instead of doing this myself because I am attending UTC\nthis week and I cannot do focused coding work but I can prompt agents)\n\nThe agent was pretty good at doing its own printf debugging to figure\nout the source of various bugs. The initial naïve implementation of just\napplying the preexisting pattern code was insufficient, there were a\nnumber of bugs, and it took a lot of back-and-forth with the agent to\ndiagnose them. There were a lot of cycles of the agent implementing an\nincorrect fix (e.g. by force-overriding things in datagen) and me saying\nwe don\u0027t want to do that, undoing the change, and trying again with more\nprompting.\n\nA thing I did not do (that the agent wanted to do) was support explicit\nuser-driven overrides, like `he-u-calendar-hebrew-nu-hebr`. I didn\u0027t do\nthis because I\u0027d need to support `hanidays` for a wider range. However,\nit\u0027s not a complicated change to make.\n\n\u003cs\u003eI have been reviewing this code extensively as I go on. However, this\nis a draft PR because I haven\u0027t done a proper end to end review. I also\nwant to triple check the hebrew code against sources: it matches my\nunderstanding of the formatting but it might not be 100% correct.\u003c/s\u003e\n\n## Changelog\n\nicu_datetime: Support numbering system overrides for datetime patterns\nwhen found in data\n\n---------\n\nCo-authored-by: Robert Bastian \u003c4706271+robertbastian@users.noreply.github.com\u003e\nCo-authored-by: Shane F. Carr \u003cshane@unicode.org\u003e"
    },
    {
      "commit": "56ebf1ad83d35d75f30792a3803579f2abb7ec73",
      "tree": "996e4e8ef4031a1abacd7c70532331b1c6c662ce",
      "parents": [
        "614d28f965b14765f7fd64512a81ecce11db5076"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Wed Apr 29 10:10:53 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 29 10:10:53 2026"
      },
      "message": "Generate properties from the UCD (#7904)\n\n#4602 \n\n## Changelog\n\n`icu_provider_source`:\n* Compute properties directly from the `unicode` data source, instead of\nfrom `icuexport`"
    },
    {
      "commit": "614d28f965b14765f7fd64512a81ecce11db5076",
      "tree": "ee314191c798e453a4def6bab96d14d52a2c9b3c",
      "parents": [
        "725265385d59a462c021920aee543a9c96191c0b"
      ],
      "author": {
        "name": "Shane F. Carr",
        "email": "shane@unicode.org",
        "time": "Tue Apr 28 22:25:25 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 28 22:25:25 2026"
      },
      "message": "Add locale expander tests for private use script and region (#7919)\n\n## Changelog\n\nN/A (test-only)"
    },
    {
      "commit": "725265385d59a462c021920aee543a9c96191c0b",
      "tree": "b391c31f495650490e5bce63b45f752a79b9e061",
      "parents": [
        "c4e50032adb3c073c69f996ab1900d58e6646c2a"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Tue Apr 28 10:00:27 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 28 10:00:27 2026"
      },
      "message": "Replace unihan and ucd by a unified unicode data source (#7882)\n\nhttps://unicode.org/Public/{version} represents a single data source. I\nthink the confusion here was that this data source *contains* some zip\nfiles, whereas so far we only had data sources that are available as zip\nfiles or directories of text files.\n\n## Changelog\n\n`icu_provider_source`: Deprecated the unihan data source"
    },
    {
      "commit": "c4e50032adb3c073c69f996ab1900d58e6646c2a",
      "tree": "7bd80d56097e833f3d87691923db7a6b51308961",
      "parents": [
        "7bf2f7ab8a9b39a36767316fbd79f468bf2e278f"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Apr 27 10:55:31 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 27 10:55:31 2026"
      },
      "message": "Bump postcss from 8.5.3 to 8.5.12 in /tools/web-demo (#7917)\n\nBumps [postcss](https://github.com/postcss/postcss) from 8.5.3 to\n8.5.12.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/postcss/postcss/releases\"\u003epostcss\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.5.12\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed reading any file via user-generated CSS.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eopts.unsafeMap\u003c/code\u003e to disable checks.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.5.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed nested brackets parsing performance (by \u003ca\nhref\u003d\"https://github.com/offset\"\u003e\u003ccode\u003e@​offset\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.5.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed XSS via unescaped \u003ccode\u003e\u0026lt;/style\u0026gt;\u003c/code\u003e in non-bundler\ncases (by \u003ca\nhref\u003d\"https://github.com/TharVid\"\u003e\u003ccode\u003e@​TharVid\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.5.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSpeed up source map encoding paring in case of the error.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.5.8\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eProcessor#version\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.5.7\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved source map annotation cleaning performance (by CodeAnt\nAI).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.5.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eContainerWithChildren\u003c/code\u003e type discriminating (by \u003ca\nhref\u003d\"https://github.com/Goodwine\"\u003e\u003ccode\u003e@​Goodwine\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.5.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003epackage.json\u003c/code\u003e→\u003ccode\u003eexports\u003c/code\u003e compatibility\nwith some tools (by \u003ca\nhref\u003d\"https://github.com/JounQin\"\u003e\u003ccode\u003e@​JounQin\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.5.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed Parcel compatibility issue (by \u003ca\nhref\u003d\"https://github.com/git-sumitchaudhary\"\u003e\u003ccode\u003e@​git-sumitchaudhary\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/postcss/postcss/blob/main/CHANGELOG.md\"\u003epostcss\u0027s\nchangelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.5.12\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed reading any file via user-generated CSS.\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eopts.unsafeMap\u003c/code\u003e to disable checks.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.5.11\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed nested brackets parsing performance (by \u003ca\nhref\u003d\"https://github.com/offset\"\u003e\u003ccode\u003e@​offset\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.5.10\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed XSS via unescaped \u003ccode\u003e\u0026lt;/style\u0026gt;\u003c/code\u003e in non-bundler\ncases (by \u003ca\nhref\u003d\"https://github.com/TharVid\"\u003e\u003ccode\u003e@​TharVid\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.5.9\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSpeed up source map encoding paring in case of the error.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.5.8\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eProcessor#version\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.5.7\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved source map annotation cleaning performance (by CodeAnt\nAI).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.5.6\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eContainerWithChildren\u003c/code\u003e type discriminating (by \u003ca\nhref\u003d\"https://github.com/Goodwine\"\u003e\u003ccode\u003e@​Goodwine\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.5.5\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003epackage.json\u003c/code\u003e→\u003ccode\u003eexports\u003c/code\u003e compatibility\nwith some tools (by \u003ca\nhref\u003d\"https://github.com/JounQin\"\u003e\u003ccode\u003e@​JounQin\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e8.5.4\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed Parcel compatibility issue (by \u003ca\nhref\u003d\"https://github.com/git-sumitchaudhary\"\u003e\u003ccode\u003e@​git-sumitchaudhary\u003c/code\u003e\u003c/a\u003e).\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/postcss/postcss/commit/9bc81c48f054a630c9a2e3868263b7ad4fc15013\"\u003e\u003ccode\u003e9bc81c4\u003c/code\u003e\u003c/a\u003e\nRelease 8.5.12 version\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/postcss/postcss/commit/85c4d7dab830be366f8a96047f9e5b7944e101d8\"\u003e\u003ccode\u003e85c4d7d\u003c/code\u003e\u003c/a\u003e\nAnother try to fix coverage\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/postcss/postcss/commit/94484cae6d4308167939f2ac888d166bd80dff01\"\u003e\u003ccode\u003e94484ca\u003c/code\u003e\u003c/a\u003e\nTry to fix coverage\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/postcss/postcss/commit/c64b7488d2731dfa16213739b42c34faf5a9eba3\"\u003e\u003ccode\u003ec64b748\u003c/code\u003e\u003c/a\u003e\nLoad only .map source maps\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/postcss/postcss/commit/aaec7b78b3ce2792585b4b300ef1bd5dd5b3e8ad\"\u003e\u003ccode\u003eaaec7b7\u003c/code\u003e\u003c/a\u003e\nAvoid throwing JSON parsing errors for non-JSON source maps\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/postcss/postcss/commit/233fb264ea4c37f9e2d7b64b2726e6d23fd02327\"\u003e\u003ccode\u003e233fb26\u003c/code\u003e\u003c/a\u003e\nMention original author of the solution\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/postcss/postcss/commit/2502f750307acde733a39f9dfd4ef3cf6c6b734d\"\u003e\u003ccode\u003e2502f75\u003c/code\u003e\u003c/a\u003e\nRelease 8.5.11 version\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/postcss/postcss/commit/5ca19019495b3fa08205f5fd2eeed57892f9fa3d\"\u003e\u003ccode\u003e5ca1901\u003c/code\u003e\u003c/a\u003e\nSpeed up parsing many nested brackets\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/postcss/postcss/commit/42b5337dd7e2fa9a03566495cfad2737eb19e712\"\u003e\u003ccode\u003e42b5337\u003c/code\u003e\u003c/a\u003e\nUpdate dependencies\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/postcss/postcss/commit/7e36e153d075ef56ebc352f298b65f646c700a06\"\u003e\u003ccode\u003e7e36e15\u003c/code\u003e\u003c/a\u003e\nCache node.raws locally in Stringifier hot methods\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/postcss/postcss/compare/8.5.3...8.5.12\"\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\u003dpostcss\u0026package-manager\u003dnpm_and_yarn\u0026previous-version\u003d8.5.3\u0026new-version\u003d8.5.12)](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": "7bf2f7ab8a9b39a36767316fbd79f468bf2e278f",
      "tree": "00b7653278e77b0373ad6edf81f9dc1675e09858",
      "parents": [
        "3b55a3ee7e2b879a83065ceb7d1540e44688b548"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Apr 27 10:49:38 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 27 10:49:38 2026"
      },
      "message": "Bump rustls-webpki from 0.103.10 to 0.103.13 (#7914)\n\nBumps [rustls-webpki](https://github.com/rustls/webpki) from 0.103.10 to\n0.103.13.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/rustls/webpki/releases\"\u003erustls-webpki\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.103.13\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eFix reachable panic in parsing a CRL\u003c/strong\u003e. This was\nreported to us as \u003ca\nhref\u003d\"https://github.com/rustls/webpki/security/advisories/GHSA-82j2-j2ch-gfr8\"\u003eGHSA-82j2-j2ch-gfr8\u003c/a\u003e.\nUsers who don\u0027t use CRLs are not affected.\u003c/li\u003e\n\u003cli\u003eFor name constraints on URI names, we incorrectly processed excluded\nsubtrees in a way which inverted the desired meaning. See \u003ca\nhref\u003d\"https://redirect.github.com/rustls/webpki/pull/471\"\u003erustls/webpki#471\u003c/a\u003e.\nThis was a case missing in the fix for \u003ca\nhref\u003d\"https://github.com/advisories/GHSA-965h-392x-2mh5\"\u003ehttps://github.com/advisories/GHSA-965h-392x-2mh5\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eActually fail closed for URI matching against excluded subtrees by\n\u003ca href\u003d\"https://github.com/djc\"\u003e\u003ccode\u003e@​djc\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/rustls/webpki/pull/473\"\u003erustls/webpki#473\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare 0.103.13 by \u003ca\nhref\u003d\"https://github.com/ctz\"\u003e\u003ccode\u003e@​ctz\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/rustls/webpki/pull/474\"\u003erustls/webpki#474\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/rustls/webpki/compare/v/0.103.12...v/0.103.13\"\u003ehttps://github.com/rustls/webpki/compare/v/0.103.12...v/0.103.13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.103.12\u003c/h2\u003e\n\u003cp\u003eThis release fixes two bugs in name constraint enforcement:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eGHSA-965h-392x-2mh5\u003c/strong\u003e: name constraints for URI names\nwere ignored and therefore accepted. URI name constraints are now\nrejected unconditionally. Note this library does not provide an API for\nasserting URI names, and URI name constraints are otherwise not\nimplemented.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eGHSA-xgp8-3hg3-c2mh\u003c/strong\u003e: permitted subtree name\nconstraints for DNS names were accepted for certificates asserting a\nwildcard name. This was incorrect because, given a name constraint of\n\u003ccode\u003eaccept.example.com\u003c/code\u003e, \u003ccode\u003e*.example.com\u003c/code\u003e could\nfeasibly allow a name of \u003ccode\u003ereject.example.com\u003c/code\u003e which is\noutside the constraint. This is very similar to \u003ca\nhref\u003d\"https://go.dev/issue/76442\"\u003eCVE-2025-61727\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSince name constraints are restrictions on otherwise properly-issued\ncertificates, these bugs are reachable only after signature verification\nand require misissuance to exploit.\u003c/p\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePrepare 0.103.12 by \u003ca\nhref\u003d\"https://github.com/djc\"\u003e\u003ccode\u003e@​djc\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/rustls/webpki/pull/470\"\u003erustls/webpki#470\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/rustls/webpki/compare/v/0.103.11...v/0.103.12\"\u003ehttps://github.com/rustls/webpki/compare/v/0.103.11...v/0.103.12\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.103.11\u003c/h2\u003e\n\u003cp\u003eIn response to \u003ca\nhref\u003d\"https://redirect.github.com/rustls/webpki/issues/464\"\u003e#464\u003c/a\u003e,\nwe\u0027ve slightly relaxed requirements for\n\u003ccode\u003eanchor_from_trust_cert()\u003c/code\u003e to ignore unknown extensions even\nif they\u0027re marked as critical. This only affects parsing a\n\u003ccode\u003eTrustAnchor\u003c/code\u003e from DER, for which most extensions are ignored\nanyway.\u003c/p\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBackport parsing trust anchors with unknown critical extensions to\n0.103 by \u003ca href\u003d\"https://github.com/djc\"\u003e\u003ccode\u003e@​djc\u003c/code\u003e\u003c/a\u003e in \u003ca\nhref\u003d\"https://redirect.github.com/rustls/webpki/pull/466\"\u003erustls/webpki#466\u003c/a\u003e\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/rustls/webpki/commit/2879b2ce7a476181ac3050f73fe0835f04728e86\"\u003e\u003ccode\u003e2879b2c\u003c/code\u003e\u003c/a\u003e\nPrepare 0.103.13\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/rustls/webpki/commit/2c49773d823f48c87db30db7a66c25993c847007\"\u003e\u003ccode\u003e2c49773\u003c/code\u003e\u003c/a\u003e\nImprove tests for padding of \u003ccode\u003eBitStringFlags\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/rustls/webpki/commit/4e3c0b393a7bfb9cbe6dcdc8309cbadf8ee00c51\"\u003e\u003ccode\u003e4e3c0b3\u003c/code\u003e\u003c/a\u003e\nCorrect validation of BIT STRING constraints\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/rustls/webpki/commit/39c91d2525a542a7f651a1a62c3462e8115cc39e\"\u003e\u003ccode\u003e39c91d2\u003c/code\u003e\u003c/a\u003e\nActually fail closed for URI matching against excluded subtrees\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/rustls/webpki/commit/27131d476e2b68a537e629d6d012bef8dad6efd3\"\u003e\u003ccode\u003e27131d4\u003c/code\u003e\u003c/a\u003e\nBump version to 0.103.12\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/rustls/webpki/commit/6ecb8769cde2246e761e058709421c14a7dee6b1\"\u003e\u003ccode\u003e6ecb876\u003c/code\u003e\u003c/a\u003e\nClean up stuttery enum variant names\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/rustls/webpki/commit/318b3e6e03ca2bc21600ca6bb0d0c6439b9e6aeb\"\u003e\u003ccode\u003e318b3e6\u003c/code\u003e\u003c/a\u003e\nIgnore wildcard labels when matching name constraints\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/rustls/webpki/commit/12196229a327d3d670798688254bd3ea24aba24b\"\u003e\u003ccode\u003e1219622\u003c/code\u003e\u003c/a\u003e\nRewrite constraint matching to avoid permissive catch-all branch\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/rustls/webpki/commit/57bc62ce538c2d0d31d44b3eb8c58e6a0a764b47\"\u003e\u003ccode\u003e57bc62c\u003c/code\u003e\u003c/a\u003e\nBump version to 0.103.11\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/rustls/webpki/commit/d0fa01ee0a76b7585c13ec43de5854955146ffef\"\u003e\u003ccode\u003ed0fa01e\u003c/code\u003e\u003c/a\u003e\nAllow parsing trust anchors with unknown criticial extensions\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/rustls/webpki/compare/v/0.103.10...v/0.103.13\"\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\u003drustls-webpki\u0026package-manager\u003dcargo\u0026previous-version\u003d0.103.10\u0026new-version\u003d0.103.13)](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": "3b55a3ee7e2b879a83065ceb7d1540e44688b548",
      "tree": "60be6aa91b657a8715ef03d74f953e036cece4ec",
      "parents": [
        "e85cdb2f9cfe97d279e267ac7aa668a220f9031f"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Fri Apr 24 17:57:40 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 24 17:57:40 2026"
      },
      "message": "Check source data diffs in CI (#7908)\n\n## Changelog\n\nN/A\n\n---------\n\nCo-authored-by: Copilot \u003ccopilot@github.com\u003e"
    },
    {
      "commit": "e85cdb2f9cfe97d279e267ac7aa668a220f9031f",
      "tree": "16ca4a38dc5165621ebbffb1af9e635f1cfab055",
      "parents": [
        "7d4516e0268850c152ad3890faee056caa824433"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Thu Apr 23 22:52:09 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 23 22:52:09 2026"
      },
      "message": "Simplify test sources (#7906)\n\nSplit from #7882 \n\n## Changelog\n\nN/A"
    },
    {
      "commit": "7d4516e0268850c152ad3890faee056caa824433",
      "tree": "5ca8003feaae3fb3f679fb05b2299706830e746e",
      "parents": [
        "3ba5bf6f33ac6d2fe885ce9f3abd8eaf00affde6"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Thu Apr 23 18:49:07 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 23 18:49:07 2026"
      },
      "message": "TZDB 2026b (#7907)\n\nYay no change.\n\n## Changelog\n\nN/A"
    },
    {
      "commit": "3ba5bf6f33ac6d2fe885ce9f3abd8eaf00affde6",
      "tree": "2a30df574232a5795b44fa6eb69735a3bd9a5ef5",
      "parents": [
        "4de9ebc8f0470a780ba306cdf57e0147e5d27eea"
      ],
      "author": {
        "name": "Shane F. Carr",
        "email": "shane@unicode.org",
        "time": "Wed Apr 22 16:41:09 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 22 16:41:09 2026"
      },
      "message": "Update docs on DataProvider support for forking providers (#7903)"
    },
    {
      "commit": "4de9ebc8f0470a780ba306cdf57e0147e5d27eea",
      "tree": "51b42eaa6f27dfc548a3226007af1e2c47ba3be2",
      "parents": [
        "2ad95ab002eda0862f00cb5e9401b9751c8f39d7"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Wed Apr 22 09:20:22 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 22 09:20:22 2026"
      },
      "message": "Add `CollatorBorrowed::new_root` (#7893)\n\nReplaces #7657 \n\nFixes https://github.com/unicode-org/icu4x/issues/6633\n\nThe first commit makes the options resolution `const` by moving it out\nof data loading. The second commit (which is optional) moves the\n`lithuanian_dot_above` option into the resolved options as well. The\nlast commit then uses the const options resolution for `new_root`.\n\n## Changelog\n\n`icu_collator`:\n* Add `CollatorBorrowed::new_root`"
    },
    {
      "commit": "2ad95ab002eda0862f00cb5e9401b9751c8f39d7",
      "tree": "abc53ece99f453add1ddff664ffe8889e6ed8aa1",
      "parents": [
        "a9e495b98679b6ade629da2a513097c7add913ef"
      ],
      "author": {
        "name": "Manish Goregaokar",
        "email": "manishsmail@gmail.com",
        "time": "Wed Apr 22 04:12:37 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 22 04:12:37 2026"
      },
      "message": "Test various date construction patterns (#7899)\n\nFixes https://github.com/unicode-org/icu4x/issues/7853\n\nThe code here is entirely agent generated, but done step by step with\nheavy prompting on strategies to use. I like the final result quite a\nbit.\n\n## Changelog (N/A)"
    },
    {
      "commit": "a9e495b98679b6ade629da2a513097c7add913ef",
      "tree": "32231152d8a6abfe4656e9290526f57e33467144",
      "parents": [
        "8417390964d260ba260d8315316478c98cc9e5b2"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Tue Apr 21 20:56:22 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 21 20:56:22 2026"
      },
      "message": "Update box transmutes (#7875)\n\nSee #7871 \n\n## Changelog\n\nN/A\n\n---------\n\nCo-authored-by: Manish Goregaokar \u003cmanishsmail@gmail.com\u003e"
    },
    {
      "commit": "8417390964d260ba260d8315316478c98cc9e5b2",
      "tree": "4daee2d65ae9deb08f028990e93e3f68834b2271",
      "parents": [
        "0ab9635d98c2b598ffe66b69de1a513ae6b2f3a0"
      ],
      "author": {
        "name": "Shane F. Carr",
        "email": "shane@unicode.org",
        "time": "Tue Apr 21 19:31:52 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 21 19:31:52 2026"
      },
      "message": "Allow slashes in DataMarkerAttributes (#7890)\n\nThis is for multi-layered attributes, like \"FR/long\", which we may want for DisplayNames.\n\n## Changelog\n\nicu_provider: allow slashes in DataMarkerAttributes\n\n---------\n\nCo-authored-by: Gemini \u003c176961590+gemini-code-assist[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "0ab9635d98c2b598ffe66b69de1a513ae6b2f3a0",
      "tree": "387c4d0f810ee08044a21f9c7fca266b722747d0",
      "parents": [
        "d25cbd384245bf489b9a15124878b4d158f9c526"
      ],
      "author": {
        "name": "Manish Goregaokar",
        "email": "manishsmail@gmail.com",
        "time": "Tue Apr 21 15:53:41 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 21 15:53:41 2026"
      },
      "message": "Followup fixes to safety PR (#7897)\n\nFollowup for Robert\u0027s comments on\nhttps://github.com/unicode-org/icu4x/pull/7887\n\n## Changelog (N/A)"
    },
    {
      "commit": "d25cbd384245bf489b9a15124878b4d158f9c526",
      "tree": "15e987d42d3bcf4f643a7cc01ad1ba54ed322564",
      "parents": [
        "6826a8f10a4e1e85d15fbbdc527d7b72a63f6467"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Tue Apr 21 15:03:51 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 21 15:03:51 2026"
      },
      "message": "Add EastAsianWidth support to unicode sets (#7896)\n\n## Changelog\n\nicu_experimental: Add support for `:EastAsianWidth\u003d:` to unicode set\nparser"
    },
    {
      "commit": "6826a8f10a4e1e85d15fbbdc527d7b72a63f6467",
      "tree": "f5d85b557e055e26bc480631b8aec596f5a36196",
      "parents": [
        "8f77d4d0b4bf6b8e4605c810dc4eccb070706185"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Tue Apr 21 14:24:51 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 21 14:24:51 2026"
      },
      "message": "Use an enum for currency rounding modes (#7895)\n\nFollow-up #7278.\n\nPreviously, the values 0-14,50 were allowed for rounding modes. CLDR\ncurrently only uses 1,5,50, and with v49 will use 1,5,20,50, so this\ncode will break.\n\n## Changelog\n\nN/A"
    },
    {
      "commit": "8f77d4d0b4bf6b8e4605c810dc4eccb070706185",
      "tree": "f2ce4ccf165f675cad0dd9a1ec695737c4bda525",
      "parents": [
        "84ba30ed166a181039d8d7262583bbaba49dd7cd"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Tue Apr 21 10:28:07 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 21 10:28:07 2026"
      },
      "message": "Move collation invariants to data structs (#7891)\n\n## Changelog\n\nN/A"
    },
    {
      "commit": "84ba30ed166a181039d8d7262583bbaba49dd7cd",
      "tree": "8b2b660ab8cf16b5ed3bfc2374af8d6ee4baaa50",
      "parents": [
        "d6d295c34c5931220821c5208ce3169a721b8d65"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Tue Apr 21 09:14:29 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 21 09:14:29 2026"
      },
      "message": "Add `Julian` to `AnyCalendar` (#7224)\n\nI want be able to write code that is generic over all calendars. We\ninclude more pointless calendars than Julian, and the code size for\nJulian is neglible (compared to e.g. simulated Hijri). Julian is the\nonly calendar that is not in `AnyCalendar`.\n\n## Changelog\n\n`icu_calendar`: Add `Julian` to `AnyCalendar`"
    },
    {
      "commit": "d6d295c34c5931220821c5208ce3169a721b8d65",
      "tree": "abf05b5ddfcceeec03147cea1a813878a091d995",
      "parents": [
        "27f15b2c118c0df3ddc5cb4688a1ae398fa93f38"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Tue Apr 21 06:45:07 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 21 06:45:07 2026"
      },
      "message": "Test collator fallback overrides (#7879)\n\nFixes #7873\n\n## Changelog\n\nN/A"
    },
    {
      "commit": "27f15b2c118c0df3ddc5cb4688a1ae398fa93f38",
      "tree": "bfb5b6f0e7e499dd8d987b5520d9b379552c8d99",
      "parents": [
        "53d964b479edaa8309396d8d115d27ac78894180"
      ],
      "author": {
        "name": "Manish Goregaokar",
        "email": "manishsmail@gmail.com",
        "time": "Tue Apr 21 05:00:33 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 21 05:00:33 2026"
      },
      "message": "Various safety fixes and defense-in-depth (#7887)\n\nThis fixes a bunch of issues found by @sayrer by running Claude on ICU4X\nto look for vulnerabilities (reported in\nhttps://github.com/unicode-org/icu4x/security/advisories/GHSA-c8m9-943c-5xmw).\n\n\n\nMost of the fixes here are defense in depth: the code was already safe,\nbut we can add assertions/etc to make it safer. In other cases the\nissues found were potential correctness issues, not safety issues.\n\nThe only real safety issue found was the multiplication overflows in\nVarZeroVec validation code: in theory, a 64 bit platform might validate\na VZV that is invalid on a 32 bit platform. These have been fixed. They\naren\u0027t severe enough to warrant a patch release / advisory: the only\ntime this can cause a security issue is if you are trusting VZV data\nblobs constructed on a 64 bit platform on a 32 bit platform, which only\nhappens with baked data, and 4GB-size VZVs aren\u0027t really a thing there.\n\n\n\nThanks, @sayrer !\n\n\n\nThe first commit was agent assisted but in the end mostly rewritten by\nme.\n\n## Changelog\n\nzerovec: Fix minor soundness issue around unchecked multiplication, add\ndefense in depth against other overflow situations.\n\nresb: Add defense-in-depth around checked multiplication.\n\nicu_provider_fs: Add defense-in-depth against path traversal.\n\nicu_list: Prevent correctness errors from out-of-range indices in list\npatterns."
    },
    {
      "commit": "53d964b479edaa8309396d8d115d27ac78894180",
      "tree": "069838f8ba8f363c020e333ed8f48d4fa72839e2",
      "parents": [
        "1d135cebadb05d5abd6a7169421405c1cae65a15"
      ],
      "author": {
        "name": "Rizzen",
        "email": "36046469+rizzen-yazston@users.noreply.github.com",
        "time": "Mon Apr 20 17:22:24 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 20 17:22:24 2026"
      },
      "message": "Updated the docs for Locale and LanguageIdentifier. (#7886)\n\nRemoval of the mention of the separator for the normalisation functions.\nAdded sentence to inform users that support for the legacy `_` separator\nwas dropped from version 2.0.0.\n\n## Changelog\n\nUpdated the docs of functions `try_from()`, `fry_from_utf8()`,\n`normalize()` and `normalize_utf8()` of boh `Locale` and\n`LanguageIdentifier` types."
    },
    {
      "commit": "1d135cebadb05d5abd6a7169421405c1cae65a15",
      "tree": "237addc9a0279c9da81b34eda0136437b7dc0a3c",
      "parents": [
        "c6670f4943d72be45bd7405e02c3f72ee48c88df"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Mon Apr 20 09:15:15 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 20 09:15:15 2026"
      },
      "message": "Bump diplomat (#7885)\n\n## Changelog\n\nFFI:\n* Fix an issue in JS bindings where enums in objects were not parsed\ncorrectly"
    },
    {
      "commit": "c6670f4943d72be45bd7405e02c3f72ee48c88df",
      "tree": "d251f4355e77f2733009c46b566df7fbafed3951",
      "parents": [
        "f4b6f6514ae3be4ef1b8994cb0fab171c911a8ae"
      ],
      "author": {
        "name": "OpNUB",
        "email": "78775816+opnuub@users.noreply.github.com",
        "time": "Mon Apr 20 08:02:28 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 20 08:02:28 2026"
      },
      "message": "Data struct with codepoint builder for radicals (#7805)\n\nIssue: #6941 \n\nModified from #7722 and #7646 \n\n## Changelog\n- `icu_segmenter`: Add unstable Unihan radical provider data and baked\nsupport\n* New types: `icu_segmenter::provider::UnihanIrgData\u003c\u0027data\u003e`,\n`icu_segmenter::provider::SegmenterUnihanRadicalV1`\n* New associated const:\n`icu_segmenter::provider::Baked::SINGLETON_SEGMENTER_UNIHAN_RADICAL_V1`\n* The `experimental_segmenter` example now uses `radaboost` for the\nChinese radical model and adds `thadaboost` for Thai\n- `icu_provider_source`: Add Unihan radical trie generation for\n`icu_segmenter::provider::SegmenterUnihanRadicalV1`\n  * `SourceDataProvider` can now load this marker from Unihan IRG data\n- `icu_provider_registry`: Export\n`icu_segmenter::provider::SegmenterUnihanRadicalV1`"
    },
    {
      "commit": "f4b6f6514ae3be4ef1b8994cb0fab171c911a8ae",
      "tree": "a1134f740bf5bdcbfd07f9e46757a1ba3db14aed",
      "parents": [
        "ac745909ef10d019e01a30ab347b531522e1ff9a"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Mon Apr 20 07:53:05 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 20 07:53:05 2026"
      },
      "message": "Update to 2024 edition where possible (#7878)\n\n## Changelog\n\nN/A"
    },
    {
      "commit": "ac745909ef10d019e01a30ab347b531522e1ff9a",
      "tree": "1605e9015d0efe75b5f40b7f8ac9a5a6a246d271",
      "parents": [
        "03cc804fc73b0072d1f72e7faaa7ae23a3df37ec"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Thu Apr 16 14:16:29 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 16 14:16:29 2026"
      },
      "message": "Update toolchain to 1.95 (#7880)\n\nPicking up two releases\u0027 worth of clippy lints.\n\n## Changelog\n\nN/A"
    },
    {
      "commit": "03cc804fc73b0072d1f72e7faaa7ae23a3df37ec",
      "tree": "74a079fa7dcab8fde824e2160ff7ecaa79cd48a2",
      "parents": [
        "478e8c94c65e1bace1cf787282a82c6b465f9656"
      ],
      "author": {
        "name": "Shane F. Carr",
        "email": "shane@unicode.org",
        "time": "Thu Apr 16 07:57:21 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 16 07:57:21 2026"
      },
      "message": "Fix fallback with language-likely script but region-unlikely script (#7857)\n\n* `sr-Cyrl-ME` and `zh-Hans-TW` now correctly fall back to `sr` and `zh`\ninstead of the non-minimal `sr-Cyrl` and `zh-Hans`\n* Consequently, `sr-Cyrl-ME` and `zh-Hans-TW` are now in the `sr` and\n`zh` locale families, instead of forming their own, and therefore\nincluded in data generations that request `sr` or `zh` (such as the\ndefault CLDR sets)\n\n## Changelog\n\nicu_locale: fixes fallback with language-likely script but\nregion-unlikely script, which fixes data loading and generation behavior\nfor locales including `sr-Cyrl-ME` and `zh-Hans-TW`\n\n---------\n\nCo-authored-by: Robert Bastian \u003c4706271+robertbastian@users.noreply.github.com\u003e"
    },
    {
      "commit": "478e8c94c65e1bace1cf787282a82c6b465f9656",
      "tree": "7f8103827181df4fc747adbffaf4486d2a6d8628",
      "parents": [
        "43e75803fcc60f0df339f5065ec47cf7eb0ea009"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Wed Apr 15 22:32:22 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 15 22:32:22 2026"
      },
      "message": "Revert the sr-Cyrl-ME -\u003e sr-ME collation-only fallback (#7876)\n\nReverts #7867 \n\n## Changelog\n\nN/A"
    },
    {
      "commit": "43e75803fcc60f0df339f5065ec47cf7eb0ea009",
      "tree": "f523fc99960b8dcb548818751d3b96d9f11dc314",
      "parents": [
        "0f348ccee1d1a5979abcfe3646a100c1591a5852"
      ],
      "author": {
        "name": "Georg Semmler",
        "email": "github@weiznich.de",
        "time": "Wed Apr 15 13:19:59 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Apr 15 13:19:59 2026"
      },
      "message": "Remove a potential source of UB from potential_utf (#7871)\n\nThis commit removes a transmute from `PotentialUtf8::from_boxed_bytes`\nas this might rely on undefined behaviour.\n\nIt is only sound to transmute between two types like that if their\nlayout is guranteed to be the same. For this particular case it\u0027s\nguranteed that `[u8]` and `PotentialUtf8` have the same layout via the\n`#[repr(transparent)]` attribute on `PotentialUtf8`. This gurantee\ndoesn\u0027t seem to extend on `Box` as:\n\n* `Box` itself is not marked as `#[repr(transparent)]` (or `#[repr(C)]`)\n* The [memory\nlayout](https://doc.rust-lang.org/std/boxed/index.html#memory-layout)\nsection of the standard library documentation for `Box` only gurantees a\ncertain layout for sized types:\n\u003e So long as T: Sized, a Box\u003cT\u003e is guaranteed to be represented as a\nsingle pointer and is also ABI-compatible with C pointers (i.e. the C\ntype T*).\n* This specific case involves unsized types, so that gurantee doesn\u0027t\nhelp us here.\n\nGiven that it seems safer to just perform a pointer cast there instead\nwhich only involves types with a known compatible layout.\n\nPractically speaking I wouldn\u0027t expect that to ever become a problem,\nbut it\u0027s better to use a way that\u0027s guranteed to work.\n\n\n## Changelog\n\npotential_utf: Use `Box::from_raw()` instead of `transmute` for\nconverting unsized transparent boxes."
    },
    {
      "commit": "0f348ccee1d1a5979abcfe3646a100c1591a5852",
      "tree": "6f33a884b537e8c73e8f3602d236a7deedf629bc",
      "parents": [
        "6dccc5bd37ea1f15c1c08923c661c14a163b0c5f"
      ],
      "author": {
        "name": "Robert Bastian",
        "email": "4706271+robertbastian@users.noreply.github.com",
        "time": "Tue Apr 14 15:37:34 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 14 15:37:34 2026"
      },
      "message": "Handle the `sr-Cyrl-ME` -\u003e `sr-ME` collation-only fallback (#7867)\n\nFixes #3287\n\nThis handles the `sr-Cyrl-ME` -\u003e `sr-ME` fallback the same way we handle\nthe other collation-only fallbacks: by explicitly adding the data for\n`sr-Cyrl-ME` so we don\u0027t go through the default fallback mechanism for\nthat locale.\n\n\n## Changelog\n\nicu_provider_source: Handle the `sr-Cyrl-ME` -\u003e `sr-ME` collation-only\nfallback"
    },
    {
      "commit": "6dccc5bd37ea1f15c1c08923c661c14a163b0c5f",
      "tree": "70e12aa08f4032ca78e521e94d70368ee0642a65",
      "parents": [
        "5a3c265c2db75e8c16a81b13c8f5e21e053a4b43"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Apr 14 09:08:05 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 14 09:08:05 2026"
      },
      "message": "Bump rand from 0.9.2 to 0.9.3 (#7868)\n\nBumps [rand](https://github.com/rust-random/rand) from 0.9.2 to 0.9.3.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/rust-random/rand/blob/0.9.3/CHANGELOG.md\"\u003erand\u0027s\nchangelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[0.9.3] — 2026-02-11\u003c/h2\u003e\n\u003cp\u003eThis release back-ports a fix from v0.10. See also \u003ca\nhref\u003d\"https://redirect.github.com/rust-random/rand/issues/1763\"\u003e#1763\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eChanges\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate feature \u003ccode\u003elog\u003c/code\u003e (\u003ca\nhref\u003d\"https://redirect.github.com/rust-random/rand/issues/1764\"\u003e#1764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReplace usages of \u003ccode\u003edoc_auto_cfg\u003c/code\u003e (\u003ca\nhref\u003d\"https://redirect.github.com/rust-random/rand/issues/1764\"\u003e#1764\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003ca\nhref\u003d\"https://redirect.github.com/rust-random/rand/issues/1763\"\u003e#1763\u003c/a\u003e:\n\u003ca\nhref\u003d\"https://redirect.github.com/rust-random/rand/pull/1763\"\u003erust-random/rand#1763\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/rust-random/rand/commit/1aeee9f4c506f9f737c6c37c169ccdc365bfbabf\"\u003e\u003ccode\u003e1aeee9f\u003c/code\u003e\u003c/a\u003e\nPrepare v0.9.3: deprecate feature \u003ccode\u003elog\u003c/code\u003e (\u003ca\nhref\u003d\"https://redirect.github.com/rust-random/rand/issues/1764\"\u003e#1764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/rust-random/rand/commit/98473ee6f9b44eb85154b59b67adade7f2a9b8a1\"\u003e\u003ccode\u003e98473ee\u003c/code\u003e\u003c/a\u003e\nPrepare rand 0.9.2 (\u003ca\nhref\u003d\"https://redirect.github.com/rust-random/rand/issues/1648\"\u003e#1648\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/rust-random/rand/commit/031a1f5589e487ce95972cb3acc0833ef64cfc10\"\u003e\u003ccode\u003e031a1f5\u003c/code\u003e\u003c/a\u003e\n\u003ccode\u003eexamples/print-next.rs\u003c/code\u003e (\u003ca\nhref\u003d\"https://redirect.github.com/rust-random/rand/issues/1647\"\u003e#1647\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/rust-random/rand/commit/6cb75ee59eda73967b6a3cae4fdcf2c21f6e0e4e\"\u003e\u003ccode\u003e6cb75ee\u003c/code\u003e\u003c/a\u003e\nMake UniformUsize serializable (\u003ca\nhref\u003d\"https://redirect.github.com/rust-random/rand/issues/1646\"\u003e#1646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/rust-random/rand/commit/0c955c5b7a079bc2fe67fe946a8deb46c4bc58d8\"\u003e\u003ccode\u003e0c955c5\u003c/code\u003e\u003c/a\u003e\nAdd some tests for BlockRng, BlockRng64 and Xoshiro RNGs (\u003ca\nhref\u003d\"https://redirect.github.com/rust-random/rand/issues/1639\"\u003e#1639\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/rust-random/rand/commit/204084a35fc7289e9a38575fdd80869818484517\"\u003e\u003ccode\u003e204084a\u003c/code\u003e\u003c/a\u003e\nFix: Remove accidental editor swap file (\u003ca\nhref\u003d\"https://redirect.github.com/rust-random/rand/issues/1636\"\u003e#1636\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/rust-random/rand/commit/86262ac190ec20a79293607fb2347dc74c99122e\"\u003e\u003ccode\u003e86262ac\u003c/code\u003e\u003c/a\u003e\nDeprecate rand::rngs::mock module and StepRng (\u003ca\nhref\u003d\"https://redirect.github.com/rust-random/rand/issues/1634\"\u003e#1634\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/rust-random/rand/commit/a6e217f4a3ce78223a59cc1ff9afb2b5e589d785\"\u003e\u003ccode\u003ea6e217f\u003c/code\u003e\u003c/a\u003e\nUpdate statrs link (\u003ca\nhref\u003d\"https://redirect.github.com/rust-random/rand/issues/1630\"\u003e#1630\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/rust-random/rand/commit/db993ec12676119251eaf9f2cba8389a1b07abef\"\u003e\u003ccode\u003edb993ec\u003c/code\u003e\u003c/a\u003e\nPrepare rand v0.9.1 (\u003ca\nhref\u003d\"https://redirect.github.com/rust-random/rand/issues/1629\"\u003e#1629\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/rust-random/rand/commit/3057641020408f64a4618b1c582cad45a9304811\"\u003e\u003ccode\u003e3057641\u003c/code\u003e\u003c/a\u003e\nRemove zerocopy from rand (\u003ca\nhref\u003d\"https://redirect.github.com/rust-random/rand/issues/1579\"\u003e#1579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/rust-random/rand/compare/rand_core-0.9.2...0.9.3\"\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\u003drand\u0026package-manager\u003dcargo\u0026previous-version\u003d0.9.2\u0026new-version\u003d0.9.3)](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\n## Changelog N/A\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "5a3c265c2db75e8c16a81b13c8f5e21e053a4b43",
      "tree": "6811d823da90c5154a27ef6d5f0a3c898c20f795",
      "parents": [
        "78c809c1f0ce6df1653b5d25ca24fe22775e5dc9"
      ],
      "author": {
        "name": "Manish Goregaokar",
        "email": "manishsmail@gmail.com",
        "time": "Fri Apr 10 00:02:50 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 10 00:02:50 2026"
      },
      "message": "Fix TrailingCase::Unchanged handling for Dutch (#7863)\n\nFixes #7681 \n\nI couldn\u0027t figure out an easy way to keep the dutch handling within\n`full_helper` (where all other locale-sensitive stuff lives), since this\nis the one case that actually affects the titlecasing\nuppercase-to-lowercase state change.\n\nI think this implementation works nicely. The `dutch_i_at_beginning` and\n`dutch_ij_pair_at_beginning_count` split comes from when I was trying to\nretain the old code and refactor it to be reusable, but I realized that\nI could do this without retaining the old code. I can merge these two\nfunctions, but I kind of like how it turned out. They\u0027re more testable\nthis way.\n\nThey\u0027re not implemented on CaseMapContext since they run at the\nbeginning of a string.\n\n\n## Changelog\n\nicu_casemapping: Fix `TrailingCase::Unchanged` handling for Dutch"
    },
    {
      "commit": "78c809c1f0ce6df1653b5d25ca24fe22775e5dc9",
      "tree": "80518e2c283a41e182b6ee548d91078fd16a7683",
      "parents": [
        "93f77decdde06a42a5abbb76a332615472aef437"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Apr 09 11:01:52 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 09 11:01:52 2026"
      },
      "message": "Bump lodash from 4.17.23 to 4.18.1 in /ffi/npm (#7851)\n\nBumps [lodash](https://github.com/lodash/lodash) from 4.17.23 to 4.18.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/lodash/lodash/releases\"\u003elodash\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.18.1\u003c/h2\u003e\n\u003ch2\u003eBugs\u003c/h2\u003e\n\u003cp\u003eFixes a \u003ccode\u003eReferenceError\u003c/code\u003e issue in \u003ccode\u003elodash\u003c/code\u003e\n\u003ccode\u003elodash-es\u003c/code\u003e \u003ccode\u003elodash-amd\u003c/code\u003e and\n\u003ccode\u003elodash.template\u003c/code\u003e when using the \u003ccode\u003etemplate\u003c/code\u003e and\n\u003ccode\u003efromPairs\u003c/code\u003e functions from the modular builds. See \u003ca\nhref\u003d\"https://redirect.github.com/lodash/lodash/issues/6167#issuecomment-4165269769\"\u003elodash/lodash#6167\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThese defects were related to how lodash distributions are built from\nthe main branch using \u003ca\nhref\u003d\"https://github.com/lodash-archive/lodash-cli\"\u003ehttps://github.com/lodash-archive/lodash-cli\u003c/a\u003e.\nWhen internal dependencies change inside lodash functions, equivalent\nupdates need to be made to a mapping in the lodash-cli. (hey, it was\nahead of its time once upon a time!). We know this, but we missed it in\nthe last release. It\u0027s the kind of thing that passes in CI, but fails bc\nthe build is not the same thing you tested.\u003c/p\u003e\n\u003cp\u003eThere is no diff on main for this, but you can see the diffs for each\nof the npm packages on their respective branches:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003elodash\u003c/code\u003e: \u003ca\nhref\u003d\"https://github.com/lodash/lodash/compare/4.18.0-npm...4.18.1-npm\"\u003ehttps://github.com/lodash/lodash/compare/4.18.0-npm...4.18.1-npm\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elodash-es\u003c/code\u003e: \u003ca\nhref\u003d\"https://github.com/lodash/lodash/compare/4.18.0-es...4.18.1-es\"\u003ehttps://github.com/lodash/lodash/compare/4.18.0-es...4.18.1-es\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elodash-amd\u003c/code\u003e: \u003ca\nhref\u003d\"https://github.com/lodash/lodash/compare/4.18.0-amd...4.18.1-amd\"\u003ehttps://github.com/lodash/lodash/compare/4.18.0-amd...4.18.1-amd\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003elodash.template\u003c/code\u003e\u003ca\nhref\u003d\"https://github.com/lodash/lodash/compare/4.18.0-npm-packages...4.18.1-npm-packages\"\u003ehttps://github.com/lodash/lodash/compare/4.18.0-npm-packages...4.18.1-npm-packages\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.18.0\u003c/h2\u003e\n\u003ch2\u003ev4.18.0\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca\nhref\u003d\"https://github.com/lodash/lodash/compare/4.17.23...4.18.0\"\u003ehttps://github.com/lodash/lodash/compare/4.17.23...4.18.0\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eSecurity\u003c/h3\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ccode\u003e_.unset\u003c/code\u003e / \u003ccode\u003e_.omit\u003c/code\u003e\u003c/strong\u003e: Fixed\nprototype pollution via \u003ccode\u003econstructor\u003c/code\u003e/\u003ccode\u003eprototype\u003c/code\u003e\npath traversal (\u003ca\nhref\u003d\"https://github.com/lodash/lodash/security/advisories/GHSA-f23m-r3pf-42rh\"\u003eGHSA-f23m-r3pf-42rh\u003c/a\u003e,\n\u003ca\nhref\u003d\"https://github.com/lodash/lodash/commit/fe8d32eda854377349a4f922ab7655c8e5df9a0b\"\u003efe8d32e\u003c/a\u003e).\nPreviously, array-wrapped path segments and primitive roots could bypass\nthe existing guards, allowing deletion of properties from built-in\nprototypes. Now \u003ccode\u003econstructor\u003c/code\u003e and \u003ccode\u003eprototype\u003c/code\u003e are\nblocked unconditionally as non-terminal path keys, matching\n\u003ccode\u003ebaseSet\u003c/code\u003e. Calls that previously returned \u003ccode\u003etrue\u003c/code\u003e\nand deleted the property now return \u003ccode\u003efalse\u003c/code\u003e and leave the\ntarget untouched.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ccode\u003e_.template\u003c/code\u003e\u003c/strong\u003e: Fixed code injection via\n\u003ccode\u003eimports\u003c/code\u003e keys (\u003ca\nhref\u003d\"https://github.com/lodash/lodash/security/advisories/GHSA-r5fr-rjxr-66jc\"\u003eGHSA-r5fr-rjxr-66jc\u003c/a\u003e,\nCVE-2026-4800, \u003ca\nhref\u003d\"https://github.com/lodash/lodash/commit/879aaa93132d78c2f8d20c60279da9f8b21576d6\"\u003e879aaa9\u003c/a\u003e).\nFixes an incomplete patch for CVE-2021-23337. The \u003ccode\u003evariable\u003c/code\u003e\noption was validated against \u003ccode\u003ereForbiddenIdentifierChars\u003c/code\u003e but\n\u003ccode\u003eimportsKeys\u003c/code\u003e was left unguarded, allowing code injection via\nthe same \u003ccode\u003eFunction()\u003c/code\u003e constructor sink. \u003ccode\u003eimports\u003c/code\u003e\nkeys containing forbidden identifier characters now throw\n\u003ccode\u003e\u0026quot;Invalid imports option passed into\n_.template\u0026quot;\u003c/code\u003e.\u003c/p\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd security notice for \u003ccode\u003e_.template\u003c/code\u003e in threat model and\nAPI docs (\u003ca\nhref\u003d\"https://redirect.github.com/lodash/lodash/pull/6099\"\u003e#6099\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument \u003ccode\u003elower \u0026gt; upper\u003c/code\u003e behavior in\n\u003ccode\u003e_.random\u003c/code\u003e (\u003ca\nhref\u003d\"https://redirect.github.com/lodash/lodash/pull/6115\"\u003e#6115\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix quotes in \u003ccode\u003e_.compact\u003c/code\u003e jsdoc (\u003ca\nhref\u003d\"https://redirect.github.com/lodash/lodash/pull/6090\"\u003e#6090\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003ccode\u003elodash.*\u003c/code\u003e modular packages\u003c/h3\u003e\n\u003cp\u003e\u003ca\nhref\u003d\"https://redirect.github.com/lodash/lodash/pull/6157\"\u003eDiff\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eWe have also regenerated and published a select number of the\n\u003ccode\u003elodash.*\u003c/code\u003e modular packages.\u003c/p\u003e\n\u003cp\u003eThese modular packages had fallen out of sync significantly from the\nminor/patch updates to lodash. Specifically, we have brought the\nfollowing packages up to parity w/ the latest lodash release because\nthey have had CVEs on them in the past:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://www.npmjs.com/package/lodash.orderby\"\u003elodash.orderby\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://www.npmjs.com/package/lodash.tonumber\"\u003elodash.tonumber\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://www.npmjs.com/package/lodash.trim\"\u003elodash.trim\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://www.npmjs.com/package/lodash.trimend\"\u003elodash.trimend\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://www.npmjs.com/package/lodash.sortedindexby\"\u003elodash.sortedindexby\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://www.npmjs.com/package/lodash.zipobjectdeep\"\u003elodash.zipobjectdeep\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://www.npmjs.com/package/lodash.unset\"\u003elodash.unset\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://www.npmjs.com/package/lodash.omit\"\u003elodash.omit\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://www.npmjs.com/package/lodash.template\"\u003elodash.template\u003c/a\u003e\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/lodash/lodash/commit/cb0b9b9212521c08e3eafe7c8cb0af1b42b6649e\"\u003e\u003ccode\u003ecb0b9b9\u003c/code\u003e\u003c/a\u003e\nrelease(patch): bump main to 4.18.1 (\u003ca\nhref\u003d\"https://redirect.github.com/lodash/lodash/issues/6177\"\u003e#6177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/lodash/lodash/commit/75535f57883b7225adb96de1cfc1cd4169cfcb51\"\u003e\u003ccode\u003e75535f5\u003c/code\u003e\u003c/a\u003e\nchore: prune stale advisory refs (\u003ca\nhref\u003d\"https://redirect.github.com/lodash/lodash/issues/6170\"\u003e#6170\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/lodash/lodash/commit/62e91bc6a39c98d85b9ada8c44d40593deaf82a4\"\u003e\u003ccode\u003e62e91bc\u003c/code\u003e\u003c/a\u003e\ndocs: remove n_ Node.js \u0026lt; 6 REPL note from README (\u003ca\nhref\u003d\"https://redirect.github.com/lodash/lodash/issues/6165\"\u003e#6165\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/lodash/lodash/commit/59be2de61f8aa9461c7856533b51d31b7d8babc4\"\u003e\u003ccode\u003e59be2de\u003c/code\u003e\u003c/a\u003e\nrelease(minor): bump to 4.18.0 (\u003ca\nhref\u003d\"https://redirect.github.com/lodash/lodash/issues/6161\"\u003e#6161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/lodash/lodash/commit/af634573030f979194871da7c68f79420992f53d\"\u003e\u003ccode\u003eaf63457\u003c/code\u003e\u003c/a\u003e\nfix: broken tests for _.template 879aaa9\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/lodash/lodash/commit/1073a7693e1727e0cf3641e5f71f75ddcf8de7c0\"\u003e\u003ccode\u003e1073a76\u003c/code\u003e\u003c/a\u003e\nfix: linting issues\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/lodash/lodash/commit/879aaa93132d78c2f8d20c60279da9f8b21576d6\"\u003e\u003ccode\u003e879aaa9\u003c/code\u003e\u003c/a\u003e\nfix: validate imports keys in _.template\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/lodash/lodash/commit/fe8d32eda854377349a4f922ab7655c8e5df9a0b\"\u003e\u003ccode\u003efe8d32e\u003c/code\u003e\u003c/a\u003e\nfix: block prototype pollution in baseUnset via constructor/prototype\ntraversal\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/lodash/lodash/commit/18ba0a32f42fd02117f096b032f89c984173462d\"\u003e\u003ccode\u003e18ba0a3\u003c/code\u003e\u003c/a\u003e\nrefactor(fromPairs): use baseAssignValue for consistent assignment (\u003ca\nhref\u003d\"https://redirect.github.com/lodash/lodash/issues/6153\"\u003e#6153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/lodash/lodash/commit/b8190803d48d60b8c80ad45d39125f32fa618cb2\"\u003e\u003ccode\u003eb819080\u003c/code\u003e\u003c/a\u003e\nci: add dist sync validation workflow (\u003ca\nhref\u003d\"https://redirect.github.com/lodash/lodash/issues/6137\"\u003e#6137\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca\nhref\u003d\"https://github.com/lodash/lodash/compare/4.17.23...4.18.1\"\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\u003dlodash\u0026package-manager\u003dnpm_and_yarn\u0026previous-version\u003d4.17.23\u0026new-version\u003d4.18.1)](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": "93f77decdde06a42a5abbb76a332615472aef437",
      "tree": "fa6e860cc40e88e2836854dbaf3e7e2cf701f91e",
      "parents": [
        "ccbf255d484c7daeca556886aacb3194b901e5e1"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Apr 09 11:01:34 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 09 11:01:34 2026"
      },
      "message": "Bump brace-expansion from 2.0.2 to 2.0.3 in /tools/web-demo (#7822)\n\nBumps [brace-expansion](https://github.com/juliangruber/brace-expansion)\nfrom 2.0.2 to 2.0.3.\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/juliangruber/brace-expansion/commit/73b5459d2ab973c984d01324769d306f66440c7e\"\u003e\u003ccode\u003e73b5459\u003c/code\u003e\u003c/a\u003e\n2.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/juliangruber/brace-expansion/commit/311ac0d54994158c0a384e286a7d6cbb17ee8ed5\"\u003e\u003ccode\u003e311ac0d\u003c/code\u003e\u003c/a\u003e\nBackport fix for GHSA-f886-m6hf-6m8v to v2 (\u003ca\nhref\u003d\"https://redirect.github.com/juliangruber/brace-expansion/issues/96\"\u003e#96\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/juliangruber/brace-expansion/compare/v2.0.2...v2.0.3\"\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\u003dbrace-expansion\u0026package-manager\u003dnpm_and_yarn\u0026previous-version\u003d2.0.2\u0026new-version\u003d2.0.3)](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": "ccbf255d484c7daeca556886aacb3194b901e5e1",
      "tree": "e701f6881d190dc4b546be60c38075317ee87ce2",
      "parents": [
        "39712f0e3f7e9a78b1dd7d6db2bd291eb45591cf"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Apr 09 11:01:25 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 09 11:01:25 2026"
      },
      "message": "Bump serialize-javascript and terser-webpack-plugin in /tools/web-demo (#7821)\n\nRemoves\n[serialize-javascript](https://github.com/yahoo/serialize-javascript).\nIt\u0027s no longer used after updating ancestor dependency\n[terser-webpack-plugin](https://github.com/webpack/terser-webpack-plugin).\nThese dependencies need to be updated together.\n\nRemoves `serialize-javascript`\n\nUpdates `terser-webpack-plugin` from 5.3.16 to 5.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/webpack/terser-webpack-plugin/releases\"\u003eterser-webpack-plugin\u0027s\nreleases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.4.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca\nhref\u003d\"https://github.com/webpack/terser-webpack-plugin/compare/v5.3.17...v5.4.0\"\u003e5.4.0\u003c/a\u003e\n(2026-03-10)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadded ability to minimize \u003ccode\u003eJSON\u003c/code\u003e using\n\u003ccode\u003ejsonMinify\u003c/code\u003e (\u003ca\nhref\u003d\"https://redirect.github.com/webpack/terser-webpack-plugin/issues/657\"\u003e#657\u003c/a\u003e)\n(\u003ca\nhref\u003d\"https://github.com/webpack/terser-webpack-plugin/commit/29ac915e58ec2ff81346d936ee2cf63ac6e300b8\"\u003e29ac915\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev5.3.17\u003c/h2\u003e\n\u003ch3\u003e\u003ca\nhref\u003d\"https://github.com/webpack/terser-webpack-plugin/compare/v5.3.16...v5.3.17\"\u003e5.3.17\u003c/a\u003e\n(2026-03-03)\u003c/h3\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate \u003ccode\u003eserialize-javascript\u003c/code\u003e (\u003ca\nhref\u003d\"https://github.com/webpack/terser-webpack-plugin/commit/37c490c326ffe3416b50028a91bfba5661e1344e\"\u003e37c490c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca\nhref\u003d\"https://github.com/webpack/terser-webpack-plugin/blob/main/CHANGELOG.md\"\u003eterser-webpack-plugin\u0027s\nchangelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca\nhref\u003d\"https://github.com/webpack/terser-webpack-plugin/compare/v5.3.17...v5.4.0\"\u003e5.4.0\u003c/a\u003e\n(2026-03-10)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadded ability to minimizer \u003ccode\u003eJSON\u003c/code\u003e using\n\u003ccode\u003ejsonMinify\u003c/code\u003e (\u003ca\nhref\u003d\"https://redirect.github.com/webpack/terser-webpack-plugin/issues/657\"\u003e#657\u003c/a\u003e)\n(\u003ca\nhref\u003d\"https://github.com/webpack/terser-webpack-plugin/commit/29ac915e58ec2ff81346d936ee2cf63ac6e300b8\"\u003e29ac915\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003e\u003ca\nhref\u003d\"https://github.com/webpack/terser-webpack-plugin/compare/v5.3.16...v5.3.17\"\u003e5.3.17\u003c/a\u003e\n(2026-03-03)\u003c/h3\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eupdate \u003ccode\u003eserialize-javascript\u003c/code\u003e (\u003ca\nhref\u003d\"https://github.com/webpack/terser-webpack-plugin/commit/37c490c326ffe3416b50028a91bfba5661e1344e\"\u003e37c490c\u003c/a\u003e)\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/webpack/terser-webpack-plugin/commit/543da6e282d654d804c8d9d86acdd5fde23d80bf\"\u003e\u003ccode\u003e543da6e\u003c/code\u003e\u003c/a\u003e\nchore(release): 5.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/webpack/terser-webpack-plugin/commit/29ac915e58ec2ff81346d936ee2cf63ac6e300b8\"\u003e\u003ccode\u003e29ac915\u003c/code\u003e\u003c/a\u003e\nfeat: added ability to minimizer \u003ccode\u003eJSON\u003c/code\u003e using\n\u003ccode\u003ejsonMinify\u003c/code\u003e (\u003ca\nhref\u003d\"https://redirect.github.com/webpack/terser-webpack-plugin/issues/657\"\u003e#657\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/webpack/terser-webpack-plugin/commit/e505deecb9230357b77532b88eda9392a682ba9e\"\u003e\u003ccode\u003ee505dee\u003c/code\u003e\u003c/a\u003e\nfix: align with code\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/webpack/terser-webpack-plugin/commit/6f911ffba16ccd2bcfa99cd0bd7e956cab53d147\"\u003e\u003ccode\u003e6f911ff\u003c/code\u003e\u003c/a\u003e\nchore(release): 5.3.17\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/webpack/terser-webpack-plugin/commit/37c490c326ffe3416b50028a91bfba5661e1344e\"\u003e\u003ccode\u003e37c490c\u003c/code\u003e\u003c/a\u003e\nfix: update \u003ccode\u003eserialize-javascript\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/webpack/terser-webpack-plugin/commit/207764f3ccbab62130b30a97d2df2780faf1bccd\"\u003e\u003ccode\u003e207764f\u003c/code\u003e\u003c/a\u003e\nchore: deps update (\u003ca\nhref\u003d\"https://redirect.github.com/webpack/terser-webpack-plugin/issues/652\"\u003e#652\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca\nhref\u003d\"https://github.com/webpack/terser-webpack-plugin/commit/a85ab47e575f8ce5e750dad714f2a98382de1774\"\u003e\u003ccode\u003ea85ab47\u003c/code\u003e\u003c/a\u003e\nchore(deps-dev): bump ajv from 6.12.6 to 6.14.0 (\u003ca\nhref\u003d\"https://redirect.github.com/webpack/terser-webpack-plugin/issues/648\"\u003e#648\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca\nhref\u003d\"https://github.com/webpack/terser-webpack-plugin/compare/v5.3.16...v5.4.0\"\u003ecompare\nview\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\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"
    }
  ],
  "next": "39712f0e3f7e9a78b1dd7d6db2bd291eb45591cf"
}
