Pydantic Release Notes

Follow

20 release notes curated from 1 source by the Releasebot Team. Last updated: Oct 12, 2026

Get this feed:
  • Oct 11, 2026
    • Date parsed from source:
      Oct 11, 2026
    • First seen by Releasebot:
      Oct 12, 2026
    Pydantic logo

    Pydantic

    v2.14.1 2026-10-11

    Pydantic ships performance improvements and bug fixes in model validation, TypedDict and tuple handling, Decimal and timedelta validation, and forward reference support, tightening correctness and reducing unnecessary allocations.

    What's Changed

    Performance

    • Avoid Python tuple allocation during model fields validation by @Viicos in #13955
    • Avoid unnecessary extra dict allocation in model validation by @Viicos in #13956

    Fixes

    • Fix arguments-v3 schema with variadic keywords by @Viicos in #13954
    • Fix TypeError on ForwardRef on Python 3.10.0 by @Viicos in #13964
    • Support closed and extra_items via inheritance in TypedDict by @Viicos in #13967
    • Enforce the max_digits whole-digits limit in the Python Decimal validator by @Viicos in #13972
    • Reject out-of-range int inputs for timedelta by @Viicos in #13973
    • Support named tuples in Sequence validation by @Viicos in #13978

    Full Changelog: v2.14.0...v2.14.1

    Original source
  • Oct 11, 2026
    • Date parsed from source:
      Oct 11, 2026
    • First seen by Releasebot:
      Oct 12, 2026
    Pydantic logo

    Pydantic

    core-v2.50.1

    Pydantic releases pydantic-core 2.50.1.

    pydantic-core release 2.50.1

    Original source
  • All of your release notes in one feed

    Join Releasebot and get updates from Pydantic and hundreds of other software products.

    Create account
  • Oct 8, 2026
    • Date parsed from source:
      Oct 8, 2026
    • First seen by Releasebot:
      Oct 12, 2026
    Pydantic logo

    Pydantic

    v2.14.0 2026-10-08

    Pydantic releases v2.14 with new support for Python 3.15, drops Python 3.9, and adds several validation and JSON Schema improvements. The update also brings new core schema features, safer config handling, and multiple bug fixes.

    What's Changed

    The highlights of the v2.14 release are available in the blog post.

    Several minor changes (considered non-breaking changes according to our versioning policy) are also included in this release. Make sure to look into them before upgrading.

    This release drops support for Python 3.9 and adds support for Python 3.15.

    New Features

    • Add support for multiple_of constraint in fraction and timedelta core schemas by @Viicos in #13873
    • Add namespace parameter to create_model() by @Viicos in #13895

    Changes

    • Add an ordered-dict core schema by @Viicos in #13796
    • Add a counter core schema by @Viicos in #13824
    • Do not mutate model_config attribute by @Viicos in #13825
    • Reject newlines in NameEmail validation by @Viicos in #13897

    Fixes

    • Call enum constructors in both validation modes by @Viicos in #13792
    • Fix documentation examples not raising and remove unused string_sub_type unused error code by @Viicos in #13821
    • Catch OverflowError during ByteSize validation by @Viicos in #13850
    • Require multiple_of constraints to be positive by @Viicos in #13862
    • Always pop field name and model type stacks during schema generation by @saquibjawedbit in #13859
    • Handle TypeError gracefully during docstring extraction by @Viicos in #13874
    • Fix config propagation of stdlib dataclasses and TypedDicts in JSON Schema by @Viicos in #13891
    • Don't apply ser_json_timedelta to all datetime types in serialization inference by @Viicos in #13892
    • Encode JSON Schema defaults with a consistent configuration by @Viicos in #13893
    • Propagate init and kw_only=False from Field() to stdlib dataclass fields by @Viicos in #13898
    • Respect propagated extra config in the JSON Schema of stdlib dataclasses by @Viicos in #13899
    • Handle OS errors during ZoneInfo validation by @Viicos in #13912
    • Handle exceptions during Decimal validation by @Viicos in #13940
    • Rebuild incomplete types during serialization inference by @Viicos in #13922
    • Reject large exponents in Fraction validation by @Viicos in #13944
    • Avoid validating URL prefix multiple times in multi host URLs by @Viicos in #13945

    Full Changelog: v2.13.0...v2.14.0

    Original source
  • Oct 8, 2026
    • Date parsed from source:
      Oct 8, 2026
    • First seen by Releasebot:
      Oct 12, 2026
    Pydantic logo

    Pydantic

    core-v2.50.0

    Pydantic releases pydantic-core 2.50.0.

    pydantic-core release 2.50.0

    Original source
  • Oct 8, 2026
    • Date parsed from source:
      Oct 8, 2026
    • First seen by Releasebot:
      Oct 12, 2026
    Pydantic logo

    Pydantic

    v2.14.0b2 2026-09-09

    Pydantic ships a pre-release with full Python 3.15 support, including frozendict, TypeForm, and a stabilized MISSING sentinel. It also adds lazy imports and broad JSON Schema, validation, and performance fixes across core behavior.

    What's Changed

    This pre-release adds full support for Python 3.15 specific features, such as support for frozendict, making use of TypeForm and stabilizing the MISSING sentinel type.

    New Features

    • Allow any CoreSchema to be used as serialization by @Viicos in #13680
    • Add support for frozendict type by @Viicos in #13634
    • Allow dict, frozendict and frozenset as defaultdict default factories by @Viicos in #13623
    • Add support for TypeForm by @Viicos in #13459.

    This adds support for static type checking where a type form is expected. For instance, type adapters:

    from pydantic import TypeAdapter
    ta = TypeAdapter(int | str)
    assert_type(ta.validate_python(1), int | str)
    
    • Add support for lazy imports by @Viicos in #13776
    • Stabilize MISSING sentinel by @Viicos in #13782.

    The MISSING sentinel is no longer experimental, and can be imported as from pydantic import MISSING.

    Changes

    • Take ser_json_temporal into account when generating JSON Schema by @shashiKundur1 in #13665
    • Use the field name in signature when validate_by_alias isFalse by @jaideeppyne in #13730
    • Add a deque core schema by @Viicos in #13757
    • Do not mention MISSING as a valid value in validation errors by @Viicos in #13779
    • Refactor Decimal JSON Schema pattern constraint by @Viicos in #13672

    Performance

    • Refactor type references logic by @Viicos in #13643
    • Improve performance of GenerateSchema.generate_schema() dispatching by @Viicos in #13614
    • Move schema gathering logic to pydantic-core by @Viicos in #13725
    • Improve performance of FieldInfo construction by @Viicos in #13726

    Fixes

    • Fix support for callable discriminators with PEP 695 type aliases by @Viicos in #13604
    • Preserve re.Pattern instance for compiled patterns in the experimental pipeline by @soma0212 in #13611
    • Fix missing GC traversal on some pydantic-core struct fields by @Viicos in #13624
    • Fix missing GC traversal in pydantic-core for GeneralFieldsSerializer by @Viicos in #13629
    • Fix JSON schema discriminator mapping keys for bool discriminators by @remi-fongaufier in #13632
    • Fix application of other constraints in the pipeline API by @Viicos in #13659
    • Support bare None annotation for discriminated unions by @Viicos in #13667
    • Respect runtime alias validation configuration when wrap validators are present by @Viicos in #13668
    • Exclude computed fields with exclude_if from JSON Schema required fields by @Bishwas-py in #13563
    • Use config of TypeAdapter in JSON Schema generation by @Viicos in #13676
    • Support populate_by_name in @validate_call by @Viicos in #13691
    • Allow None to serialize against secret fields by @Viicos in #13699
    • Do not drop include/exclude if serializer wasn't called by @Viicos in #13702
    • Don't apply serialization temporal formats to validation JSON schemas by @MLuc24 in #13711
    • Reflect str_min_length and str_max_length config in the JSON schema by @MLuc24 in #13714
    • Treat a class attribute set to None as existing when assigning with extra='allow' by @Kropiunig in #13718
    • Use the field name in validation JSON schemas when validate_by_alias is False by @MLuc24 in #13717
    • Do not rely on normalization to validate decimals by @Viicos in #13742
    • Handle any exception when trying to compute JSON Schema default by @Viicos in #13741
    • Fix Mypy plugin crash with import cycle by @Viicos in #13767
    • Fix supported constraints for types of datetime module by @Viicos in #13768
    • Fix inconsistencies between constraints and core schemas allowed values by @Viicos in #13772
    • Allow self to be used as a parameter with @validate_call by @Viicos in #13773
    • Fix race conditions in freethreaded build by @Viicos in #13785

    New Contributors

    • @soma0212 made their first contribution in #13611
    • @remi-fongaufier made their first contribution in #13632
    • @shashiKundur1 made their first contribution in #13665
    • @MLuc24 made their first contribution in #13711
    • @jaideeppyne made their first contribution in #13730

    Full Changelog: v2.14.0a1...v2.14.0b2

    Original source
  • Similar to Pydantic with recent updates:

  • Oct 8, 2026
    • Date parsed from source:
      Oct 8, 2026
    • First seen by Releasebot:
      Oct 12, 2026
    Pydantic logo

    Pydantic

    v2.14.0b1 2026-08-06

    Pydantic releases the first beta of 2.14 with new features, performance improvements, and initial Python 3.15 support. It also adds stronger validation and serialization fixes, broader type support, and multiple model build optimizations.

    What's Changed

    This is the first beta release of the 2.14 version, providing some new features and performance improvements for model builds.

    This release is the first to provide initial support for Python 3.15, although not all 3.15 specific features are supported yet.

    Packaging

    • Add agent skills by @Viicos in #13193

    New Features

    • Add support for EllipsisType by @Viicos in #13484
    • Add initial support for Python 3.15 by @Viicos in #13587

    Changes

    • Populate slots from generic class during parameterization by @Viicos in #13243
    • Avoid using explicit Any in the Mypy plugin by @Viicos in #13196
    • Support Fraction type in pydantic-core by @Viicos in #13339
    • Use constant-time comparison for SecretStr and SecretBytes types by @Viicos in #13518
    • Fix application of constraints in pipeline API by @Viicos in #13516
    • Optimize type lookup logic in core schema generation by @Viicos in #13573
    • Add a named-tuple core schema by @Viicos in #13505
    • Raise explicit TypeError on invalid index_key serialization wrap handler by @Viicos in #13506

    Performance

    • Cache ModelPrivateAttr.default_factory_takes_validated_data property by @Viicos in #13390
    • Introduce micro-optimizations for model class building by @dmontagu in #13540
    • Try Format.VALUE before FORWARDREF when evaluating annotations in ModelMetaclass by @Viicos in #13584
    • Optimize type lookup logic in core schema generation by @Viicos in #13573
    • Avoid exponential core schema traversal in gather_schemas_for_cleaning() by @dmontagu in #13523

    Fixes

    • Validate falsy AliasGenerator outputs by @jiyujie2006 in #13248
    • Do not resolve recursive 'definitions-ref' schemas in schema cleaning by @Viicos in #13276
    • Fix missing max_length check on lazy iteration validation by @davidhewitt in #13278
    • Handle missing errors with default factories taking validated data by @Viicos in #13291
    • Recognise WindowsPath as a schema type by @davidhewitt in #13326
    • Fix application of nested operators in pipeline API by @Viicos in #13363
    • Fix type variable substitution in pydantic_extra by @Viicos in #13391
    • Fix json_schema_extra dict being dropped when a callable follows it in Annotated by @Srivatsa03 in #13374
    • Skip RootModel.init() in Mypy plugin by @Viicos in #13441
    • Defer placeholders in Mypy plugin by @Viicos in #13442
    • Do not ignore timezone offset when using 'seconds'/'milliseconds' temporal_mode by @Viicos in #13436
    • Make model rebuilding logic thread safe by @Viicos in #13438
    • Fix Interval zero bounds silently dropped in pipeline API by @pctablet505 in #13452
    • Sync RootModel.model_dump() signature with its parent by @Viicos in #13456
    • Return NotImplemented from URL ordering comparisons with foreign types by @chinesepowered in #13495
    • Don't error on unhashable generic arguments on generic Pydantic models by @Viicos in #13515
    • Fix population of SerializationInfo.exclude_computed_fields by @Viicos in #13560
    • Fix serialization of ValidateAs by @Viicos in #13487
    • Allow reuse of validators when plugins are set by @Viicos in #13535
    • Avoid double-wrapping polymorphism trampoline for model serializers by @davidhewitt in #13552
    • Add AllowInfNan type to the field metadata gathering by @mberdyshev in #13586

    New Contributors

    • @jiyujie2006 made their first contribution in #13248
    • @pctablet505 made their first contribution in #13452
    • @LuShadowX made their first contribution in #13503
    • @mberdyshev made their first contribution in #13586

    Full Changelog: v2.14.0a1...v2.14.0b1

    Original source
  • Oct 7, 2026
    • Date parsed from source:
      Oct 7, 2026
    • First seen by Releasebot:
      Oct 7, 2026
    Pydantic logo

    Pydantic

    v2.14.0

    Pydantic releases 2.14.0.

    Release 2.14.0

    Original source
  • Sep 9, 2026
    • Date parsed from source:
      Sep 9, 2026
    • First seen by Releasebot:
      Sep 10, 2026
    Pydantic logo

    Pydantic

    v2.14.0b2

    Pydantic ships Release 2.14.0b2 for its latest beta update.

    Release 2.14.0b2

    Original source
  • Aug 28, 2026
    • Date parsed from source:
      Aug 28, 2026
    • First seen by Releasebot:
      Aug 28, 2026
    Pydantic logo

    Pydantic

    v2.13.5

    Pydantic fixes validator reuse, GC traversal issues, and smart union field counting in v2.13.5.

    v2.13.5 (2026-08-28)

    What's Changed

    Fixes

    • Allow reuse of validators when plugins are set by @Viicos in #13535
    • Fix missing GC traversal on some pydantic-core struct fields by @Viicos in #13624
    • Fix missing GC traversal in pydantic-core for GeneralFieldsSerializer by @Viicos in #13629
    • Count validated model fields once in smart unions by @tamird in #13731
    Original source
  • Aug 9, 2026
    • Date parsed from source:
      Aug 9, 2026
    • First seen by Releasebot:
      Jul 27, 2026
    • Modified by Releasebot:
      Oct 12, 2026
    Pydantic logo

    Pydantic

    core-v2.48.0

    Pydantic releases pydantic-core v2.48.0.

    pydantic-core release v2.48.0

    Original source
  • Aug 6, 2026
    • Date parsed from source:
      Aug 6, 2026
    • First seen by Releasebot:
      Aug 7, 2026
    Pydantic logo

    Pydantic

    v2.14.0b1

    Pydantic releases v2.14.0b1.

    Release v2.14.0b1

    Original source
  • May 22, 2026
    • Date parsed from source:
      May 22, 2026
    • First seen by Releasebot:
      Jul 27, 2026
    Pydantic logo

    Pydantic

    v2.14.0a1 2026-05-22

    Pydantic releases v2.14.0a1 with PyEmscripten wheel support, URL handling improvements, model_copy updates, and Mypy plugin fixes, while dropping Python 3.9 and eval_type_backport support.

    v2.14.0a1 (2026-05-22)

    What's Changed

    Packaging

    Add PyEmscripten platform tag support by @Viicos, @greateggsgreg and @sinaatalay in #13199:

    pydantic-core now has a 3.14 wheel published with the pyemscripten_2026_0 platform tag.

    Note that this wheel can only be used with Pyodide 314.0 and greater, still in development.

    It is recommended to wait for the final 314.0 release (and for Pydantic to publish a new wheel in a future 2.14 release).

    Changes

    Accept None in MultiHostUrl.build()'s hosts parameter by @Viicos in #13068

    Drop support for Python 3.9 by @Viicos in #13070

    Remove support for eval_type_backport() by @Viicos in #13133

    Only deepcopy non-updated fields in model_copy() by @connorcarpenter15 in #13087

    Fixes

    Add Mypy plugin workaround for dynamic models defined in functions by @ilevkivskyi in #13177

    Fallback to create_model() overload definition when base is set to a type variable in the Mypy plugin by @cyphercodes in #13146

    New Contributors

    @ilevkivskyi made their first contribution in #13177

    @cyphercodes made their first contribution in #13146

    @connorcarpenter15 made their first contribution in #13087

    Full Changelog: v2.13.4...v2.14.0a1

    Original source
  • May 6, 2026
    • Date parsed from source:
      May 6, 2026
    • First seen by Releasebot:
      Jul 27, 2026
    Pydantic logo

    Pydantic

    v2.13.4 2026-05-06

    Pydantic ships v2.13.4 with packaging updates and macOS linker flag fixes for root model metadata preservation.

    v2.13.4 (2026-05-06)

    What's Changed

    Packaging

    • Bump libc from 0.2.155 to 0.2.185 by @Viicos in #13109
    • Adapt pydantic-core linker flags on macOS by @washingtoneg and @Viicos in #13147

    Fixes

    • Preserve RootModel core metadata by @Viicos in #13129

    Full Changelog: v2.13.3...v2.13.4

    Original source
  • May 6, 2026
    • Date parsed from source:
      May 6, 2026
    • First seen by Releasebot:
      Jul 27, 2026
    Pydantic logo

    Pydantic

    core-v2.46.4

    Pydantic releases pydantic-core v2.46.3.

    pydantic-core release v2.46.3

    Original source
  • Apr 30, 2026
    • Date parsed from source:
      Apr 30, 2026
    • First seen by Releasebot:
      Jul 27, 2026
    Pydantic logo

    Pydantic

    core-v2.46.3

    Pydantic ships pydantic-core release v2.46.3.

    pydantic-core release v2.46.3

    Original source
Releasebot

Curated by the Releasebot team

Releasebot is an aggregator of official release notes from hundreds of software vendors and thousands of sources.

Our editorial process involves the manual review and audit of release notes procured with the help of automated systems.