This is the third 2.13 patch release, fixing issues related to the FieldInfo class, and reverting a change to the supported after model validator function signatures.
Raise a warning when an invalid after model validator function signature is raised by @Viicos in #12414.
Starting in 2.12.0, using class methods for after model validators raised an error, but the error wasn't raised concistently. We decided
to emit a deprecation warning instead.
Add FieldInfo.asdict() method, improve documentation around FieldInfo by @Viicos in #12411.
This also add back support for mutations on FieldInfo classes, that are reused as Annotated metadata. However, note that this is still not a supported pattern. Instead, please refer to the added example in the documentation.
The blog post section on changes was also updated to document the changes related to serialize_as_any.
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
| [pydantic](https://github.com/pydantic/pydantic) ([changelog](https://docs.pydantic.dev/latest/changelog/)) | patch | `==2.12.0` -> `==2.12.3` |
---
### Release Notes
<details>
<summary>pydantic/pydantic (pydantic)</summary>
### [`v2.12.3`](https://github.com/pydantic/pydantic/blob/HEAD/HISTORY.md#v2123-2025-10-17)
[Compare Source](https://github.com/pydantic/pydantic/compare/v2.12.2...v2.12.3)
[GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.12.3)
##### What's Changed
This is the third 2.13 patch release, fixing issues related to the `FieldInfo` class, and reverting a change to the supported
[*after* model validator](https://docs.pydantic.dev/latest/concepts/validators/#model-validators) function signatures.
- Raise a warning when an invalid after model validator function signature is raised by [@​Viicos](https://github.com/Viicos) in [#​12414](https://github.com/pydantic/pydantic/pull/12414).
Starting in 2.12.0, using class methods for *after* model validators raised an error, but the error wasn't raised concistently. We decided
to emit a deprecation warning instead.
- Add [`FieldInfo.asdict()`](https://docs.pydantic.dev/latest/api/fields/#pydantic.fields.FieldInfo.asdict) method, improve documentation around `FieldInfo` by [@​Viicos](https://github.com/Viicos) in [#​12411](https://github.com/pydantic/pydantic/pull/12411).
This also add back support for mutations on `FieldInfo` classes, that are reused as `Annotated` metadata. **However**, note that this is still
*not* a supported pattern. Instead, please refer to the [added example](https://docs.pydantic.dev/latest/examples/dynamic_models/) in the documentation.
The [blog post](https://pydantic.dev/articles/pydantic-v2-12-release#changes) section on changes was also updated to document the changes related to `serialize_as_any`.
### [`v2.12.2`](https://github.com/pydantic/pydantic/blob/HEAD/HISTORY.md#v2122-2025-10-14)
[Compare Source](https://github.com/pydantic/pydantic/compare/v2.12.1...v2.12.2)
[GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.12.2)
##### What's Changed
##### Fixes
- Release a new `pydantic-core` version, as a corrupted CPython 3.10 `manylinux2014_aarch64` wheel got uploaded ([pydantic-core#1843](https://github.com/pydantic/pydantic-core/pull/1843)).
- Fix issue with recursive generic models with a parent model class by [@​Viicos](https://github.com/Viicos) in [#​12398](https://github.com/pydantic/pydantic/pull/12398)
### [`v2.12.1`](https://github.com/pydantic/pydantic/blob/HEAD/HISTORY.md#v2121-2025-10-13)
[Compare Source](https://github.com/pydantic/pydantic/compare/v2.12.0...v2.12.1)
[GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.12.1)
##### What's Changed
This is the first 2.12 patch release, addressing most (but not all yet) regressions from the initial 2.12.0 release.
##### Fixes
- Do not evaluate annotations when inspecting validators and serializers by [@​Viicos](https://github.com/Viicos) in [#​12355](https://github.com/pydantic/pydantic/pull/12355)
- Make sure `None` is converted as `NoneType` in Python 3.14 by [@​Viicos](https://github.com/Viicos) in [#​12370](https://github.com/pydantic/pydantic/pull/12370)
- Backport V1 runtime warning when using Python 3.14 by [@​Viicos](https://github.com/Viicos) in [#​12367](https://github.com/pydantic/pydantic/pull/12367)
- Fix error message for invalid validator signatures by [@​Viicos](https://github.com/Viicos) in [#​12366](https://github.com/pydantic/pydantic/pull/12366)
- Populate field name in `ValidationInfo` for validation of default value by [@​Viicos](https://github.com/Viicos) in [pydantic-core#1826](https://github.com/pydantic/pydantic-core/pull/1826)
- Encode credentials in `MultiHostUrl` builder by [@​willswire](https://github.com/willswire) in [pydantic-core#1829](https://github.com/pydantic/pydantic-core/pull/1829)
- Respect field serializers when using `serialize_as_any` serialization flag by [@​davidhewitt](https://github.com/davidhewitt) in [pydantic-core#1829](https://github.com/pydantic/pydantic-core/pull/1829)
- Fix various `RootModel` serialization issues by [@​davidhewitt](https://github.com/davidhewitt) in [pydantic-core#1836](https://github.com/pydantic/pydantic-core/pull/1836)
##### New Contributors
- [@​willswire](https://github.com/willswire) made their first contribution in [pydantic-core#1829](https://github.com/pydantic/pydantic-core/pull/1829)
</details>
---
### Configuration
📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS40My41IiwidXBkYXRlZEluVmVyIjoiNDEuNDMuNSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
This PR contains the following updates:
==2.12.0->==2.12.3Release Notes
pydantic/pydantic (pydantic)
v2.12.3Compare Source
GitHub release
What's Changed
This is the third 2.13 patch release, fixing issues related to the
FieldInfoclass, and reverting a change to the supportedafter model validator function signatures.
Starting in 2.12.0, using class methods for after model validators raised an error, but the error wasn't raised concistently. We decided
to emit a deprecation warning instead.
FieldInfo.asdict()method, improve documentation aroundFieldInfoby @Viicos in #12411.This also add back support for mutations on
FieldInfoclasses, that are reused asAnnotatedmetadata. However, note that this is stillnot a supported pattern. Instead, please refer to the added example in the documentation.
The blog post section on changes was also updated to document the changes related to
serialize_as_any.v2.12.2Compare Source
GitHub release
What's Changed
Fixes
pydantic-coreversion, as a corrupted CPython 3.10manylinux2014_aarch64wheel got uploaded (pydantic-core#1843).v2.12.1Compare Source
GitHub release
What's Changed
This is the first 2.12 patch release, addressing most (but not all yet) regressions from the initial 2.12.0 release.
Fixes
Noneis converted asNoneTypein Python 3.14 by @Viicos in #12370ValidationInfofor validation of default value by @Viicos in pydantic-core#1826MultiHostUrlbuilder by @willswire in pydantic-core#1829serialize_as_anyserialization flag by @davidhewitt in pydantic-core#1829RootModelserialization issues by @davidhewitt in pydantic-core#1836New Contributors
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Renovate Bot.