|
| 1 | +## v2.11.0a1 (2025-01-30) |
| 2 | + |
| 3 | +[GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.11.0a1) |
| 4 | + |
| 5 | +### What's Changed |
| 6 | + |
| 7 | +Pydantic v2.11 is a version strongly focused on build time performance of Pydantic models (and core schema generation in general). |
| 8 | +This is an early alpha release, meant to collect early feedback from users having issues with core schema builds. |
| 9 | + |
| 10 | +#### Packaging |
| 11 | + |
| 12 | +* Bump dawidd6/action-download-artifact from 6 to 7 by @dependabot in [#11018](https://github.com/pydantic/pydantic/pull/11018) |
| 13 | +* Re-enable memray related tests on Python 3.12+ by @Viicos in [#11191](https://github.com/pydantic/pydantic/pull/11191) |
| 14 | +* Bump astral-sh/setup-uv to 5 by @dependabot in [#11205](https://github.com/pydantic/pydantic/pull/11205) |
| 15 | +* Bump `ruff` to v0.9.0 by @sydney-runkle in [#11254](https://github.com/pydantic/pydantic/pull/11254) |
| 16 | +* Regular `uv.lock` deps update by @sydney-runkle in [#11333](https://github.com/pydantic/pydantic/pull/11333) |
| 17 | +* Add a `check_pydantic_core_version()` function by @Viicos in [#11324](https://github.com/pydantic/pydantic/pull/11324) |
| 18 | +* Remove `greenlet` development dependency by @Viicos in [#11351](https://github.com/pydantic/pydantic/pull/11351) |
| 19 | +* Bump `pydantic-core` to v2.28.0 by @Viicos in [#11364](https://github.com/pydantic/pydantic/pull/11364) |
| 20 | + |
| 21 | +#### New Features |
| 22 | + |
| 23 | +* Support unsubstituted type variables with both a default and a bound or constraints by @FyZzyss in [#10789](https://github.com/pydantic/pydantic/pull/10789) |
| 24 | +* Add a `default_factory_takes_validated_data` property to `FieldInfo` by @Viicos in [#11034](https://github.com/pydantic/pydantic/pull/11034) |
| 25 | +* Raise a better error when a generic alias is used inside `type[]` by @Viicos in [#11088](https://github.com/pydantic/pydantic/pull/11088) |
| 26 | +* Properly support PEP 695 generics syntax by @Viicos in [#11189](https://github.com/pydantic/pydantic/pull/11189) |
| 27 | +* Properly support type variable defaults by @Viicos in [#11332](https://github.com/pydantic/pydantic/pull/11332) |
| 28 | + |
| 29 | +#### Changes |
| 30 | + |
| 31 | +* Rework `create_model` field definitions format by @Viicos in [#11032](https://github.com/pydantic/pydantic/pull/11032) |
| 32 | +* Raise a deprecation warning when a field is annotated as final with a default value by @Viicos in [#11168](https://github.com/pydantic/pydantic/pull/11168) |
| 33 | +* Deprecate accessing `model_fields` and `model_computed_fields` on instances by @Viicos in [#11169](https://github.com/pydantic/pydantic/pull/11169) |
| 34 | +* Move core schema generation logic for path types inside the `GenerateSchema` class by @sydney-runkle in [#10846](https://github.com/pydantic/pydantic/pull/10846) |
| 35 | +* Move `deque` schema gen to `GenerateSchema` class by @sydney-runkle in [#11239](https://github.com/pydantic/pydantic/pull/11239) |
| 36 | +* Move `Mapping` schema gen to `GenerateSchema` to complete removal of `prepare_annotations_for_known_type` workaround by @sydney-runkle in [#11247](https://github.com/pydantic/pydantic/pull/11247) |
| 37 | +* Remove Python 3.8 Support by @sydney-runkle in [#11258](https://github.com/pydantic/pydantic/pull/11258) |
| 38 | +* Disable `pydantic-core` core schema validation by @sydney-runkle in [#11271](https://github.com/pydantic/pydantic/pull/11271) |
| 39 | + |
| 40 | +#### Performance |
| 41 | + |
| 42 | +* Only evaluate `FieldInfo` annotations if required during schema building by @Viicos in [#10769](https://github.com/pydantic/pydantic/pull/10769) |
| 43 | +* Optimize calls to `get_type_ref` by @Viicos in [#10863](https://github.com/pydantic/pydantic/pull/10863) |
| 44 | +* Improve `__setattr__` performance of Pydantic models by caching setter functions by @MarkusSintonen in [#10868](https://github.com/pydantic/pydantic/pull/10868) |
| 45 | +* Improve annotation application performance by @Viicos in [#11186](https://github.com/pydantic/pydantic/pull/11186) |
| 46 | +* Improve performance of `_typing_extra` module by @Viicos in [#11255](https://github.com/pydantic/pydantic/pull/11255) |
| 47 | +* Refactor and optimize schema cleaning logic by @Viicos and @MarkusSintonen in [#11244](https://github.com/pydantic/pydantic/pull/11244) |
| 48 | + |
| 49 | +#### Fixes |
| 50 | + |
| 51 | +* Add validation tests for `_internal/_validators.py` by @tkasuz in [#10763](https://github.com/pydantic/pydantic/pull/10763) |
| 52 | +* Improve `TypeAdapter` instance repr by @sydney-runkle in [#10872](https://github.com/pydantic/pydantic/pull/10872) |
| 53 | +* Revert "ci: use locally built pydantic-core with debug symbols by @sydney-runkle in [#10942](https://github.com/pydantic/pydantic/pull/10942) |
| 54 | +* Re-enable all FastAPI tests by @tamird in [#10948](https://github.com/pydantic/pydantic/pull/10948) |
| 55 | +* Fix typo in HISTORY.md. by @felixxm in [#11077](https://github.com/pydantic/pydantic/pull/11077) |
| 56 | +* Infer final fields with a default value as class variables in the mypy plugin by @Viicos in [#11121](https://github.com/pydantic/pydantic/pull/11121) |
| 57 | +* Recursively unpack `Literal` values if using PEP 695 type aliases by @Viicos in [#11114](https://github.com/pydantic/pydantic/pull/11114) |
| 58 | +* Override `__subclasscheck__` on `ModelMetaclass` to avoid memory leak and performance issues by @Viicos in [#11116](https://github.com/pydantic/pydantic/pull/11116) |
| 59 | +* Remove unused `_extract_get_pydantic_json_schema()` parameter by @Viicos in [#11155](https://github.com/pydantic/pydantic/pull/11155) |
| 60 | +* Add FastAPI and SQLModel to third-party tests by @sydney-runkle in [#11044](https://github.com/pydantic/pydantic/pull/11044) |
| 61 | +* Fix conditional expressions syntax for third-party tests by @Viicos in [#11162](https://github.com/pydantic/pydantic/pull/11162) |
| 62 | +* Move FastAPI tests to third-party workflow by @Viicos in [#11164](https://github.com/pydantic/pydantic/pull/11164) |
| 63 | +* Improve discriminated union error message for invalid union variants by @Viicos in [#11161](https://github.com/pydantic/pydantic/pull/11161) |
| 64 | +* Unpack PEP 695 type aliases if using the `Annotated` form by @Viicos in [#11109](https://github.com/pydantic/pydantic/pull/11109) |
| 65 | +* Include `openapi-python-client` check in issue creation for third-party failures, use `main` branch by @sydney-runkle in [#11182](https://github.com/pydantic/pydantic/pull/11182) |
| 66 | +* Add pandera third-party tests by @Viicos in [#11193](https://github.com/pydantic/pydantic/pull/11193) |
| 67 | +* Add ODMantic third-party tests by @sydney-runkle in [#11197](https://github.com/pydantic/pydantic/pull/11197) |
| 68 | +* Add missing stacklevel in `deprecated_instance_property` warning by @Viicos in [#11200](https://github.com/pydantic/pydantic/pull/11200) |
| 69 | +* Copy `WithJsonSchema` schema to avoid sharing mutated data by @thejcannon in [#11014](https://github.com/pydantic/pydantic/pull/11014) |
| 70 | +* Do not cache parametrized models when in the process of parametrizing another model by @Viicos in [#10704](https://github.com/pydantic/pydantic/pull/10704) |
| 71 | +* Re-enable Beanie third-party tests by @Viicos in [#11214](https://github.com/pydantic/pydantic/pull/11214) |
| 72 | +* Add discriminated union related metadata entries to the `CoreMetadata` definition by @Viicos in [#11216](https://github.com/pydantic/pydantic/pull/11216) |
| 73 | +* Consolidate schema definitions logic in the `_Definitions` class by @Viicos in [#11208](https://github.com/pydantic/pydantic/pull/11208) |
| 74 | +* Support initializing root model fields with values of the `root` type in the mypy plugin by @Viicos in [#11212](https://github.com/pydantic/pydantic/pull/11212) |
| 75 | +* Fix various issues with dataclasses and `use_attribute_docstrings` by @Viicos in [#11246](https://github.com/pydantic/pydantic/pull/11246) |
| 76 | +* Only compute normalized decimal places if necessary in `decimal_places_validator` by @misrasaurabh1 in [#11281](https://github.com/pydantic/pydantic/pull/11281) |
| 77 | +* Fix two misplaced sentences in validation errors documentation by @ananiavito in [#11302](https://github.com/pydantic/pydantic/pull/11302) |
| 78 | +* Fix mkdocstrings inventory example in documentation by @pawamoy in [#11311](https://github.com/pydantic/pydantic/pull/11311) |
| 79 | +* Add support for `validation_alias` in the mypy plugin by @Viicos in [#11295](https://github.com/pydantic/pydantic/pull/11295) |
| 80 | +* Do not transform model serializer functions as class methods in the mypy plugin by @Viicos in [#11298](https://github.com/pydantic/pydantic/pull/11298) |
| 81 | +* Simplify `GenerateJsonSchema.literal_schema()` implementation by @misrasaurabh1 in [#11321](https://github.com/pydantic/pydantic/pull/11321) |
| 82 | +* Add additional allowed schemes for `ClickHouseDsn` by @Maze21127 in [#11319](https://github.com/pydantic/pydantic/pull/11319) |
| 83 | +* Coerce decimal constraints to `Decimal` instances by @Viicos in [#11350](https://github.com/pydantic/pydantic/pull/11350) |
| 84 | +* Fix `ValueError` on year zero by @davidhewitt in [pydantic-core#1583](https://github.com/pydantic/pydantic-core/pull/1583) |
| 85 | + |
| 86 | +### New Contributors |
| 87 | + |
| 88 | +* @FyZzyss made their first contribution in [#10789](https://github.com/pydantic/pydantic/pull/10789) |
| 89 | +* @tamird made their first contribution in [#10948](https://github.com/pydantic/pydantic/pull/10948) |
| 90 | +* @felixxm made their first contribution in [#11077](https://github.com/pydantic/pydantic/pull/11077) |
| 91 | +* @alexprabhat99 made their first contribution in [#11082](https://github.com/pydantic/pydantic/pull/11082) |
| 92 | +* @Kharianne made their first contribution in [#11111](https://github.com/pydantic/pydantic/pull/11111) |
| 93 | +* @mdaffad made their first contribution in [#11177](https://github.com/pydantic/pydantic/pull/11177) |
| 94 | +* @thejcannon made their first contribution in [#11014](https://github.com/pydantic/pydantic/pull/11014) |
| 95 | +* @thomasfrimannkoren made their first contribution in [#11251](https://github.com/pydantic/pydantic/pull/11251) |
| 96 | +* @usernameMAI made their first contribution in [#11275](https://github.com/pydantic/pydantic/pull/11275) |
| 97 | +* @ananiavito made their first contribution in [#11302](https://github.com/pydantic/pydantic/pull/11302) |
| 98 | +* @pawamoy made their first contribution in [#11311](https://github.com/pydantic/pydantic/pull/11311) |
| 99 | +* @Maze21127 made their first contribution in [#11319](https://github.com/pydantic/pydantic/pull/11319) |
| 100 | + |
1 | 101 | ## v2.10.6 (2025-01-23)
|
2 | 102 |
|
3 | 103 | [GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.10.6)
|
|
9 | 109 | * Fix JSON Schema reference collection with `'examples'` keys by @Viicos in [#11325](https://github.com/pydantic/pydantic/pull/11325)
|
10 | 110 | * Fix url python serialization by @sydney-runkle in [#11331](https://github.com/pydantic/pydantic/pull/11331)
|
11 | 111 |
|
12 |
| - |
13 | 112 | ## v2.10.5 (2025-01-08)
|
14 | 113 |
|
15 | 114 | [GitHub release](https://github.com/pydantic/pydantic/releases/tag/v2.10.5)
|
|
75 | 174 | * Support serialization as any for `Secret` types and `Url` types by @sydney-runkle in [#10947](https://github.com/pydantic/pydantic/pull/10947)
|
76 | 175 | * Fix type hint of `Field.default` to be compatible with Python 3.8 and 3.9 by @Viicos in [#10972](https://github.com/pydantic/pydantic/pull/10972)
|
77 | 176 | * Add hashing support for URL types by @sydney-runkle in [#10975](https://github.com/pydantic/pydantic/pull/10975)
|
78 |
| -* Hide `BaseModel.__replace__` definition from type checkers by @Viicos in [10979](https://github.com/pydantic/pydantic/pull/10979) |
| 177 | +* Hide `BaseModel.__replace__` definition from type checkers by @Viicos in [#10979](https://github.com/pydantic/pydantic/pull/10979) |
79 | 178 |
|
80 | 179 | ## v2.10.1 (2024-11-21)
|
81 | 180 |
|
|
0 commit comments