- **CHANGED**
- Update pybind11 from 2.9.2 to 2.10.0
- Change arguments and return type of `icupy.icu.Collator.get_bound(source: list[int], source_length: int, bound_type: UColBoundMode, no_of_levels: int) -> list[int]` → `get_bound(source: bytes, source_length: int, bound_type: UColBoundMode, no_of_levels: int) -> bytes`
- Change arguments of `icupy.icu.CollationKey.__init__(values: list[int], count: int)` → `__init__(values: bytes, count: int = -1)`
- Change return type of `icupy.icu.CollationKey.get_byte_array() -> list[int]` → `bytes`
- Change return type of `icupy.icu.ResourceBundle.get_binary() -> list[int]` → `bytes`
- Change return type of `icupy.icu.ResourceBundle.get_version() -> list` → `tuple`
- Change return type of `icupy.icu.RuleBasedCollator.get_sort_key(...) -> list[int]` → `bytes`
- Change return type of `icupy.icu.RuleBasedCollator.get_version() -> list` → `tuple`
- Change return type of `icupy.icu.u_char_age(c: int) -> list` → `tuple`
- Change return type of `icupy.icu.u_get_data_version() -> list` → `tuple`
- Change return type of `icupy.icu.u_get_unicode_version() -> list` → `tuple`
- Change return type of `icupy.icu.u_get_version() -> list` → `tuple`
- Change return type of `icupy.icu.u_version_from_string() -> list` → `tuple`
- Change return type of `icupy.icu.ulocdata_get_cldr_version() -> list` → `tuple`
- **FIXED**
- Raise `IndexError` when `icupy.icu._ConstChar16Ptr.__getitem__(...)` accessing beyond capacity
- Change return type of `icupy.icu.UnicodeSet.__getitem__(index: slice) -> list[int]` → `UnicodeSet`
- Change return type of `icupy.icu.UnicodeString.__getitem__(index: slice) -> str` → `UnicodeString`
- Change return type of `icupy.icu.UnicodeString` comparison operators from `int` to `bool`
- Fix `icupy.icu.UnicodeString.__iadd__(other: UnicodeString | str | int)` to return itself
- Fix return value of `icupy.icu.UnicodeString.extract_between(start: int, limit: int)`
- Change `icupy.icu.UTextVector` to keep references
- **IMPROVED**
- Add `icupy.icu._ConstChar16Ptr.__len__()`
- Add `icupy.icu.UnicodeString.__setitem__(index: int, value: str | int)`
- Reimplement `icupy.icu.UnicodeStringVector`
- Add `UnicodeStringVector.__iadd__(item: UnicodeString | str)`
- Add `UnicodeStringVector.__iadd__(item: list[UnicodeString])`
- Add `UnicodeStringVector.__iadd__(item: list[str])`
- Add `UnicodeStringVector.__init__(iterable: list[str])`
- Add `UnicodeStringVector.__reversed__()`
- Add `UnicodeStringVector.__setitem__(index: int, iterable: list[str])`
- Add `UnicodeStringVector.extend(iterable: list[str])`
- Add `UnicodeStringVector.reverse()`
- Change arguments of `UnicodeStringVector.__contains__(x: UnicodeString)` → `__contains__(item: UnicodeString | str)`
- Change arguments of `UnicodeStringVector.__setitem__(arg0: int, arg1: UnicodeString)` → `__setitem__(index: int, item: UnicodeString | str)`
- Change arguments of `UnicodeStringVector.append(x: UnicodeString)` → `append(item: UnicodeString | str)`
- Change arguments of `UnicodeStringVector.insert(i: int, x: UnicodeString)` → `insert(index: int, item: UnicodeString | str)`
- Change arguments of `UnicodeStringVector.remove(x: UnicodeString)` → `remove(item: UnicodeString | str)`
- Improve `icupy.icu.UTextVector`
- Disable reverse iterator of `UTextVector`
- Add `UTextVector.__init__()`
- Add `UTextVector.__delitem__(index: int | slice)`
- Add `UTextVector.__iadd__(src: list[UnicodeString])`
- Add `UTextVector.append(src: UnicodeString)`
- Add `UTextVector.clear()`
- Add `UTextVector.extend(src: list[UnicodeString])`
- Add `UTextVector.insert(index: int, src: UnicodeString)`
- Change arguments of `icupy.icu.u_version_to_string(version_array: list[int])` → `u_version_to_string(version_array: list[int[4]])`
- **REMOVED**
- Remove `icupy.icu.UTextVector.__init__(n: int)`