idna breaking changes
Every breaking API change we have recorded in idna on PyPI: 5 breaking changes in 3 versions. Below are its newest 3 versions, removals and renames first, each with its source.
Newest change May 12, 2026

On this page
3.15
- Signature changed
idna.valid_string_length
Was def valid_string_length(label: Union[bytes, str], trailing_dot: bool) -> bool; now def valid_string_length(domain: Union[bytes, str], trailing_dot: bool) -> bool. pypi.org
3.14
- Behavior changed
Inputs that are too long are now rejected immediately instead of being processed slowly. Code that passes very long inputs may now get an error where it previously succeeded. github.com
3.12
- Behavior changed
The package now uses Unicode 17.0.0 data, so some inputs may be validated or mapped differently than before. github.com - Signature changed
idna.idnadata.joining_types
Was joining_types; now def joining_types() -> Dict[int, int]. pypi.org - Signature changed
idna.uts46data.uts46data
Was uts46data; now uts46data: Tuple[Union[Tuple[int, str], Tuple[int, str, str]], ...]. pypi.org
Check your code
These are the changes. To see which of them reach your code, scan a public repository, or have your coding agent call check_code with your manifest or lockfile over MCP. The API reads every change in every version, not only the newest. On Team and up, a fix pull request opens for the changes that reach a connected repository. Nothing merges or deploys.

Put your code on continuous management.
Scan a public repository now, or give your agent one line.
See how out of date your code is.
Tell your agent what changed since it was trained.
claude mcp add --transport http since https://api.since.dev/mcp