build(deps): update bugfixes (hotfix/1.5)
Metadata
Current evaluation
Closed unmerged after failing tests and linters on the hotfix/1.5 dependency updates; no resolving commit was recorded.
Resolution: closed stale
Reason: PR #1223 was closed without a merge or replacement change after multiple CI checks failed. No maintainer explanation or resolving commit was recorded, indicating abandonment.
Evaluated by: mr-cal-bot
No scores available.
Issue body
> ℹ️ **Note**
>
> This PR body was truncated due to platform limits.
This PR contains the following updates:
| Package | Change | [Age](https://docs.renovatebot.com/merge-confidence/) | [Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [Jinja2](https://redirect.github.com/pallets/jinja) ([changelog](https://jinja.palletsprojects.com/changes/)) | `==3.1.4` → `==3.1.6` |  |  |
| [PyYAML](https://pyyaml.org/) ([source](https://redirect.github.com/yaml/pyyaml)) | `==6.0.1` → `==6.0.3` |  |  |
| [canonical-sphinx-extensions](https://redirect.github.com/canonical/canonical-sphinx-extensions) | `==0.0.21` → `==0.0.34` |  |  |
| [cryptography](https://redirect.github.com/pyca/cryptography) ([changelog](https://cryptography.io/en/latest/changelog/)) | `==42.0.7` → `==42.0.8` |  |  |
| [lazr.uri](https://launchpad.net/lazr.uri) | `==1.0.6` → `==1.0.8` |  |  |
| [pydantic](https://redirect.github.com/pydantic/pydantic) ([changelog](https://docs.pydantic.dev/latest/changelog/)) | `==1.10.15` → `==1.10.26` |  |  |
| [pylint-fixme-info](https://redirect.github.com/mxmeinhold/pylint-fixme-info) | `==1.0.3` → `==1.0.4` |  |  |
| [pylint-pytest](https://redirect.github.com/pylint-dev/pylint-pytest) ([changelog](https://redirect.github.com/pylint-dev/pylint-pytest/blob/master/CHANGELOG.md)) | `==1.1.7` → `==1.1.8` |  |  |
| [sphinx-reredirects](https://redirect.github.com/documatt/sphinx-reredirects) | `==0.1.3` → `==0.1.6` |  |  |
| [sphinxcontrib-qthelp](https://redirect.github.com/sphinx-doc/sphinxcontrib-qthelp) ([changelog](https://redirect.github.com/sphinx-doc/sphinxcontrib-qthelp/blob/master/CHANGES.rst)) | `==1.0.7` → `==1.0.8` |  |  |
| [twine](https://redirect.github.com/pypa/twine) | `==5.1.0` → `==5.1.1` |  |  |
| [types-PyYAML](https://redirect.github.com/python/typeshed) ([changelog](https://redirect.github.com/typeshed-internal/stub_uploader/blob/main/data/changelogs/PyYAML.md)) | `==6.0.12.20240311` → `==6.0.12.20260518` |  |  |
| [types-setuptools](https://redirect.github.com/python/typeshed) ([changelog](https://redirect.github.com/typeshed-internal/stub_uploader/blob/main/data/changelogs/setuptools.md)) | `==69.5.0.20240513` → `==69.5.0.20240522` |  |  |
| [urllib3](https://redirect.github.com/urllib3/urllib3) ([changelog](https://redirect.github.com/urllib3/urllib3/blob/main/CHANGES.rst)) | `==1.26.18` → `==1.26.20` |  |  |
| [wadllib](https://launchpad.net/wadllib) ([source](https://code.launchpad.net/wadllib)) | `==1.3.6` → `==1.3.9` |  |  |
---
### Release Notes
<details>
<summary>pallets/jinja (Jinja2)</summary>
### [`v3.1.6`](https://redirect.github.com/pallets/jinja/blob/HEAD/CHANGES.rst#Version-316)
[Compare Source](https://redirect.github.com/pallets/jinja/compare/3.1.5...3.1.6)
Released 2025-03-05
- The `|attr` filter does not bypass the environment's attribute lookup,
allowing the sandbox to apply its checks. :ghsa:`cpwx-vrp4-4pq7`
### [`v3.1.5`](https://redirect.github.com/pallets/jinja/blob/HEAD/CHANGES.rst#Version-315)
[Compare Source](https://redirect.github.com/pallets/jinja/compare/3.1.4...3.1.5)
Released 2024-12-21
- The sandboxed environment handles indirect calls to `str.format`, such as
by passing a stored reference to a filter that calls its argument.
:ghsa:`q2x7-8rv6-6q7h`
- Escape template name before formatting it into error messages, to avoid
issues with names that contain f-string syntax.
:issue:`1792`, :ghsa:`gmj6-6f8f-6699`
- Sandbox does not allow `clear` and `pop` on known mutable sequence
types. :issue:`2032`
- Calling sync `render` for an async template uses `asyncio.run`.
:pr:`1952`
- Avoid unclosed `auto_aiter` warnings. :pr:`1960`
- Return an `aclose`-able `AsyncGenerator` from
`Template.generate_async`. :pr:`1960`
- Avoid leaving `root_render_func()` unclosed in
`Template.generate_async`. :pr:`1960`
- Avoid leaving async generators unclosed in blocks, includes and extends.
:pr:`1960`
- The runtime uses the correct `concat` function for the current environment
when calling block references. :issue:`1701`
- Make `|unique` async-aware, allowing it to be used after another
async-aware filter. :issue:`1781`
- `|int` filter handles `OverflowError` from scientific notation.
:issue:`1921`
- Make compiling deterministic for tuple unpacking in a `{% set ... %}`
call. :issue:`2021`
- Fix dunder protocol (`copy`/`pickle`/etc) interaction with `Undefined`
objects. :issue:`2025`
- Fix `copy`/`pickle` support for the internal `missing` object.
:issue:`2027`
- `Environment.overlay(enable_async)` is applied correctly. :pr:`2061`
- The error message from `FileSystemLoader` includes the paths that were
searched. :issue:`1661`
- `PackageLoader` shows a clearer error message when the package does not
contain the templates directory. :issue:`1705`
- Improve annotations for methods returning copies. :pr:`1880`
- `urlize` does not add `mailto:` to values like `@a@b`. :pr:`1870`
- Tests decorated with `@pass_context`` can be used with the ``|select``
filter. :issue:`1624\`
- Using `set` for multiple assignment (`a, b = 1, 2`) does not fail when the
target is a namespace attribute. :issue:`1413`
- Using `set` in all branches of `{% if %}{% elif %}{% else %}` blocks
does not cause the variable to be considered initially undefined.
:issue:`1253`
</details>
<details>
<summary>yaml/pyyaml (PyYAML)</summary>
### [`v6.0.3`](https://redirect.github.com/yaml/pyyaml/releases/tag/6.0.3)
[Compare Source](https://redirect.github.com/yaml/pyyaml/compare/6.0.2...6.0.3)
#### What's Changed
- Support for Python 3.14 and free-threading (experimental).
**Full Changelog**: <https://github.com/yaml/pyyaml/compare/6.0.2...6.0.3>
### [`v6.0.2`](https://redirect.github.com/yaml/pyyaml/releases/tag/6.0.2)
[Compare Source](https://redirect.github.com/yaml/pyyaml/compare/6.0.1...6.0.2)
#### What's Changed
- Support for Cython 3.x and Python 3.13.
**Full Changelog**: <https://github.com/yaml/pyyaml/compare/6.0.1...6.0.2>
</details>
<details>
<summary>canonical/canonical-sphinx-extensions (canonical-sphinx-extensions)</summary>
### [`v0.0.34`](https://redirect.github.com/canonical/canonical-sphinx-extensions/releases/tag/0.0.34)
[Compare Source](https://redirect.github.com/canonical/canonical-sphinx-extensions/compare/0.0.33...0.0.34)
##### What's Changed
- fix: make spacing & sizing of related links consistent with the contents by [@​dwilding](https://redirect.github.com/dwilding) in [#​74](https://redirect.github.com/canonical/canonical-sphinx-extensions/pull/74)
**Full Changelog**: <https://github.com/canonical/canonical-sphinx-extensions/compare/0.0.33...0.0.34>
### [`v0.0.33`](https://redirect.github.com/canonical/canonical-sphinx-extensions/releases/tag/0.0.33)
[Compare Source](https://redirect.github.com/canonical/canonical-sphinx-extensions/compare/0.0.31...0.0.33)
##### What's Changed
- fix: make terminal output visible in light mode by [@​dwilding](https://redirect.github.com/dwilding) in [#​73](https://redirect.github.com/canonical/canonical-sphinx-extensions/pull/73)
##### New Contributors
- [@​dwilding](https://redirect.github.com/dwilding) made their first contribution in [#​73](https://redirect.github.com/canonical/canonical-sphinx-extensions/pull/73)
**Full Changelog**: <https://github.com/canonical/canonical-sphinx-extensions/compare/0.0.32...0.0.33>
### [`v0.0.31`](https://redirect.github.com/canonical/canonical-sphinx-extensions/releases/tag/0.0.31)
##### What's Changed
- fix: revert literalref by [@​SecondSkoll](https://redirect.github.com/SecondSkoll) in [#​66](https://redirect.github.com/canonical/canonical-sphinx-extensions/pull/66)
- feat: add internal literalrefs by [@​jahn-junior](https://redirect.github.com/jahn-junior) in [#​67](https://redirect.github.com/canonical/canonical-sphinx-extensions/pull/67)
- 0.0.31 release by [@​SecondSkoll](https://redirect.github.com/SecondSkoll) in [#​68](https://redirect.github.com/canonical/canonical-sphinx-extensions/pull/68)
**Full Changelog**: <https://github.com/canonical/canonical-sphinx-extensions/compare/v0.0.29...0.0.31>
### [`v0.0.29`](https://redirect.github.com/canonical/canonical-sphinx-extensions/releases/tag/v0.0.29): Release
[Compare Source](https://redirect.github.com/canonical/canonical-sphinx-extensions/compare/v0.0.28...v0.0.29)
##### What's Changed
- fix: remove override decorator by [@​SecondSkoll](https://redirect.github.com/SecondSkoll) in [#​65](https://redirect.github.com/canonical/canonical-sphinx-extensions/pull/65)
### [`v0.0.28`](https://redirect.github.com/canonical/canonical-sphinx-extensions/releases/tag/v0.0.28)
[Compare Source](https://redirect.github.com/canonical/canonical-sphinx-extensions/compare/v0.0.27...v0.0.28)
##### What's Changed
- Remove state from ubuntu-images by [@​waveform80](https://redirect.github.com/waveform80) in [#​55](https://redirect.github.com/canonical/canonical-sphinx-extensions/pull/55)
- refactor: removes old workflows and LXD packages by [@​SecondSkoll](https://redirect.github.com/SecondSkoll) in [#​54](https://redirect.github.com/canonical/canonical-sphinx-extensions/pull/54)
- config-options: add call to requestAnimationFrame by [@​bensmrs](https://redirect.github.com/bensmrs) in [#​61](https://redirect.github.com/canonical/canonical-sphinx-extensions/pull/61)
- Enhance ubuntu images by [@​waveform80](https://redirect.github.com/waveform80) in [#​59](https://redirect.github.com/canonical/canonical-sphinx-extensions/pull/59)
- feat: support internal literalrefs by [@​jahn-junior](https://redirect.github.com/jahn-junior) in [#​62](https://redirect.github.com/canonical/canonical-sphinx-extensions/pull/62)
- feat: correct terminal output in PDF by [@​SecondSkoll](https://redirect.github.com/SecondSkoll) in [#​63](https://redirect.github.com/canonical/canonical-sphinx-extensions/pull/63)
##### New Contributors
- [@​SecondSkoll](https://redirect.github.com/SecondSkoll) made their first contribution in [#​54](https://redirect.github.com/canonical/canonical-sphinx-extensions/pull/54)
- [@​bensmrs](https://redirect.github.com/bensmrs) made their first contribution in [#​61](https://redirect.github.com/canonical/canonical-sphinx-extensions/pull/61)
- [@​jahn-junior](https://redirect.github.com/jahn-junior) made their first contribution in [#​62](https://redirect.github.com/canonical/canonical-sphinx-extensions/pull/62)
**Full Changelog**: <https://github.com/canonical/canonical-sphinx-extensions/compare/v0.0.27...v0.0.28>
### [`v0.0.27`](https://redirect.github.com/canonical/canonical-sphinx-extensions/releases/tag/v0.0.27)
##### What's Changed
- Rename extension by [@​ru-fu](https://redirect.github.com/ru-fu) in [#​30](https://redirect.github.com/canonical/canonical-sphinx-extensions/pull/30)
- Fix publishing scripts by [@​ru-fu](https://redirect.github.com/ru-fu) in [#​31](https://redirect.github.com/canonical/canonical-sphinx-extensions/pull/31)
- add a custom `none` role that is excluded from the output by [@​ru-fu](https://redirect.github.com/ru-fu) in [#​32](https://redirect.github.com/canonical/canonical-sphinx-extensions/pull/32)
- Updates to the config option extension by [@​ru-fu](https://redirect.github.com/ru-fu) in [#​33](https://redirect.github.com/canonical/canonical-sphinx-extensions/pull/33)
- config-options: fix JavaScript selector by [@​ru-fu](https://redirect.github.com/ru-fu) in [#​36](https://redirect.github.com/canonical/canonical-sphinx-extensions/pull/36)
- make the terminal directive more consistent by [@​akcano](https://redirect.github.com/akcano) in [#​34](https://redirect.github.com/canonical/canonical-sphinx-extensions/pull/34)
- add optional backup link texts for related links by [@​ru-fu](https://redirect.github.com/ru-fu) in [#​40](https://redirect.github.com/canonical/canonical-sphinx-extensions/pull/40)
- Add contributor listing by [@​ru-fu](https://redirect.github.com/ru-fu) in [#​41](https://redirect.github.com/canonical/canonical-sphinx-extensions/pull/41)
- add information about releases and the release process by [@​ru-fu](https://redirect.github.com/ru-fu) in [#​43](https://redirect.github.com/canonical/canonical-sphinx-extensions/pull/43)
- warn when built with empty repos by [@​akcano](https://redirect.github.com/akcano) in [#​45](https://redirect.github.com/canonical/canonical-sphinx-extensions/pull/45)
- Add ubuntu-images extension by [@​waveform80](https://redirect.github.com/waveform80) in [#​46](https://redirect.github.com/canonical/canonical-sphinx-extensions/pull/46)
- Omit user and host (and `@:` symbols) if they are not supplied. by [@​benjamin051000](https://redirect.github.com/benjamin051000) in [#​51](https://redirect.github.com/canonical/canonical-sphinx-extensions/pull/51)
- feat(contributor-listing): list co-authors too by [@​rebornplusplus](https://redirect.github.com/rebornplusplus) in [#​48](https://redirect.github.com/canonical/canonical-sphinx-extensions/pull/48)
- Add the :empty: parameter by [@​waveform80](https://redirect.github.com/waveform80) in [#​52](https://redirect.github.com/canonical/canonical-sphinx-extensions/pull/52)
##### New Contributors
- [@​akcano](https://redirect.github.com/akcano) made their first contribution in [#​34](https://redirect.github.com/canonical/canonical-sphinx-extensions/pull/34)
- [@​waveform80](https://redirect.github.com/waveform80) made their first contribution in [#​46](https://redirect.github.com/canonical/canonical-sphinx-extensions/pull/46)
- [@​benjamin051000](https://redirect.github.com/benjamin051000) made their first contribution in [#​51](https://redirect.github.com/canonical/canonical-sphinx-extensions/pull/51)
- [@​rebornplusplus](https://redirect.github.com/rebornplusplus) made their first contribution in [#​48](https://redirect.github.com/canonical/canonical-sphinx-extensions/pull/48)
**Full Changelog**: <https://github.com/canonical/canonical-sphinx-extensions/compare/v0.0.15...v0.0.27>
</details>
<details>
<summary>pyca/cryptography (cryptography)</summary>
### [`v42.0.8`](https://redirect.github.com/pyca/cryptography/compare/42.0.7...42.0.8)
[Compare Source](https://redirect.github.com/pyca/cryptography/compare/42.0.7...42.0.8)
</details>
<details>
<summary>pydantic/pydantic (pydantic)</summary>
### [`v1.10.26`](https://redirect.github.com/pydantic/pydantic/releases/tag/v1.10.26): 2025-12-18
[Compare Source](https://redirect.github.com/pydantic/pydantic/compare/v1.10.25...v1.10.26)
#### What's Changed
- Fix syntax error under Python 3.7 by [@​Viicos](https://redirect.github.com/Viicos) in [#​12643](https://redirect.github.com/pydantic/pydantic/pull/12643)
**Full Changelog**: <https://github.com/pydantic/pydantic/compare/v1.10.25...v1.10.26>
### [`v1.10.25`](https://redirect.github.com/pydantic/pydantic/releases/tag/v1.10.25): 2025-12-18
[Compare Source](https://redirect.github.com/pydantic/pydantic/compare/v1.10.24...v1.10.25)
#### What's Changed
- Add minimal support for Python 3.14 by [@​Viicos](https://redirect.github.com/Viicos) in [#​12636](https://redirect.github.com/pydantic/pydantic/pull/12636)
**Full Changelog**: <https://github.com/pydantic/pydantic/compare/v1.10.24...v1.10.25>
### [`v1.10.24`](https://redirect.github.com/pydantic/pydantic/blob/HEAD/HISTORY.md#v2120-2025-10-07)
[Compare Source](https://redirect.github.com/pydantic/pydantic/compare/v1.10.23...v1.10.24)
[GitHub release](https://redirect.github.com/pydantic/pydantic/releases/tag/v2.12.0)
##### What's Changed
This is the final 2.12 release. It features the work of 20 external contributors and provides useful new features, along with initial Python 3.14 support.
Several minor changes (considered non-breaking changes according to our [versioning policy](https://docs.pydantic.dev/2.12/version-policy/#pydantic-v2))
are also included in this release. Make sure to look into them before upgrading.
**Note that Pydantic V1 is not compatible with Python 3.14 and greater**.
Changes (see the alpha and beta releases for additional changes since 2.11):
##### Packaging
- Update V1 copy to v1.10.24 by [@​Viicos](https://redirect.github.com/Viicos) in [#​12338](https://redirect.github.com/pydantic/pydantic/pull/12338)
##### New Features
- Add `extra` parameter to the validate functions by [@​anvilpete](https://redirect.github.com/anvilpete) in [#​12233](https://redirect.github.com/pydantic/pydantic/pull/12233)
- Add `exclude_computed_fields` serialization option by [@​Viicos](https://redirect.github.com/Viicos) in [#​12334](https://redirect.github.com/pydantic/pydantic/pull/12334)
- Add `preverse_empty_path` URL options by [@​Viicos](https://redirect.github.com/Viicos) in [#​12336](https://redirect.github.com/pydantic/pydantic/pull/12336)
- Add `union_format` parameter to JSON Schema generation by [@​Viicos](https://redirect.github.com/Viicos) in [#​12147](https://redirect.github.com/pydantic/pydantic/pull/12147)
- Add `__qualname__` parameter for `create_model` by [@​Atry](https://redirect.github.com/Atry) in [#​12001](https://redirect.github.com/pydantic/pydantic/pull/12001)
##### Fixes
- Do not try to infer name from lambda definitions in pipelines API by [@​Viicos](https://redirect.github.com/Viicos) in [#​12289](https://redirect.github.com/pydantic/pydantic/pull/12289)
- Use proper namespace for functions in `TypeAdapter` by [@​Viicos](https://redirect.github.com/Viicos) in [#​12324](https://redirect.github.com/pydantic/pydantic/pull/12324)
- Use `Any` for context type annotation in `TypeAdapter` by [@​inducer](https://redirect.github.com/inducer) in [#​12279](https://redirect.github.com/pydantic/pydantic/pull/12279)
- Expose `FieldInfo` in `pydantic.fields.__all__` by [@​Viicos](https://redirect.github.com/Viicos) in [#​12339](https://redirect.github.com/pydantic/pydantic/pull/12339)
- Respect `validation_alias` in `@validate_call` by [@​Viicos](https://redirect.github.com/Viicos) in [#​12340](https://redirect.github.com/pydantic/pydantic/pull/12340)
- Use `Any` as context annotation in plugin API by [@​Viicos](https://redirect.github.com/Viicos) in [#​12341](https://redirect.github.com/pydantic/pydantic/pull/12341)
- Use proper `stacklevel` in warnings when possible by [@​Viicos](https://redirect.github.com/Viicos) in [#​12342](https://redirect.github.com/pydantic/pydantic/pull/12342)
##### New Contributors
- [@​anvilpete](https://redirect.github.com/anvilpete) made their first contribution in [#​12233](https://redirect.github.com/pydantic/pydantic/pull/12233)
- [@​JonathanWindell](https://redirect.github.com/JonathanWindell) made their first contribution in [#​12327](https://redirect.github.com/pydantic/pydantic/pull/12327)
- [@​inducer](https://redirect.github.com/inducer) made their first contribution in [#​12279](https://redirect.github.com/pydantic/pydantic/pull/12279)
- [@​Atry](https://redirect.github.com/Atry) made their first contribution in [#​12001](https://redirect.github.com/pydantic/pydantic/pull/12001)
### [`v1.10.23`](https://redirect.github.com/pydantic/pydantic/blob/HEAD/HISTORY.md#v11023-2025-09-13)
[Compare Source](https://redirect.github.com/pydantic/pydantic/compare/v1.10.22...v1.10.23)
- Fix mypy plugin for mypy 1.18 by [@​cdce8p](https://redirect.github.com/cdce8p) in [#​12207](https://redirect.github.com/pydantic/pydantic/pull/12207)
### [`v1.10.22`](https://redirect.github.com/pydantic/pydantic/blob/HEAD/HISTORY.md#v11022-2025-04-17)
[Compare Source](https://redirect.github.com/pydantic/pydantic/compare/v1.10.21...v1.10.22)
- Fix compatibility with `typing-extensions` by [@​Viicos](https://redirect.github.com/Viicos) in [#​11764](https://redirect.github.com/pydantic/pydantic/pull/11764)
### [`v1.10.21`](https://redirect.github.com/pydantic/pydantic/blob/HEAD/HISTORY.md#v2113-2025-04-08)
[Compare Source](https://redirect.github.com/pydantic/pydantic/compare/v1.10.20...v1.10.21)
[GitHub release](https://redirect.github.com/pydantic/pydantic/releases/tag/v2.11.3)
##### What's Changed
##### Packaging
- Update V1 copy to v1.10.21 by [@​Viicos](https://redirect.github.com/Viicos) in [#​11706](https://redirect.github.com/pydantic/pydantic/pull/11706)
##### Fixes
- Preserve field description when rebuilding model fields by [@​Viicos](https://redirect.github.com/Viicos) in [#​11698](https://redirect.github.com/pydantic/pydantic/pull/11698)
### [`v1.10.20`](https://redirect.github.com/pydantic/pydantic/blob/HEAD/HISTORY.md#v11020-2025-01-07)
[Compare Source](https://redirect.github.com/pydantic/pydantic/compare/v1.10.19...v1.10.20)
This release provides proper support for Python 3.13, with (Cythonized) wheels published for this version.
As a consequence, Cython was updated from `0.29.x` to `3.0.x`.
- General maintenance of CI and build ecosystem by [@​Viicos](https://redirect.github.com/Viicos) in [#​10847](https://redirect.github.com/pydantic/pydantic/pull/10847)
- Update Cython to `3.0.x`.
- Properly address Python 3.13 deprecation warnings.
- Migrate packaging to `pyproject.toml`, make use of PEP 517 build options.
- Use [`build`](https://pypi.org/project/build/) instead of direct `setup.py` invocations.
- Update various Github Actions versions.
- Replace outdated stpmex link in documentation by [@​jaredenorris](https://redirect.github.com/jaredenorris) in [#​10997](https://redirect.github.com/pydantic/pydantic/pull/10997)
### [`v1.10.19`](https://redirect.github.com/pydantic/pydantic/blob/HEAD/HISTORY.md#v11019-2024-11-06)
[Compare Source](https://redirect.github.com/pydantic/pydantic/compare/v1.10.18...v1.10.19)
- Add warning when v2 model is nested in v1 model by [@​sydney-runkle](https://redirect.github.com/sydney-runkle) in [#​10432](https://redirect.github.com/pydantic/pydantic/pull/10432)
- Fix deprecation warning in V1 `isinstance` check by [@​alicederyn](https://redirect.github.com/alicederyn) in [#​10645](https://redirect.github.com/pydantic/pydantic/pull/10645)
### [`v1.10.18`](https://redirect.github.com/pydantic/pydantic/blob/HEAD/HISTORY.md#v290-2024-09-05)
[Compare Source](https://redirect.github.com/pydantic/pydantic/compare/v1.10.17...v1.10.18)
[GitHub release](https://redirect.github.com/pydantic/pydantic/releases/tag/v2.9.0)
The code released in v2.9.0 is practically identical to that of v2.9.0b2.
##### What's Changed
##### Packaging
- Bump `ruff` to `v0.5.0` and `pyright` to `v1.1.369` by [@​sydney-runkle](https://redirect.github.com/sydney-runkle) in [#​9801](https://redirect.github.com/pydantic/pydantic/pull/9801)
- Bump `pydantic-extra-types` to `v2.9.0` by [@​sydney-runkle](https://redirect.github.com/sydney-runkle) in [#​9832](https://redirect.github.com/pydantic/pydantic/pull/9832)
- Support compatibility with `pdm v2.18.1` by [@​Viicos](https://redirect.github.com/Viicos) in [#​10138](https://redirect.github.com/pydantic/pydantic/pull/10138)
- Bump `v1` version stub to `v1.10.18` by [@​sydney-runkle](https://redirect.github.com/sydney-runkle) in [#​10214](https://redirect.github.com/pydantic/pydantic/pull/10214)
- Bump `pydantic-core` to `v2.23.2` by [@​sydney-runkle](https://redirect.github.com/sydney-runkle) in [#​10311](https://redirect.github.com/pydantic/pydantic/pull/10311)
##### New Features
- Add support for `ZoneInfo` by [@​Youssefares](https://redirect.github.com/Youssefares) in [#​9896](https://redirect.github.com/pydantic/pydantic/pull/9896)
- Add `Config.val_json_bytes` by [@​josh-newman](https://redirect.github.com/josh-newman) in [#​9770](https://redirect.github.com/pydantic/pydantic/pull/9770)
- Add DSN for Snowflake by [@​aditkumar72](https://redirect.github.com/aditkumar72) in [#​10128](https://redirect.github.com/pydantic/pydantic/pull/10128)
- Support `complex` number by [@​changhc](https://redirect.github.com/changhc) in [#​9654](https://redirect.github.com/pydantic/pydantic/pull/9654)
- Add support for `annotated_types.Not` by [@​aditkumar72](https://redirect.github.com/aditkumar72) in [#​10210](https://redirect.github.com/pydantic/pydantic/pull/10210)
- Allow `WithJsonSchema` to inject `$ref`s w/ `http` or `https` links by [@​dAIsySHEng1](https://redirect.github.com/dAIsySHEng1) in [#​9863](https://redirect.github.com/pydantic/pydantic/pull/9863)
- Allow validators to customize validation JSON schema by [@​Viicos](https://redirect.github.com/Viicos) in [#​10094](https://redirect.github.com/pydantic/pydantic/pull/10094)
- Support parametrized `PathLike` types by [@​nix010](https://redirect.github.com/nix010) in [#​9764](https://redirect.github.com/pydantic/pydantic/pull/9764)
- Add tagged union serializer that attempts to use `str` or `callable` discriminators to select the correct serializer by [@​sydney-runkle](https://redirect.github.com/sydney-runkle) in in [pydantic/pydantic-core#1397](https://redirect.github.com/pydantic/pydantic-core/pull/1397)
##### Changes
- Breaking Change: Merge `dict` type `json_schema_extra` by [@​sydney-runkle](https://redirect.github.com/sydney-runkle) in [#​9792](https://redirect.github.com/pydantic/pydantic/pull/9792)
- For more info (how to replicate old behavior) on this change, see [here](https://docs.pydantic.dev/dev/concepts/json_schema/#merging-json_schema_extra)
- Refactor annotation injection for known (often generic) types by [@​sydney-runkle](https://redirect.github.com/sydney-runkle) in [#​9979](https://redirect.github.com/pydantic/pydantic/pull/9979)
- Move annotation compatibility errors to validation phase by [@​sydney-runkle](https://redirect.github.com/sydney-runkle) in [#​9999](https://redirect.github.com/pydantic/pydantic/pull/9999)
- Improve runtime errors for string constraints like `pattern` for incompatible types by [@​sydney-runkle](https://redirect.github.com/sydney-runkle) in [#​10158](https://redirect.github.com/pydantic/pydantic/pull/10158)
- Remove `'allOf'` JSON schema workarounds by [@​dpeachey](https://redirect.github.com/dpeachey) in [#​10029](https://redirect.github.com/pydantic/pydantic/pull/10029)
- Remove `typed_dict_cls` data from `CoreMetadata` by [@​sydney-runkle](https://redirect.github.com/sydney-runkle) in [#​10180](https://redirect.github.com/pydantic/pydantic/pull/10180)
- Deprecate passing a dict to the `Examples` class by [@​Viicos](https://redirect.github.com/Viicos) in [#​10181](https://redirect.github.com/pydantic/pydantic/pull/10181)
- Remove `initial_metadata` from internal metadata construct by [@​sydney-runkle](https://redirect.github.com/sydney-runkle) in [#​10194](https://redirect.github.com/pydantic/pydantic/pull/10194)
- Use `re.Pattern.search` instead of `re.Pattern.match` for consistency with `rust` behavior by [@​tinez](https://redirect.github.com/tinez) in [pydantic/pydantic-core#1368](https://redirect.github.com/pydantic/pydantic-core/pull/1368)
- Show value of wrongly typed data in `pydantic-core` serialization warning by [@​BoxyUwU](https://redirect.github.com/BoxyUwU) in [pydantic/pydantic-core#1377](https://redirect.github.com/pydantic/pydantic-core/pull/1377)
- Breaking Change: in `pydantic-core`, change `metadata` type hint in core schemas from `Any` -> `Dict[str, Any] | None` by [@​sydney-runkle](https://redirect.github.com/sydney-runkle) in [pydantic/pydantic-core#1411](https://redirect.github.com/pydantic/pydantic-core/pull/1411)
- Raise helpful warning when `self` isn't returned from model validator by [@​sydney-runkle](https://redirect.github.com/sydney-runkle) in [#​10255](https://redirect.github.com/pydantic/pydantic/pull/10255)
##### Performance
- Initial start at improving import times for modules, using caching primarily by [@​sydney-runkle](https://redirect.github.com/sydney-runkle) in [#​10009](https://redirect.github.com/pydantic/pydantic/pull/10009)
- Using cached internal import for `BaseModel` by [@​sydney-runkle](https://redirect.github.com/sydney-runkle) in [#​10013](https://redirect.github.com/pydantic/pydantic/pull/10013)
- Simplify internal generics logic - remove generator overhead by [@​sydney-runkle](https://redirect.github.com/sydney-runkle) in [#​10059](https://redirect.github.com/pydantic/pydantic/pull/10059)
- Remove default module globals from types namespace by [@​sydney-runkle](https://redirect.github.com/sydney-runkle) in [#​10123](https://redirect.github.com/pydantic/pydantic/pull/10123)
- Performance boost: skip caching parent namespaces in most cases by [@​sydney-runkle](https://redirect.github.com/sydney-runkle) in [#​10113](https://redirect.github.com/pydantic/pydantic/pull/10113)
- Update ns stack with already copied ns by [@​sydney-runkle](https://redirect.github.com/sydney-runkle) in [#​10267](https://redirect.github.com/pydantic/pydantic/pull/10267)
##### Minor Internal Improvements
- ⚡️ Speed up `multiple_of_validator()` by 31% in `pydantic/_internal/_validators.py` by [@​misrasaurabh1](https://redirect.github.com/misrasaurabh1) in [#​9839](https://redirect.github.com/pydantic/pydantic/pull/9839)
- ⚡️ Speed up `ModelPrivateAttr.__set_name__()` by 18% in `pydantic/fields.py` by [@​misrasaurabh1](https://redirect.github.com/misrasaurabh1) in [#​9841](https://redirect.github.com/pydantic/pydantic/pull/9841)
- ⚡️ Speed up `dataclass()` by 7% in `pydantic/dataclasses.py` by [@​misrasaurabh1](https://redirect.github.com/misrasaurabh1) in [#​9843](https://redirect.github.com/pydantic/pydantic/pull/9843)
- ⚡️ Speed up function `_field_name_for_signature` by 37% in `pydantic/_internal/_signature.py` by [@​misrasaurabh1](https://redirect.github.com/misrasaurabh1) in [#​9951](https://redirect.github.com/pydantic/pydantic/pull/9951)
- ⚡️ Speed up method `GenerateSchema._unpack_refs_defs` by 26% in `pydantic/_internal/_generate_schema.py` by [@​misrasaurabh1](https://redirect.github.com/misrasaurabh1) in [#​9949](https://redirect.github.com/pydantic/pydantic/pull/9949)
- ⚡️ Speed up function `apply_each_item_validators` by 100% in `pydantic/_internal/_generate_schema.py` by [@​misrasaurabh1](https://redirect.github.com/misrasaurabh1) in [#​9950](https://redirect.github.com/pydantic/pydantic/pull/9950)
- ⚡️ Speed up method `ConfigWrapper.core_config` by 28% in `pydantic/_internal/_config.py` by [@​misrasaurabh1](https://redirect.github.com/misrasaurabh1) in [#​9953](https://redirect.github.com/pydantic/pydantic/pull/9953)
##### Fixes
- Respect `use_enum_values` on `Literal` types by [@​kwint](https://redirect.github.com/kwint) in [#​9787](https://redirect.github.com/pydantic/pydantic/pull/9787)
- Prevent type error for exotic `BaseModel/RootModel` inheritance by [@​dmontagu](https://redirect.github.com/dmontagu) in [#​9913](https://redirect.github.com/pydantic/pydantic/pull/9913)
- Fix typing issue with field\_validator-decorated methods by [@​dmontagu](https://redirect.github.com/dmontagu) in [#​9914](https://redirect.github.com/pydantic/pydantic/pull/9914)
- Replace `str` type annotation with `Any` in validator factories in documentation on validators by [@​maximilianfellhuber](https://redirect.github.com/maximilianfellhuber) in [#​9885](https://redirect.github.com/pydantic/pydantic/pull/9885)
- Fix `ComputedFieldInfo.wrapped_property` pointer when a property setter is assigned by [@​tlambert03](https://redirect.github.com/tlambert03) in [#​9892](https://redirect.github.com/pydantic/pydantic/pull/9892)
- Fix recursive typing of `main.IncEnx` by [@​tlambert03](https://redirect.github.com/tlambert03) in [#​9924](https://redirect.github.com/pydantic/pydantic/pull/9924)
- Allow usage of `type[Annotated[...]]` by [@​Viicos](https://redirect.github.com/Viicos) in [#​9932](https://redirect.github.com/pydantic/pydantic/pull/9932)
- `mypy` plugin: handle frozen fields on a per-field basis by [@​dmontagu](https://redirect.github.com/dmontagu) in [#​9935](https://redirect.github.com/pydantic/pydantic/pull/9935)
- Fix typo in `invalid-annotated-type` error code by [@​sydney-runkle](https://redirect.github.com/sydney-runkle) in [#​9948](https://redirect.github.com/pydantic/pydantic/pull/9948)
- Simplify schema generation for `uuid`, `url`, and `ip` types by [@​sydney-runkle](https://redirect.github.com/sydney-runkle) in [#​9975](https://redirect.github.com/pydantic/pydantic/pull/9975)
- Move `date` schemas to `_generate_schema.py` by [@​sydney-runkle](https://redirect.github.com/sydney-runkle) in [#​9976](https://redirect.github.com/pydantic/pydantic/pull/9976)
- Move `decimal.Decimal` validation to `_generate_schema.py` by [@​sydney-runkle](https://redirect.github.com/sydney-runkle) in [#​9977](https://redirect.github.com/pydantic/pydantic/pull/9977)
- Simplify IP address schema in `_std_types_schema.py` by [@​sydney-runkle](https://redirect.github.com/sydney-runkle) in [#​9959](https://redirect.github.com/pydantic/pydantic/pull/9959)
- Fix type annotations for some potentially generic `GenerateSchema.match_type` options by [@​sydney-runkle](https://redirect.github.com/sydney-runkle) in [#​9961](https://redirect.github.com/pydantic/pydantic/pull/9961)
- Add class name to "has conflict" warnings by [@​msabramo](https://redirect.github.com/msabramo) in [#​9964](https://redirect.github.com/pydantic/pydantic/pull/9964)
- Fix `dataclass` ignoring `default_factory` passed in Annotated by [@​kc0506](https://redirect.github.com/kc0506) in [#​9971](https://redirect.github.com/pydantic/pydantic/pull/9971)
- Fix `Sequence` ignoring `discriminator` by [@​kc0506](https://redirect.github.com/kc0506) in [#​9980](https://redirect.github.com/pydantic/pydantic/pull/9980)
- Fix typing for `IPvAnyAddress` and `IPvAnyInterface` by [@​haoyun](https://redirect.github.com/haoyun) in [#​9990](https://redirect.github.com/pydantic/pydantic/pull/9990)
- Fix false positives on v1 models in `mypy` plugin for `from_orm` check requiring from\_attributes=True config by [@​radekwlsk](https://redirect.github.com/radekwlsk) in [#​9938](https://redirect.github.com/pydantic/pydantic/pull/9938)
- Apply `strict=True` to `__init__` in `mypy` plugin by [@​kc0506](https://redirect.github.com/kc0506) in [#​9998](https://redirect.github.com/pydantic/pydantic/pull/9998)
- Refactor application of `deque` annotations by [@​sydney-runkle](https://redirect.github.com/sydney-runkle) in [#​10018](https://redirect.github.com/pydantic/pydantic/pull/10018)
- Raise a better user error when failing to evaluate a forward reference by [@​Viicos](https://redirect.github.com/Viicos) in [#​10030](https://redirect.github.com/pydantic/pydantic/pull/10030)
- Fix evaluation of `__pydantic_extra__` annotation in specific circumstances by [@​Viicos](https://redirect.github.com/Viicos) in [#​10070](https://redirect.github.com/pydantic/pydantic/pull/10070)
- Fix `frozen` enforcement for `dataclasses` by [@​sydney-runkle](https://redirect.github.com/sydney-runkle) in [#​10066](https://redirect.github.com/pydantic/pydantic/pull/10066)
- Remove logic to handle unused `__get_pydantic_core_schema__` signature by [@​Viicos](https://redirect.github.com/Viicos) in [#​10075](https://redirect.github.com/pydantic/pydantic/pull/10075)
- Use `is_annotated` consistently by [@​Viicos](https://redirect.github.com/Viicos) in [#​10095](https://redirect.github.com/pydantic/pydantic/pull/10095)
- Fix `PydanticDeprecatedSince26` typo by [@​kc0506](https://redirect.github.com/kc0506) in [#​10101](https://redirect.github.com/pydantic/pydantic/pull/10101)
- Improve `pyright` tests, refactor model decorators signatures by [@​Viicos](https://redirect.github.com/Viicos) in [#​10092](https://redirect.github.com/pydantic/pydantic/pull/10092)
- Fix `ip` serialization logic by [@​sydney-runkle](https://redirect.github.com/sydney-runkle) in [#​10112](https://redirect.github.com/pydantic/pydantic/pull/10112)
- Warn when frozen defined twice for `dataclasses` by [@​mochi22](https://redirect.github.com/mochi22) in [#​10082](https://redirect.github.com/pydantic/pydantic/pull/10082)
- Do not compute JSON Schema default when plain serializers are used with `when_used` set to `'json-unless-none'` and the default value is `None` by [@​Viicos](https://redirect.github.com/Viicos) in [#​10121](https://redirect.github.com/pydantic/pydantic/pull/10121)
- Fix `ImportString` special cases by [@​sydney-runkle](https://redirect.github.com/sydney-runkle) in [#​10137](https://redirect.github.com/pydantic/pydantic/pull/10137)
- Blacklist default globals to support exotic user code with `__` prefixed annotations by [@​sydney-runkle](https://redirect.github.com/sydney-runkle) in [#​10136](https://redirect.github.com/pydantic/pydantic/pull/10136)
- Handle `nullable` schemas with `serialization` schema available during JSON Schema generation by [@​Viicos](https://redirect.github.com/Viicos) in [#​10132](https://redirect.github.com/pydantic/pydantic/pull/10132)
- Reorganize `BaseModel` annotations by [@​kc0506](https://redirect.github.com/kc0506) in [#​10110](https://redirect.github.com/pydantic/pydantic/pull/10110)
- Fix core schema simplification when serialization schemas are involved in specific scenarios by [@​Viicos](https://redirect.github.com/Viicos) in [#​10155](https://redirect.github.com/pydantic/pydantic/pull/10155)
- Add support for stringified annotations when using `PrivateAttr` with `Annotated` by [@​Viicos](https://redirect.github.com/Viicos) in [#​10157](https://redirect.github.com/pydantic/pydantic/pull/10157)
- Fix JSON Schema `number` type for literal and enum schemas by [@​Viicos](https://redirect.github.com/Viicos) in [#​10172](https://redirect.github.com/pydantic/pydantic/pull/10172)
- Fix JSON Schema generation of fields with plain validators in serialization mode by [@​Viicos](https://redirect.github.com/Viicos) in [#​10167](https://redirect.github.com/pydantic/pydantic/pull/10167)
- Fix invalid JSON Schemas being generated for functions in certain scenarios by [@​Viicos](https://redirect.github.com/Viicos) in [#​10188](https://redirect.github.com/pydantic/pydantic/pull/10188)
- Make sure generated JSON Schemas are valid in tests by [@​Viicos](https://redirect.github.com/Viicos) in [#​10182](https://redirect.github.com/pydantic/pydantic/pull/10182)
- Fix key error with custom serializer by [@​sydney-runkle](https://redirect.github.com/sydney-runkle) in [#​10200](https://redirect.github.com/pydantic/pydantic/pull/10200)
- Add 'wss' for allowed schemes in NatsDsn by [@​swelborn](https://redirect.github.com/swelborn) in [#​10224](https://redirect.github.com/pydantic/pydantic/pull/10224)
- Fix `Mapping` and `MutableMapping` annotations to use mapping schema instead of dict schema by [@​sydney-runkle](https://redirect.github.com/sydney-runkle) in [#​10020](https://redirect.github.com/pydantic/pydantic/pull/10020)
- Fix JSON Schema generation for constrained dates by [@​Viicos](https://redirect.github.com/Viicos) in [#​10185](https://redirect.github.com/pydantic/pydantic/pull/10185)
- Fix discriminated union bug regression when using enums by [@​kfreezen](https://redirect.github.com/kfreezen) in [pydantic/pydantic-core#1286](https://redirect.github.com/pydantic/pydantic-core/pull/1286)
- Fix `field_serializer` with computed field when using `*` by [@​nix010](https://redirect.github.com/nix010) in [pydantic/pydantic-core#1349](https://redirect.github.com/pydantic/pydantic-core/pull/1349)
- Try each option in `Union` serializer before inference by [@​sydney-runkle](https://redirect.github.com/sydney-runkle) in [pydantic/pydantic-core#1398](https://redirect.github.com/pydantic/pydantic-core/pull/1398)
- Fix `float` serialization behavior in `strict` mode by [@​sydney-runkle](https://redirect.github.com/sydney-runkle) in [pydantic/pydantic-core#1400](https://redirect.github.com/pydantic/pydantic-core/pull/1400)
- Introduce `exactness` into Decimal validation logic to improve union validation behavior by [@​sydney-runkle](https://redirect.github.com/sydney-runkle) in in [pydantic/pydantic-core#1405](https://redirect.github.com/pydantic/pydantic-core/pull/1405)
- Fix new warnings assertions to use `pytest.warns()` by [@​mgorny](https://redirect.github.com/mgorny) in [#​10241](https://redirect.github.com/pydantic/pydantic/pull/10241)
- Fix a crash when cleaning the namespace in `ModelMetaclass` by [@​Viicos](https://redirect.github.com/Viicos) in [#​10242](https://redirect.github.com/pydantic/pydantic/pull/10242)
- Fix parent namespace issue with model rebuilds by [@​sydney-runkle](https://redirect.github.com/sydney-runkle) in [#​10257](https://redirect.github.com/pydantic/pydantic/pull/10257)
- Remove defaults filter for namespace by [@​sydney-runkle](https://redirect.github.com/sydney-runkle) in [#​10261](https://redirect.github.com/pydantic/pydantic/pull/10261)
- Use identity instead of equality after validating model in `__init__` by [@​Viicos](https://redirect.github.com/Viicos) in [#​10264](https://redirect.github.com/pydantic/pydantic/pull/10264)
- Support `BigInt` serialization for `int` subclasses by [@​kxx317](https://redirect.github.com/kxx317) in [pydantic/pydantic-core#1417](https://redirect.github.com/pydantic/pydantic-core/pull/1417)
- Support signature for wrap validators without `info` by [@​sydney-runkle](https://redirect.github.com/sydney-runkle) in [#​10277](https://redirect.github.com/pydantic/pydantic/pull/10277)
- Ensure `__pydantic_complete__` is set when rebuilding `dataclasses` by [@​Viicos](https://redirect.github.com/Viicos) in [#​10291](https://redirect.github.com/pydantic/pydantic/pull/10291)
- Respect `schema_generator` config value in `TypeAdapter` by [@​sydney-runkle](https://redirect.github.com/sydney-runkle) in [#​10300](https://redirect.github.com/pydantic/pydantic/pull/10300)
##### New Contributors
##### `pydantic`
- [@​kwint](https://redirect.github.com/kwint) made their first contribution in [#​9787](https://redirect.github.com/pydantic/pydantic/pull/9787)
- [@​seekinginfiniteloop](https://redirect.github.com/seekinginfiniteloop) made their first contribution in [#​9822](https://redirect.github.com/pydantic/pydantic/pull/9822)
- [@​a-alexander](https://redirect.github.com/a-alexander) made their first contribution in [#​9848](https://redirect.github.com/pydantic/pydantic/pull/9848)
- [@​maximilianfellhuber](https://redirect.github.com/maximilianfellhuber) made their first contribution in [#​9885](https://redirect.github.com/pydantic/pydantic/pull/9885)
- [@​karmaBonfire](https://redirect.github.com/karmaBonfire) made their first contribution in [#​9945](https://redirect.github.com/pydantic/pydantic/pull/9945)
- [@​s-rigaud](https://redirect.github.com/s-rigaud) made their first contribution in [#​9958](https://redirect.github.com/pydantic/pydantic/pull/9958)
- [@​msabramo](https://redirect.github.com/msabramo) made their first contribution in [#​9964](https://redirect.github.com/pydantic/pydantic/pull/9964)
- [@​DimaCybr](https://redirect.github.com/DimaCybr) made their first contribution in [#​9972](https://redirect.github.com/pydantic/pydantic/pull/9972)
- [@​kc0506](https://redirect.github.com/kc0506) made their first contribution in [#​9971](https://redirect.github.com/pydantic/pydantic/pull/9971)
- [@​haoyun](https://redirect.github.com/haoyun) made their first contribution in [#​9990](https://redirect.github.com/pydantic/pydantic/pull/9990)
- [@​radekwlsk](https://redirect.github.com/radekwlsk) made their first contribution in [#​9938](https://redirect.github.com/pydantic/pydantic/pull/9938)
- [@​dpeachey](https://redirect.github.com/dpeachey) made their first contribution in [#​10029](https://redirect.github.com/pydantic/pydantic/pull/10029)
- [@​BoxyUwU](https://redirect.github.com/BoxyUwU) made their first contribution in [#​10085](https://redirect.github.com/pydantic/pydantic/pull/10085)
- [@​mochi22](https://redirect.github.com/mochi22) made their first contribution in [#​10082](https://redirect.github.com/pydantic/pydantic/pull/10082)
- [@​aditkumar72](https://redirect.github.com/aditkumar72) made their first contribution in [#​10128](https://redirect.github.com/pydantic/pydantic/pull/10128)
- [@​changhc](https://redirect.github.com/changhc) made their first contribution in [#​9654](https://redirect.github.com/pydantic/pydantic/pull/9654)
- [@​insumanth](https://redirect.github.com/insumanth) made their first contribution in [#​10229](https://redirect.github.com/pydantic/pydantic/pull/10229)
- [@​AdolfoVillalobos](https://redirect.github.com/AdolfoVillalobos) made their first contribution in [#​10240](https://redirect.github.com/pydantic/pydantic/pull/10240)
- [@​bllchmbrs](https://redirect.github.com/bllchmbrs) made their first contribution in [#​10270](https://redirect.github.com/pydantic/pydantic/pull/10270)
##### `pydantic-core`
- [@​kfreezen](https://redirect.github.com/kfreezen) made their first contribution in [pydantic/pydantic-core#1286](https://redirect.github.com/pydantic/pydantic-core/pull/1286)
- [@​tinez](https://redirect.github.com/tinez) made their first contribution in [pydantic/pydantic-core#1368](https://redirect.github.com/pydantic/pydantic-core/pull/1368)
- [@​fft001](https://redirect.github.com/fft001) made their first contribution in [pydantic/pydantic-core#1362](https://redirect.github.com/pydantic/pydantic-core/pull/1362)
- [@​nix010](https://redirect.github.com/nix010) made their first contribution in [pydantic/pydantic-core#1349](https://redirect.github.com/pydantic/pydantic-core/pull/1349)
- [@​BoxyUwU](https://redirect.github.com/BoxyUwU) made their first contribution in [pydantic/pydantic-core#1379](https://redirect.github.com/pydantic/pydantic-core/pull/1379)
- [@​candleindark](https://redirect.github.com/candleindark) made their first contribution in [pydantic/pydantic-core#1404](https://redirect.github.com/pydantic/pydantic-core/pull/1404)
- [@​changhc](https://redirect.github.com/changhc) made their first contribution in [pydantic/pydantic-core#1331](https://redirect.github.com/pydantic/pydantic-core/pull/1331)
### [`v1.10.17`](https://redirect.github.com/pydantic/pydantic/blob/HEAD/HISTORY.md#v280-2024-07-01)
[Compare Source](https://redirect.github.com/pydantic/pydantic/compare/v1.10.16...v1.10.17)
[GitHub release](https://redirect.github.com/pydantic/pydantic/releases/tag/v2.8.0)
The code released in v2.8.0 is functionally identical to that of v2.8.0b1.
##### What's Changed
##### Packaging
- Update citation version automatically with new releases by [@​sydney-runkle](https://redirect.github.com/sydney-runkle) in [#​9673](https://redirect.github.com/pydantic/pydantic/pull/9673)
- Bump pyright to `v1.1.367` and add type checking tests for pipeline API by [@​adriangb](https://redirect.github.com/adriangb) in [#​9674](https://redirect.github.com/pydantic/pydantic/pull/9674)
- Update `pydantic.v1` stub to `v1.10.17` by [@​sydney-runkle](https://redirect.github.com/sydney-runkle) in [#​9707](https://redirect.github.com/pydantic/pydantic/pull/9707)
- General package updates to prep for `v2.8.0b1` by [@​sydney-runkle](https://redirect.github.com/sydney-runkle) in [#​9741](https://redirect.github.com/pydantic/pydantic/pull/9741)
- Bump `pydantic-core` to `v2.20.0` by [@​sydney-runkle](https://redirect.github.com/sydney-runkle) in [#​9745](https://redirect.github.com/pydantic/pydantic/pull/9745)
- Add support for Python 3.13 by [@​sydney-runkle](https://redirect.github.com/sydney-runkle) in [#​9743](https://redirect.github.com/pydantic/pydantic/pull/9743)
- Update `pdm` version used for `pdm.lock` to v2.16.1 by [@​sydney-runkle](https://redirect.github.com/sydney-runkle) in [#​9761](https://redirect.github.com/pydantic/pydantic/pull/9761)
- Update to `ruff` `v0.4.8` by [@​Viicos](https://redirect.github.com/Viicos) in [#​9585](https://redirect.github.com/pydantic/pydantic/pull/9585)
##### New Features
- Experimental: support `defer_build` for `TypeAdapter` by [@​MarkusSintonen](https://redirect.github.com/MarkusSintonen) in [#​8939](https://redirect.github.com/pydantic/pydantic/pull/8939)
- Implement `deprecated` field in json schema by [@​NeevCohen](https://redirect.github.com/NeevCohen) in [#​9298](https://redirect.github.com/pydantic/pydantic/pull/9298)
- Experimental: Add pipeline API by [@​adriangb](https://redirect.github.com/adriangb) in [#​9459](https://redirect.github.com/pydantic/pydantic/pull/9459)
- Add support for programmatic title generation by [@​NeevCohen](https://redirect.github.com/NeevCohen) in [#​9183](https://redirect.github.com/pydantic/pydantic/pull/9183)
- Implement `fail_fast` feature by [@​uriyyo](https://redirect.github.com/uriyyo) in [#​9708](https://redirect.github.com/pydantic/pydantic/pull/9708)
- Add `ser_json_inf_nan='strings'` mode to produce valid JSON by [@​josh-newman](https://redirect.github.com/josh-newman) in [pydantic/pydantic-core#1307](https://redirect.github.com/pydantic/pydantic-core/pull/1307)
##### Changes
- Add warning when "alias" is set in ignored `Annotated` field by [@​nix010](https://redirect.github.com/nix010) in [#​9170](https://redirect.github.com/pydantic/pydantic/pull/9170)
- Support serialization of some serializable defaults in JSON schema by [@​sydney-runkle](https://redirect.github.com/sydney-runkle) in [#​9624](https://redirect.github.com/pydantic/pydantic/pull/9624)
- Relax type specification for `__validators__` values in `create_model` by [@​sydney-runkle](https://redirect.github.com/sydney-runkle) in [#​9697](https://redirect.github.com/pydantic/pydantic/pull/9697)
- **Breaking Change:** Improve `smart` union matching logic by [@​sydney-runkle](https://redirect.github.com/sydney-runkle) in [pydantic/pydantic-core#1322](https://redirect.github.com/pydantic/pydantic-core/pull/1322)
You can read more about our `smart` union matching logic [here](https://docs.pydantic.dev/dev/concepts/unions/#smart-mode). In some cases, if the old behavior
is desired, you can switch to `left-to-right` mode and change the order of your `Union` members.
##### Performance
##### Internal Improvements
- ⚡️ Speed up `_display_error_loc()` by 25% in `pydantic/v1/error_wrappers.py` by [@​misrasaurabh1](https://redirect.github.com/misrasaurabh1) in [#​9653](https://redirect.github.com/pydantic/pydantic/pull/9653)
- ⚡️ Speed up `_get_all_json_refs()` by 34% in `pydantic/json_schema.py` by [@​misrasaurabh1](https://redirect.github.com/misrasaurabh1) in [#​9650](https://redirect.github.com/pydantic/pydantic/pull/9650)
- ⚡️ Speed up `is_pydantic_dataclass()` by 41% in `pydantic/dataclasses.py` by [@​misrasaurabh1](https://redirect.github.com/misrasaurabh1) in [#​9652](https://redirect.github.com/pydantic/pydantic/pull/9652)
- ⚡️ Speed up `to_snake()` by 27% in `pydantic/alias_generators.py` by [@​misrasaurabh1](https://redirect.github.com/misrasaurabh1) in [#​9747](https://redirect.github.com/pydantic/pydantic/pull/9747)
- ⚡️ Speed up `unwrap_wrapped_function()` by 93% in `pydantic/_internal/_decorators.py` by [@​misrasaurabh1](https://redirect.github.com/misrasaurabh1) in [#​9727](https://redirect.github.com/pydantic/pydantic/pull/9727)
##### Fixes
- Replace `__spec__.parent` with `__package__` by [@​hramezani](https://redirect.github.com/hramezani) in [#​9331](https://redirect.github.com/pydantic/pydantic/pull/9331)
- Fix Outputted Model JSON Schema for `Sequence` type by [@​anesmemisevic](https://redirect.github.com/anesmemisevic) in [#​9303](https://redirect.github.com/pydantic/pydantic/pull/9303)
- Fix typing of `_frame_depth` by [@​Viicos](https://redirect.github.com/Viicos) in [#​9353](https://redirect.github.com/pydantic/pydantic/pull/9353)
- Make `ImportString` json schema compatible by [@​amitschang](https://redirect.github.com/amitschang) in [#​9344](https://redirect.github.com/pydantic/pydantic/pull/9344)
- Hide private attributes (`PrivateAttr`) from `__init__` signature in type checkers by [@R
> ✂ **Note**
>
> PR body was truncated to here.
</details>
---
### Configuration
📅 **Schedule**: (in timezone Etc/UTC)
- Branch creation
- "every weekend"
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/canonical/rockcraft).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yMDkuMCIsInVwZGF0ZWRJblZlciI6IjQzLjIwOS4wIiwidGFyZ2V0QnJhbmNoIjoiaG90Zml4LzEuNSIsImxhYmVscyI6WyJQUjogRGVwZW5kZW5jaWVzIl19-->
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha | — | closed stale | Closed unmerged after failing tests and linters on the hotfix/1.5 dependency updates; no resolving commit was recorded. | |
| stealth/space-bunny-alpha | — | closed stale | Renovate PR #1223 was closed unmerged after tests and linters failed on the proposed hotfix/1.5 dependency updates; no resolving commit was recorded. | |
| qwen/qwen3.6-35b-a3b | — | — | Closed unmerged due to failing CI checks across multiple test suites and linters. Dependency updates were not applied. The automated bot will recreate the request. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Automated dependency updates for Jinja2, PyYAML, cryptography, pydantic, and others were successfully merged into the hotfix/1.5 branch. The pull request was automatically closed after merge by Renovate bot. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #865 build(deps): update bugfixes (hotfix/2.1) | craft-providers | closed | Dependency updates for hotfix/2.1 were closed unmerged after repeated integration-test failures; no resolving commit or release was recorded. | |
| #886 build(deps): update bugfixes (hotfix/2.1) | craft-providers | closed | Renovate PR #886 updated six dependencies for hotfix/2.1 but was closed unmerged after integration tests failed; no resolving merge commit was found. | |
| #809 build(deps): update bugfixes (hotfix/1.20) | craft-providers | closed | Closed unmerged after about 400 days without review; documentation checks passed, but integration, smoke, unit, and lint jobs failed, with no resolving commit found. | |
| #862 build(deps): update bugfixes (hotfix/2.1) | craft-providers | closed | Renovate PR #862 proposed six bugfix dependency updates for hotfix/2.1 but was closed unmerged after integration checks failed. | |
| #868 build(deps): update bugfixes (hotfix/2.1) | craft-providers | closed | Renovate PR #868 updated six dependencies for hotfix/2.1 but was closed unmerged after integration checks failed; no resolving commit was found. | |
| #844 build(deps): update bugfixes (hotfix/2.1) | craft-providers | closed | Closed unmerged after 343 days with no reviews; Linux integration jobs remained failing, leaving the hotfix/2.1 dependency refresh abandoned. | |
| #835 build(deps): update bugfixes (hotfix/2.1) | craft-providers | closed | Renovate PR #835 updated five dependencies on hotfix/2.1 but was closed unmerged after 364 days, with no reviewers or comments and failing Linux integration checks. | |
| #338 build(deps): update bugfixes (hotfix/3.2) | craft-store | closed | Closed unmerged after mr-cal marked the hotfix/3.2 branch stale on 2026-03-16; no dependency-update commit was found. | |
| #853 build(deps): update bugfixes (hotfix/2.1) | craft-providers | closed | Closed unmerged after 305 days without activity; six hotfix/2.1 dependency updates, including freezegun 1.5.5, were abandoned. | |
| #861 build(deps): update bugfixes (hotfix/2.1) | craft-providers | closed | Renovate's hotfix/2.1 dependency updates were closed unmerged after Linux and macOS integration tests failed; no resolving commit was found. |