Avatar for the langchain-ai user
langchain-ai
langchain
BlogDocsChangelog

Performance History

Latest Results

fix(core): escape node metadata in Mermaid labels List and string metadata values are formatted and escaped with Mermaid entity codes; values that can't be shown as text are left out of the label.
sera-wi/core/mermaid-metadata-labels
2 hours ago
chore(deps): bump the minor-and-patch group across 3 directories with 32 updates (#41465) Bumps the minor-and-patch group with 12 updates in the /libs/core directory: | Package | From | To | | --- | --- | --- | | [langsmith](https://github.com/langchain-ai/langsmith-python) | `0.14.9` | `0.14.12` | | [tenacity](https://github.com/jd/tenacity) | `9.1.4` | `9.2.1` | | [jsonpatch](https://github.com/stefankoegl/python-json-patch) | `1.33` | `1.36` | | [pydantic](https://github.com/pydantic/pydantic) | `2.13.4` | `2.14.1` | | [ruff](https://github.com/astral-sh/ruff) | `0.16.4` | `0.17.1` | | [mypy](https://github.com/python/mypy) | `2.1.0` | `2.4.0` | | [setuptools](https://github.com/pypa/setuptools) | `84.1.0` | `84.2.1` | | [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.15.1` | `3.17.0` | | [responses](https://github.com/getsentry/responses) | `0.26.2` | `0.26.3` | | [pytest-socket](https://github.com/miketheman/pytest-socket) | `0.7.0` | `0.8.1` | | [blockbuster](https://github.com/cbornet/blockbuster) | `1.5.27` | `1.5.29` | | [pytest-benchmark](https://github.com/ionelmc/pytest-benchmark) | `5.2.3` | `5.3.0` | Bumps the minor-and-patch group with 24 updates in the /libs/langchain directory: | Package | From | To | | --- | --- | --- | | [langsmith](https://github.com/langchain-ai/langsmith-python) | `0.14.9` | `0.14.12` | | [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.14.1` | | [ruff](https://github.com/astral-sh/ruff) | `0.15.5` | `0.17.1` | | [mypy](https://github.com/python/mypy) | `2.1.0` | `2.4.0` | | [setuptools](https://github.com/pypa/setuptools) | `84.1.0` | `84.2.1` | | [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.15.1` | `3.17.0` | | [responses](https://github.com/getsentry/responses) | `0.26.2` | `0.26.3` | | [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.52` | `2.0.55` | | [langchain-anthropic](https://github.com/langchain-ai/langchain) | `1.6.1` | `1.7.6` | | [langchain-azure-ai](https://github.com/langchain-ai/langchain-azure) | `1.2.8` | `1.2.9` | | [langchain-google-genai](https://github.com/langchain-ai/langchain-google) | `4.3.5` | `4.4.2` | | [langchain-fireworks](https://github.com/langchain-ai/langchain) | `1.6.0` | `1.7.1` | | [langchain-huggingface](https://github.com/langchain-ai/langchain) | `1.2.2` | `1.2.3` | | [langchain-aws](https://github.com/langchain-ai/langchain-aws) | `1.7.3` | `1.9.0` | | [langchain-deepseek](https://github.com/langchain-ai/langchain) | `1.1.0` | `1.1.1` | | [langchain-perplexity](https://github.com/langchain-ai/langchain) | `1.4.0` | `1.4.2` | | [wrapt](https://github.com/GrahamDumpleton/wrapt) | `2.3.0` | `2.5.1` | | [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.2.3` | `1.2.4` | | [types-pytz](https://github.com/python/typeshed) | `2026.3.1.20260727` | `2026.5.0.20261006` | | [fastapi](https://github.com/fastapi/fastapi) | `0.141.1` | `0.159.1` | | [playwright](https://github.com/microsoft/playwright-python) | `1.62.0` | `1.64.0` | | [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.4` | `3.5.6` | | [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.25.1` | `4.26.0` | | [numexpr](https://github.com/pydata/numexpr) | `2.13.0` | `2.14.1` | Bumps the minor-and-patch group with 18 updates in the /libs/langchain_v1 directory: | Package | From | To | | --- | --- | --- | | [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.14.1` | | [ruff](https://github.com/astral-sh/ruff) | `0.16.4` | `0.17.1` | | [mypy](https://github.com/python/mypy) | `2.1.0` | `2.4.0` | | [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.15.1` | `3.17.0` | | [blockbuster](https://github.com/cbornet/blockbuster) | `1.5.27` | `1.5.29` | | [pytest-benchmark](https://github.com/ionelmc/pytest-benchmark) | `5.2.3` | `5.3.0` | | [langchain-azure-ai](https://github.com/langchain-ai/langchain-azure) | `1.2.8` | `1.2.9` | | [langchain-google-genai](https://github.com/langchain-ai/langchain-google) | `4.3.5` | `4.4.2` | | [langchain-fireworks](https://github.com/langchain-ai/langchain) | `1.6.0` | `1.7.1` | | [langchain-huggingface](https://github.com/langchain-ai/langchain) | `1.2.2` | `1.2.3` | | [langchain-aws](https://github.com/langchain-ai/langchain-aws) | `1.7.3` | `1.9.0` | | [langchain-deepseek](https://github.com/langchain-ai/langchain) | `1.1.0` | `1.1.1` | | [langchain-perplexity](https://github.com/langchain-ai/langchain) | `1.4.0` | `1.4.2` | | [wrapt](https://github.com/GrahamDumpleton/wrapt) | `2.3.0` | `2.5.1` | | [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.2.3` | `1.2.4` | | [langgraph](https://github.com/langchain-ai/langgraph) | `1.2.13` | `1.2.16` | | [langchain-baseten](https://github.com/basetenlabs/langchain-baseten) | `0.2.3` | `0.2.5` | | [fastmcp](https://github.com/PrefectHQ/fastmcp) | `4.1.2` | `4.1.3` | Updates `langsmith` from 0.14.9 to 0.14.12 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/langchain-ai/langsmith-python/releases">langsmith's releases</a>.</em></p> <blockquote> <h2>v0.14.12</h2> <h2><a href="https://github.com/langchain-ai/langsmith-python/compare/v0.14.11...v0.14.12">0.14.12</a> (2026-10-21)</h2> <h3>Features</h3> <ul> <li><strong>agents:</strong> add agent registry CRUD to SDKs and CLI (<a href="https://github.com/langchain-ai/langsmith-python/commit/d3de1d5e012e92e9f585e43c2ed6bb2bc05703bc">d3de1d5</a>)</li> <li><strong>authz:</strong> add root_run_metadata policy conditions and compiled trace_filters (<a href="https://github.com/langchain-ai/langsmith-python/commit/64684e058ff7339501fb121920cb8d04a2517a43">64684e0</a>)</li> <li><strong>cli:</strong> expose runs share and get-url to the CLI (<a href="https://github.com/langchain-ai/langsmith-python/commit/fcfae7cde308b3962eb324bed7aa2772f116ea87">fcfae7c</a>)</li> <li><strong>evaluators:</strong> add trajectory input type for code evaluators (<a href="https://github.com/langchain-ai/langsmith-python/commit/9b6f6e540ac7c2f6f9e96d26ab78c546cf15e6af">9b6f6e5</a>)</li> <li><strong>sandboxes:</strong> let LangSmith login service URLs be embedded by named origins (<a href="https://github.com/langchain-ai/langsmith-python/commit/dcf7c3e1e2278756d4528a21ac279be2446db95f">dcf7c3e</a>)</li> <li><strong>sdk-python:</strong> create enforced feedback configs (<a href="https://github.com/langchain-ai/langsmith-python/commit/1e3cd1519115b805913c624239323c580fb14e2d">1e3cd15</a>)</li> </ul> <h3>Bug Fixes</h3> <ul> <li><strong>sandboxes:</strong> add cursor pagination to registry listing (<a href="https://github.com/langchain-ai/langsmith-python/commit/1a444601f66ef1fe6ac53671b89177a8b2fc2992">1a44460</a>)</li> <li><strong>sdk-python:</strong> use reference outputs for example creation (<a href="https://github.com/langchain-ai/langsmith-python/commit/f995f42b7e7d51ff8f0dcd1acc823573558a482f">f995f42</a>)</li> <li><strong>sdk-python:</strong> use reference outputs for example creation (<a href="https://github.com/langchain-ai/langsmith-python/commit/7cbb5087ab823fd1f3e97601d76a237a8e09a00b">7cbb508</a>)</li> <li><strong>sdk:</strong> keep wrap_openai Responses stream output when it ends incomplete or failed (<a href="https://github.com/langchain-ai/langsmith-python/commit/e88c57cd3f87ffec9dd6d46027026a6821ea8f03">e88c57c</a>)</li> <li>support Standard Units in sandbox cost breakdowns (<a href="https://github.com/langchain-ai/langsmith-python/commit/e9bee5c23eaf328998430a134318c5161dd02fcf">e9bee5c</a>)</li> </ul> <h3>Chores</h3> <ul> <li>remove langsmith-sdk and staging repo leftovers, update SDK docs (<a href="https://github.com/langchain-ai/langsmith-python/commit/459d4bd46205d422b0466227cb431de73973c2ca">459d4bd</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>move sandbox auth options to the bottom of README.md (<a href="https://redirect.github.com/langchain-ai/langsmith-python/issues/71">#71</a>) (<a href="https://github.com/langchain-ai/langsmith-python/commit/be8a4dbd51dab7866d9d7791ae31e8f4d51af400">be8a4db</a>)</li> </ul> <h2>v0.14.11</h2> <blockquote> <p>[!NOTE] The LangSmith Python SDK now lives in <a href="https://github.com/langchain-ai/langsmith-python">langchain-ai/langsmith-python</a>. Releases ship from here starting with 0.14.10. <a href="https://github.com/langchain-ai/langsmith-sdk">langchain-ai/langsmith-sdk</a> is frozen for Python and JS.</p> <p>Nothing changes for you:, same <code>langsmith</code> package on PyPI and same imports. Open new issues and PRs here.</p> </blockquote> <h2><a href="https://github.com/langchain-ai/langsmith-python/compare/v0.14.10...v0.14.11">0.14.11</a> (2026-10-16)</h2> <h3>Chores</h3> <ul> <li>drop the release-as pin now that 0.14.10 is out (<a href="https://redirect.github.com/langchain-ai/langsmith-python/issues/68">#68</a>) (<a href="https://github.com/langchain-ai/langsmith-python/commit/1b41cc8fae1b23bc16f50cd0355dc53092803580">1b41cc8</a>)</li> </ul> <h2>v0.14.10</h2> <h2><a href="https://github.com/langchain-ai/langsmith-python/compare/v0.14.9-rc.1...v0.14.10">0.14.10</a> (2026-10-15)</h2> <h3>Chores</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/langchain-ai/langsmith-python/blob/main/CHANGELOG.md">langsmith's changelog</a>.</em></p> <blockquote> <h2><a href="https://github.com/langchain-ai/langsmith-python/compare/v0.14.11...v0.14.12">0.14.12</a> (2026-10-21)</h2> <h3>Features</h3> <ul> <li><strong>agents:</strong> add agent registry CRUD to SDKs and CLI (<a href="https://github.com/langchain-ai/langsmith-python/commit/d3de1d5e012e92e9f585e43c2ed6bb2bc05703bc">d3de1d5</a>)</li> <li><strong>authz:</strong> add root_run_metadata policy conditions and compiled trace_filters (<a href="https://github.com/langchain-ai/langsmith-python/commit/64684e058ff7339501fb121920cb8d04a2517a43">64684e0</a>)</li> <li><strong>cli:</strong> expose runs share and get-url to the CLI (<a href="https://github.com/langchain-ai/langsmith-python/commit/fcfae7cde308b3962eb324bed7aa2772f116ea87">fcfae7c</a>)</li> <li><strong>evaluators:</strong> add trajectory input type for code evaluators (<a href="https://github.com/langchain-ai/langsmith-python/commit/9b6f6e540ac7c2f6f9e96d26ab78c546cf15e6af">9b6f6e5</a>)</li> <li><strong>sandboxes:</strong> let LangSmith login service URLs be embedded by named origins (<a href="https://github.com/langchain-ai/langsmith-python/commit/dcf7c3e1e2278756d4528a21ac279be2446db95f">dcf7c3e</a>)</li> <li><strong>sdk-python:</strong> create enforced feedback configs (<a href="https://github.com/langchain-ai/langsmith-python/commit/1e3cd1519115b805913c624239323c580fb14e2d">1e3cd15</a>)</li> </ul> <h3>Bug Fixes</h3> <ul> <li><strong>sandboxes:</strong> add cursor pagination to registry listing (<a href="https://github.com/langchain-ai/langsmith-python/commit/1a444601f66ef1fe6ac53671b89177a8b2fc2992">1a44460</a>)</li> <li><strong>sdk-python:</strong> use reference outputs for example creation (<a href="https://github.com/langchain-ai/langsmith-python/commit/f995f42b7e7d51ff8f0dcd1acc823573558a482f">f995f42</a>)</li> <li><strong>sdk-python:</strong> use reference outputs for example creation (<a href="https://github.com/langchain-ai/langsmith-python/commit/7cbb5087ab823fd1f3e97601d76a237a8e09a00b">7cbb508</a>)</li> <li><strong>sdk:</strong> keep wrap_openai Responses stream output when it ends incomplete or failed (<a href="https://github.com/langchain-ai/langsmith-python/commit/e88c57cd3f87ffec9dd6d46027026a6821ea8f03">e88c57c</a>)</li> <li>support Standard Units in sandbox cost breakdowns (<a href="https://github.com/langchain-ai/langsmith-python/commit/e9bee5c23eaf328998430a134318c5161dd02fcf">e9bee5c</a>)</li> </ul> <h3>Chores</h3> <ul> <li>remove langsmith-sdk and staging repo leftovers, update SDK docs (<a href="https://github.com/langchain-ai/langsmith-python/commit/459d4bd46205d422b0466227cb431de73973c2ca">459d4bd</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>move sandbox auth options to the bottom of README.md (<a href="https://redirect.github.com/langchain-ai/langsmith-python/issues/71">#71</a>) (<a href="https://github.com/langchain-ai/langsmith-python/commit/be8a4dbd51dab7866d9d7791ae31e8f4d51af400">be8a4db</a>)</li> </ul> <h2><a href="https://github.com/langchain-ai/langsmith-python/compare/v0.14.10...v0.14.11">0.14.11</a> (2026-10-16)</h2> <h3>Chores</h3> <ul> <li>drop the release-as pin now that 0.14.10 is out (<a href="https://redirect.github.com/langchain-ai/langsmith-python/issues/68">#68</a>) (<a href="https://github.com/langchain-ai/langsmith-python/commit/1b41cc8fae1b23bc16f50cd0355dc53092803580">1b41cc8</a>)</li> </ul> <h2><a href="https://github.com/langchain-ai/langsmith-python/compare/v0.14.9-rc.1...v0.14.10">0.14.10</a> (2026-10-15)</h2> <h3>Chores</h3> <ul> <li>switch release-please to the stable channel, release 0.14.10 (<a href="https://redirect.github.com/langchain-ai/langsmith-python/issues/52">#52</a>) (<a href="https://github.com/langchain-ai/langsmith-python/commit/9cbdb21b14c666279ae1465fe75b01cb5871a83b">9cbdb21</a>)</li> </ul> <h2><a href="https://github.com/langchain-ai/langsmith-python/compare/v0.12.6...v0.14.9-rc.1">0.14.9-rc.1</a> (2026-10-15)</h2> <h3>⚠ BREAKING CHANGES</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li>See full diff in <a href="https://github.com/langchain-ai/langsmith-python/commits/v0.14.12">compare view</a></li> </ul> </details> <br /> Updates `tenacity` from 9.1.4 to 9.2.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/jd/tenacity/releases">tenacity's releases</a>.</em></p> <blockquote> <h2>9.2.1</h2> <p>9.2.0 was tagged but never reached PyPI: the upload rejected its package description (<a href="https://redirect.github.com/jd/tenacity/issues/714">#714</a>). 9.2.1 is the first release on PyPI with everything in <a href="https://github.com/jd/tenacity/releases/tag/9.2.0">9.2.0</a>, plus the changes below.</p> <h2>What's Changed</h2> <ul> <li>chore(mypy): drop vestigial tornado ignore_missing_imports override by <a href="https://github.com/jd"><code>@​jd</code></a> in <a href="https://redirect.github.com/jd/tenacity/pull/676">jd/tenacity#676</a></li> <li>fix: annotate wait_base.<strong>radd</strong> as taking the int seed from sum() by <a href="https://github.com/jd"><code>@​jd</code></a> in <a href="https://redirect.github.com/jd/tenacity/pull/677">jd/tenacity#677</a></li> <li>chore(mypy): enable the strictness options <code>strict</code> leaves off by <a href="https://github.com/jd"><code>@​jd</code></a> in <a href="https://redirect.github.com/jd/tenacity/pull/678">jd/tenacity#678</a></li> <li>refactor: drop always-true truthiness checks and enable truthy-bool by <a href="https://github.com/jd"><code>@​jd</code></a> in <a href="https://redirect.github.com/jd/tenacity/pull/679">jd/tenacity#679</a></li> <li>refactor: declare BaseAction's REPR_FIELDS and NAME as ClassVar by <a href="https://github.com/jd"><code>@​jd</code></a> in <a href="https://redirect.github.com/jd/tenacity/pull/680">jd/tenacity#680</a></li> <li>test: fix possibly-undefined and deprecated call sites by <a href="https://github.com/jd"><code>@​jd</code></a> in <a href="https://redirect.github.com/jd/tenacity/pull/681">jd/tenacity#681</a></li> <li>refactor: mark overridden methods with <a href="https://github.com/override"><code>@​override</code></a> by <a href="https://github.com/jd"><code>@​jd</code></a> in <a href="https://redirect.github.com/jd/tenacity/pull/682">jd/tenacity#682</a></li> <li>fix: restore support for falsy wait values and callable + strategy by <a href="https://github.com/jd"><code>@​jd</code></a> in <a href="https://redirect.github.com/jd/tenacity/pull/694">jd/tenacity#694</a></li> <li>fix: read the tornado global live instead of an import-time snapshot by <a href="https://github.com/jd"><code>@​jd</code></a> in <a href="https://redirect.github.com/jd/tenacity/pull/696">jd/tenacity#696</a></li> <li>Respect enabled=False on the direct-call path by <a href="https://github.com/mahirhir"><code>@​mahirhir</code></a> in <a href="https://redirect.github.com/jd/tenacity/pull/645">jd/tenacity#645</a></li> <li>fix: only treat None and 0 as &quot;no wait&quot; by <a href="https://github.com/jd"><code>@​jd</code></a> in <a href="https://redirect.github.com/jd/tenacity/pull/741">jd/tenacity#741</a></li> <li>fix: restore PyPI-compatible package description by <a href="https://github.com/arindamsikder"><code>@​arindamsikder</code></a> in <a href="https://redirect.github.com/jd/tenacity/pull/725">jd/tenacity#725</a></li> <li>ci: check built distributions with twine by <a href="https://github.com/jd"><code>@​jd</code></a> in <a href="https://redirect.github.com/jd/tenacity/pull/742">jd/tenacity#742</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/mahirhir"><code>@​mahirhir</code></a> made their first contribution in <a href="https://redirect.github.com/jd/tenacity/pull/645">jd/tenacity#645</a></li> <li><a href="https://github.com/kozlek"><code>@​kozlek</code></a> made their first contribution in <a href="https://redirect.github.com/jd/tenacity/pull/733">jd/tenacity#733</a></li> <li><a href="https://github.com/arindamsikder"><code>@​arindamsikder</code></a> made their first contribution in <a href="https://redirect.github.com/jd/tenacity/pull/725">jd/tenacity#725</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/jd/tenacity/compare/9.2.0...9.2.1">https://github.com/jd/tenacity/compare/9.2.0...9.2.1</a></p> <h2>9.2.0</h2> <h2>What's Changed</h2> <ul> <li>Fix ordinal suffix generation for large numbers ending in 11, 12, 13 by <a href="https://github.com/ArmaanjeetSandhu"><code>@​ArmaanjeetSandhu</code></a> in <a href="https://redirect.github.com/jd/tenacity/pull/556">jd/tenacity#556</a></li> <li>build: replace tox with poethepoet + uv by <a href="https://github.com/jd"><code>@​jd</code></a> in <a href="https://redirect.github.com/jd/tenacity/pull/558">jd/tenacity#558</a></li> <li>docs: fix README badges by <a href="https://github.com/jd"><code>@​jd</code></a> in <a href="https://redirect.github.com/jd/tenacity/pull/559">jd/tenacity#559</a></li> <li>docs: add project URLs to pyproject.toml by <a href="https://github.com/jd"><code>@​jd</code></a> in <a href="https://redirect.github.com/jd/tenacity/pull/560">jd/tenacity#560</a></li> <li>docs: add local dev commands to contribute section by <a href="https://github.com/jd"><code>@​jd</code></a> in <a href="https://redirect.github.com/jd/tenacity/pull/561">jd/tenacity#561</a></li> <li>docs: modernize async examples by <a href="https://github.com/jd"><code>@​jd</code></a> in <a href="https://redirect.github.com/jd/tenacity/pull/562">jd/tenacity#562</a></li> <li>docs: set version in sphinx conf by <a href="https://github.com/jd"><code>@​jd</code></a> in <a href="https://redirect.github.com/jd/tenacity/pull/563">jd/tenacity#563</a></li> <li>fix: resolve tornado mypy errors instead of suppressing them by <a href="https://github.com/jd"><code>@​jd</code></a> in <a href="https://redirect.github.com/jd/tenacity/pull/568">jd/tenacity#568</a></li> <li>feat: add poe fmt task for auto-formatting by <a href="https://github.com/jd"><code>@​jd</code></a> in <a href="https://redirect.github.com/jd/tenacity/pull/569">jd/tenacity#569</a></li> <li>docs: replace curio example with trio by <a href="https://github.com/jd"><code>@​jd</code></a> in <a href="https://redirect.github.com/jd/tenacity/pull/570">jd/tenacity#570</a></li> <li>chore: enable ruff I, UP, B rules and auto-fix codebase by <a href="https://github.com/jd"><code>@​jd</code></a> in <a href="https://redirect.github.com/jd/tenacity/pull/571">jd/tenacity#571</a></li> <li>ci: harden release workflow by <a href="https://github.com/jd"><code>@​jd</code></a> in <a href="https://redirect.github.com/jd/tenacity/pull/575">jd/tenacity#575</a></li> <li>fix: use typing.Self on Python 3.11+ instead of typing_extensions by <a href="https://github.com/jd"><code>@​jd</code></a> in <a href="https://redirect.github.com/jd/tenacity/pull/576">jd/tenacity#576</a></li> <li>chore: bump tornado version floor to &gt;=6.0 by <a href="https://github.com/jd"><code>@​jd</code></a> in <a href="https://redirect.github.com/jd/tenacity/pull/578">jd/tenacity#578</a></li> <li>docs: clean up sphinx conf.py by <a href="https://github.com/jd"><code>@​jd</code></a> in <a href="https://redirect.github.com/jd/tenacity/pull/579">jd/tenacity#579</a></li> <li>refactor: remove stale noqa comments from <strong>init</strong>.py by <a href="https://github.com/jd"><code>@​jd</code></a> in <a href="https://redirect.github.com/jd/tenacity/pull/577">jd/tenacity#577</a></li> <li>refactor: enable additional ruff rules and fix violations by <a href="https://github.com/jd"><code>@​jd</code></a> in <a href="https://redirect.github.com/jd/tenacity/pull/584">jd/tenacity#584</a></li> <li>fix: enable mypy strict mode in all test files by <a href="https://github.com/jd"><code>@​jd</code></a> in <a href="https://redirect.github.com/jd/tenacity/pull/585">jd/tenacity#585</a></li> <li>fix: make LoggerProtocol compatible with logging.Logger by <a href="https://github.com/jd"><code>@​jd</code></a> in <a href="https://redirect.github.com/jd/tenacity/pull/586">jd/tenacity#586</a></li> <li>refactor: remove unused IterState.delay_since_first_attempt field by <a href="https://github.com/jd"><code>@​jd</code></a> in <a href="https://redirect.github.com/jd/tenacity/pull/587">jd/tenacity#587</a></li> <li>refactor: remove redundant raise before reraise() by <a href="https://github.com/jd"><code>@​jd</code></a> in <a href="https://redirect.github.com/jd/tenacity/pull/588">jd/tenacity#588</a></li> <li>refactor: replace deprecated typing.Pattern with re.Pattern by <a href="https://github.com/jd"><code>@​jd</code></a> in <a href="https://redirect.github.com/jd/tenacity/pull/589">jd/tenacity#589</a></li> <li>docs: fix typos in docstrings by <a href="https://github.com/jd"><code>@​jd</code></a> in <a href="https://redirect.github.com/jd/tenacity/pull/590">jd/tenacity#590</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/jd/tenacity/commit/4410996dd9a96864a2733ce0778bcaa112b72811"><code>4410996</code></a> ci: check built distributions with twine (<a href="https://redirect.github.com/jd/tenacity/issues/742">#742</a>)</li> <li><a href="https://github.com/jd/tenacity/commit/b23844175feb8c62f4ebb0ef0833d993f439fa1f"><code>b238441</code></a> fix: restore PyPI-compatible package description (<a href="https://redirect.github.com/jd/tenacity/issues/725">#725</a>)</li> <li><a href="https://github.com/jd/tenacity/commit/b6201eceedfc719e996dcbc3f6c17f21011fb236"><code>b6201ec</code></a> fix: only treat None and 0 as &quot;no wait&quot; (<a href="https://redirect.github.com/jd/tenacity/issues/741">#741</a>)</li> <li><a href="https://github.com/jd/tenacity/commit/4a74682e0186b5f2d25906aa190cd639c705a958"><code>4a74682</code></a> ci: drop the Mergify queue rule (<a href="https://redirect.github.com/jd/tenacity/issues/739">#739</a>)</li> <li><a href="https://github.com/jd/tenacity/commit/91169719f4fd127d680cafe026f1f95f04292094"><code>9116971</code></a> ci: drop Mergify dismiss_reviews rule (<a href="https://redirect.github.com/jd/tenacity/issues/737">#737</a>)</li> <li><a href="https://github.com/jd/tenacity/commit/2374b61424aab29769c3428b06d576ffc1a5a1d9"><code>2374b61</code></a> ci: rely on the ruleset for the ci-gate check (<a href="https://redirect.github.com/jd/tenacity/issues/736">#736</a>)</li> <li><a href="https://github.com/jd/tenacity/commit/6df1aab1a2df84f2779f5f308c6171df9d051a35"><code>6df1aab</code></a> ci: gate merges on a single ci-gate job (<a href="https://redirect.github.com/jd/tenacity/issues/734">#734</a>)</li> <li><a href="https://github.com/jd/tenacity/commit/5f540fad77cbd90b4bcb21a9b859d5b07c08ba54"><code>5f540fa</code></a> chore(mergify): replace deprecated autoqueue with auto_merge_conditions (<a href="https://redirect.github.com/jd/tenacity/issues/733">#733</a>)</li> <li><a href="https://github.com/jd/tenacity/commit/8be01b1daf2010566fd936a5c2214efefa43edff"><code>8be01b1</code></a> chore(deps-dev): bump ruff from 0.16.5 to 0.16.9 in the python group (<a href="https://redirect.github.com/jd/tenacity/issues/726">#726</a>)</li> <li><a href="https://github.com/jd/tenacity/commit/3e58094d3bc414975aad9eadf343a32bdb3b89b3"><code>3e58094</code></a> chore(deps-dev): bump the python group with 2 updates (<a href="https://redirect.github.com/jd/tenacity/issues/707">#707</a>)</li> <li>Additional commits viewable in <a href="https://github.com/jd/tenacity/compare/9.1.4...9.2.1">compare view</a></li> </ul> </details> <br /> Updates `jsonpatch` from 1.33 to 1.36 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/stefankoegl/python-json-patch/releases">jsonpatch's releases</a>.</em></p> <blockquote> <h2>1.36</h2> <h2>What's Changed</h2> <ul> <li>Honor optimization=False when generating patches by <a href="https://github.com/Apeksha9389"><code>@​Apeksha9389</code></a> in <a href="https://redirect.github.com/stefankoegl/python-json-patch/pull/233">stefankoegl/python-json-patch#233</a></li> <li>Preserve the original file when in-place CLI replacement fails by <a href="https://github.com/xingzhao-ji"><code>@​xingzhao-ji</code></a> in <a href="https://redirect.github.com/stefankoegl/python-json-patch/pull/232">stefankoegl/python-json-patch#232</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/Apeksha9389"><code>@​Apeksha9389</code></a> made their first contribution in <a href="https://redirect.github.com/stefankoegl/python-json-patch/pull/233">stefankoegl/python-json-patch#233</a></li> <li><a href="https://github.com/xingzhao-ji"><code>@​xingzhao-ji</code></a> made their first contribution in <a href="https://redirect.github.com/stefankoegl/python-json-patch/pull/232">stefankoegl/python-json-patch#232</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/stefankoegl/python-json-patch/compare/v1.35...v1.36">https://github.com/stefankoegl/python-json-patch/compare/v1.35...v1.36</a></p> <h2>1.35</h2> <h2>What's Changed</h2> <ul> <li>Refactor JsonPatch class and improve documentation by <a href="https://github.com/stefankoegl"><code>@​stefankoegl</code></a> in <a href="https://redirect.github.com/stefankoegl/python-json-patch/pull/204">stefankoegl/python-json-patch#204</a></li> <li>Add pytest configuration for non-standard test file naming by <a href="https://github.com/stefankoegl"><code>@​stefankoegl</code></a> in <a href="https://redirect.github.com/stefankoegl/python-json-patch/pull/199">stefankoegl/python-json-patch#199</a></li> <li>Document JSON Pointer escaping for special characters by <a href="https://github.com/stefankoegl"><code>@​stefankoegl</code></a> in <a href="https://redirect.github.com/stefankoegl/python-json-patch/pull/203">stefankoegl/python-json-patch#203</a></li> <li>Improve list diffing to avoid unnecessary item replacements by <a href="https://github.com/stefankoegl"><code>@​stefankoegl</code></a> in <a href="https://redirect.github.com/stefankoegl/python-json-patch/pull/201">stefankoegl/python-json-patch#201</a></li> <li>Use correct SPDX-Identifer by <a href="https://github.com/Volker-Weissmann"><code>@​Volker-Weissmann</code></a> in <a href="https://redirect.github.com/stefankoegl/python-json-patch/pull/209">stefankoegl/python-json-patch#209</a></li> <li>Improve coverage reporting by combining test runs by <a href="https://github.com/stefankoegl"><code>@​stefankoegl</code></a> in <a href="https://redirect.github.com/stefankoegl/python-json-patch/pull/210">stefankoegl/python-json-patch#210</a></li> <li>ci: run tests on every PR and pushes to master by <a href="https://github.com/hf-kklein"><code>@​hf-kklein</code></a> in <a href="https://redirect.github.com/stefankoegl/python-json-patch/pull/157">stefankoegl/python-json-patch#157</a></li> <li>Add support for Python 3.13 and 3.14 by <a href="https://github.com/stefankoegl"><code>@​stefankoegl</code></a> in <a href="https://redirect.github.com/stefankoegl/python-json-patch/pull/211">stefankoegl/python-json-patch#211</a></li> <li>Improve list diffing with sequence alignment to avoid cascading changes by <a href="https://github.com/stefankoegl"><code>@​stefankoegl</code></a> in <a href="https://redirect.github.com/stefankoegl/python-json-patch/pull/206">stefankoegl/python-json-patch#206</a></li> <li>Handle self-containing values in make_patch and add <a href="https://redirect.github.com/stefankoegl/python-json-patch/issues/180">#180</a> regression tests by <a href="https://github.com/stefankoegl"><code>@​stefankoegl</code></a> in <a href="https://redirect.github.com/stefankoegl/python-json-patch/pull/200">stefankoegl/python-json-patch#200</a></li> <li>Only reject '-' in replace when it refers to an array (<a href="https://redirect.github.com/stefankoegl/python-json-patch/issues/212">#212</a>) by <a href="https://github.com/stefankoegl"><code>@​stefankoegl</code></a> in <a href="https://redirect.github.com/stefankoegl/python-json-patch/pull/223">stefankoegl/python-json-patch#223</a></li> <li>Reject moving any location into its own children, fixes <a href="https://redirect.github.com/stefankoegl/python-json-patch/issues/214">#214</a> by <a href="https://github.com/stefankoegl"><code>@​stefankoegl</code></a> in <a href="https://redirect.github.com/stefankoegl/python-json-patch/pull/222">stefankoegl/python-json-patch#222</a></li> <li>Compare values in 'test' by JSON equality (<a href="https://redirect.github.com/stefankoegl/python-json-patch/issues/216">#216</a>) by <a href="https://github.com/stefankoegl"><code>@​stefankoegl</code></a> in <a href="https://redirect.github.com/stefankoegl/python-json-patch/pull/221">stefankoegl/python-json-patch#221</a></li> <li>Hash patch operations by their 'op' and 'path' (<a href="https://redirect.github.com/stefankoegl/python-json-patch/issues/217">#217</a>) by <a href="https://github.com/stefankoegl"><code>@​stefankoegl</code></a> in <a href="https://redirect.github.com/stefankoegl/python-json-patch/pull/220">stefankoegl/python-json-patch#220</a></li> <li>Require jsonpointer&gt;=3.2 by <a href="https://github.com/stefankoegl"><code>@​stefankoegl</code></a> in <a href="https://redirect.github.com/stefankoegl/python-json-patch/pull/218">stefankoegl/python-json-patch#218</a></li> <li>Raise documented exceptions for malformed patches and &quot;from&quot;: &quot;/-&quot; by <a href="https://github.com/stefankoegl"><code>@​stefankoegl</code></a> in <a href="https://redirect.github.com/stefankoegl/python-json-patch/pull/224">stefankoegl/python-json-patch#224</a></li> <li>Support whole document operations on scalar documents (<a href="https://redirect.github.com/stefankoegl/python-json-patch/issues/213">#213</a>) by <a href="https://github.com/stefankoegl"><code>@​stefankoegl</code></a> in <a href="https://redirect.github.com/stefankoegl/python-json-patch/pull/219">stefankoegl/python-json-patch#219</a></li> <li>Housekeeping: stale links, packaging cleanup, CI action versions by <a href="https://github.com/stefankoegl"><code>@​stefankoegl</code></a> in <a href="https://redirect.github.com/stefankoegl/python-json-patch/pull/225">stefankoegl/python-json-patch#225</a></li> <li>Find moves in make_patch without rewriting all later operations by <a href="https://github.com/stefankoegl"><code>@​stefankoegl</code></a> in <a href="https://redirect.github.com/stefankoegl/python-json-patch/pull/208">stefankoegl/python-json-patch#208</a></li> <li>Close test coverage gaps by <a href="https://github.com/stefankoegl"><code>@​stefankoegl</code></a> in <a href="https://redirect.github.com/stefankoegl/python-json-patch/pull/226">stefankoegl/python-json-patch#226</a></li> <li>Remove unreachable code from make_patch and the jsonpointer &lt; 3.2 shim by <a href="https://github.com/stefankoegl"><code>@​stefankoegl</code></a> in <a href="https://redirect.github.com/stefankoegl/python-json-patch/pull/227">stefankoegl/python-json-patch#227</a></li> <li>Test the index helpers of PatchOperation and MoveOperation by <a href="https://github.com/stefankoegl"><code>@​stefankoegl</code></a> in <a href="https://redirect.github.com/stefankoegl/python-json-patch/pull/228">stefankoegl/python-json-patch#228</a></li> <li>Upload coverage to Coveralls again by <a href="https://github.com/stefankoegl"><code>@​stefankoegl</code></a> in <a href="https://redirect.github.com/stefankoegl/python-json-patch/pull/229">stefankoegl/python-json-patch#229</a></li> <li>Close the original input before in-place replacement by <a href="https://github.com/fhgffy"><code>@​fhgffy</code></a> in <a href="https://redirect.github.com/stefankoegl/python-json-patch/pull/230">stefankoegl/python-json-patch#230</a></li> <li>Install the command line programs as console_scripts by <a href="https://github.com/stefankoegl"><code>@​stefankoegl</code></a> in <a href="https://redirect.github.com/stefankoegl/python-json-patch/pull/231">stefankoegl/python-json-patch#231</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/Volker-Weissmann"><code>@​Volker-Weissmann</code></a> made their first contribution in <a href="https://redirect.github.com/stefankoegl/python-json-patch/pull/209">stefankoegl/python-json-patch#209</a></li> <li><a href="https://github.com/fhgffy"><code>@​fhgffy</code></a> made their first contribution in <a href="https://redirect.github.com/stefankoegl/python-json-patch/pull/230">stefankoegl/python-json-patch#230</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/stefankoegl/python-json-patch/compare/v1.34...v1.35">https://github.com/stefankoegl/python-json-patch/compare/v1.34...v1.35</a></p> <h2>1.34</h2> <h2>What's Changed</h2> <ul> <li>Update documentation to include a link to the GitHub repo and installation instructions by <a href="https://github.com/werdnum"><code>@​werdnum</code></a> in <a href="https://redirect.github.com/stefankoegl/python-json-patch/pull/147">stefankoegl/python-json-patch#147</a></li> <li>Support only currently supported Python versions (by <a href="https://github.com/hf-kklein"><code>@​hf-kklein</code></a> in <a href="https://redirect.github.com/stefankoegl/python-json-patch/issues/155">#155</a>, <a href="https://redirect.github.com/stefankoegl/python-json-patch/issues/156">#156</a>, <a href="https://github.com/CyrilRoelandteNovance"><code>@​CyrilRoelandteNovance</code></a> in <a href="https://redirect.github.com/stefankoegl/python-json-patch/issues/162">#162</a>, <a href="https://github.com/stefankoegl"><code>@​stefankoegl</code></a> in <a href="https://redirect.github.com/stefankoegl/python-json-patch/issues/193">#193</a>)</li> <li>fix: remove unused exception variables (F841) by <a href="https://github.com/Mubashir78"><code>@​Mubashir78</code></a> in <a href="https://redirect.github.com/stefankoegl/python-json-patch/pull/186">stefankoegl/python-json-patch#186</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/stefankoegl/python-json-patch/commit/c39058eabd7e50e92e6a6fd7e915c0218c7284f3"><code>c39058e</code></a> bump version to 1.36</li> <li><a href="https://github.com/stefankoegl/python-json-patch/commit/592fbe8dcee4117a0f810f0780fae1c0a1e14ef3"><code>592fbe8</code></a> Merge pull request <a href="https://redirect.github.com/stefankoegl/python-json-patch/issues/232">#232</a> from xingzhao-ji/fix-cli-preserve-original-on-replace...</li> <li><a href="https://github.com/stefankoegl/python-json-patch/commit/dc04359a327ee8bf49e3392cd683177b52cc28ad"><code>dc04359</code></a> Merge pull request <a href="https://redirect.github.com/stefankoegl/python-json-patch/issues/233">#233</a> from Apeksha9389/fix/honor-diff-optimization</li> <li><a href="https://github.com/stefankoegl/python-json-patch/commit/2294792469c9c5294c6e2385a95326b971a88b6b"><code>2294792</code></a> fix: honor optimization=False when generating JSON patches</li> <li><a href="https://github.com/stefankoegl/python-json-patch/commit/2c8ccf25c423bce6d21ab8a4bb4d62b4a4b19a15"><code>2c8ccf2</code></a> Preserve the original file when in-place CLI replacement fails</li> <li><a href="https://github.com/stefankoegl/python-json-patch/commit/7e00b23e7793ab6d0bfead6af61393b7327102e8"><code>7e00b23</code></a> bump version to 1.35</li> <li><a href="https://github.com/stefankoegl/python-json-patch/commit/d38e01e5aa6a56d4d2133160dbd13b46914714e9"><code>d38e01e</code></a> Merge pull request <a href="https://redirect.github.com/stefankoegl/python-json-patch/issues/231">#231</a> from stefankoegl/claude/epic-einstein-apfbsl</li> <li><a href="https://github.com/stefankoegl/python-json-patch/commit/cfbcbc86d453b8417b1638420907e94e15461814"><code>cfbcbc8</code></a> Install the command line programs as console_scripts</li> <li><a href="https://github.com/stefankoegl/python-json-patch/commit/73be0bec6dbb1a8501fec52088b45582ba70c802"><code>73be0be</code></a> Merge pull request <a href="https://redirect.github.com/stefankoegl/python-json-patch/issues/230">#230</a> from fhgffy/fix-cli-inplace-file-handle</li> <li><a href="https://github.com/stefankoegl/python-json-patch/commit/8b33b6eb9e03e64fd54416186d21bf08150283b5"><code>8b33b6e</code></a> Close input handle before in-place CLI replacement</li> <li>Additional commits viewable in <a href="https://github.com/stefankoegl/python-json-patch/compare/v1.33...v1.36">compare view</a></li> </ul> </details> <br /> Updates `pydantic` from 2.13.4 to 2.14.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pydantic/pydantic/releases">pydantic's releases</a>.</em></p> <blockquote> <h2>v2.14.1 2026-10-11</h2> <h3>What's Changed</h3> <h4>Performance</h4> <ul> <li>Avoid Python tuple allocation during model fields validation by <a href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13955">#13955</a></li> <li>Avoid unnecessary extra dict allocation in model validation by <a href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13956">#13956</a></li> </ul> <h4>Fixes</h4> <ul> <li>Fix <code>arguments-v3</code> schema with variadic keywords by <a href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13954">#13954</a></li> <li>Fix <code>TypeError</code> on <code>ForwardRef</code> on Python 3.10.0 by <a href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13964">#13964</a></li> <li>Support <code>closed</code> and <code>extra_items</code> via inheritance in <code>TypedDict</code> by <a href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13967">#13967</a></li> <li>Enforce the <code>max_digits</code> whole-digits limit in the Python <code>Decimal</code> validator by <a href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13972">#13972</a></li> <li>Reject out-of-range int inputs for <code>timedelta</code> by <a href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13973">#13973</a></li> <li>Support named tuples in <code>Sequence</code> validation by <a href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13978">#13978</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/pydantic/pydantic/compare/v2.14.0...v2.14.1">https://github.com/pydantic/pydantic/compare/v2.14.0...v2.14.1</a></p> <h2>v2.14.0 2026-10-08</h2> <h3>What's Changed</h3> <p>The highlights of the v2.14 release are available in the <a href="https://pydantic.dev/articles/pydantic-v2-14-release">blog post</a>. Several minor changes (considered non-breaking changes according to our <a href="https://pydantic.dev/docs/validation/2.14/get-started/version-policy/#pydantic-v2">versioning policy</a>) are also included in this release. Make sure to look into them before upgrading.</p> <p>This release drops support for Python 3.9 and adds support for Python 3.15.</p> <h4>New Features</h4> <ul> <li>Add support for <code>multiple_of</code> constraint in <code>fraction</code> and <code>timedelta</code> core schemas by <a href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13873">#13873</a></li> <li>Add <code>__namespace__</code> parameter to <code>create_model()</code> by <a href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13895">#13895</a></li> </ul> <h4>Changes</h4> <ul> <li>Add an <code>ordered-dict</code> core schema by <a href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13796">#13796</a></li> <li>Add a <code>counter</code> core schema by <a href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13824">#13824</a></li> <li>Do not mutate <code>model_config</code> attribute by <a href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13825">#13825</a></li> <li>Reject newlines in <code>NameEmail</code> validation by <a href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13897">#13897</a></li> </ul> <h4>Fixes</h4> <ul> <li>Call enum constructors in both validation modes by <a href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13792">#13792</a></li> <li>Fix documentation examples not raising and remove unused <code>string_sub_type</code> unused error code by <a href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13821">#13821</a></li> <li>Catch <code>OverflowError</code> during <code>ByteSize</code> validation by <a href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13850">#13850</a></li> <li>Require <code>multiple_of</code> constraints to be positive by <a href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13862">#13862</a></li> <li>Always pop field name and model type stacks during schema generation by <a href="https://github.com/saquibjawedbit"><code>@​saquibjawedbit</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13859">#13859</a></li> <li>Handle <code>TypeError</code> gracefully during docstring extraction by <a href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13874">#13874</a></li> <li>Fix config propagation of stdlib dataclasses and <code>TypedDict</code>s in JSON Schema by <a href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13891">#13891</a></li> <li>Don't apply <code>ser_json_timedelta</code> to all datetime types in serialization inference by <a href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13892">#13892</a></li> <li>Encode JSON Schema defaults with a consistent configuration by <a href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13893">#13893</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/pydantic/pydantic/blob/main/HISTORY.md">pydantic's changelog</a>.</em></p> <blockquote> <!-- raw HTML omitted --> <!-- raw HTML omitted --> <!-- raw HTML omitted --> <h2>v2.14.0 (2026-10-08)</h2> <p><a href="https://github.com/pydantic/pydantic/releases/tag/v2.14.0">GitHub release</a></p> <h3>What's Changed</h3> <p>The highlights of the v2.14 release are available in the <a href="https://pydantic.dev/articles/pydantic-v2-14-release">blog post</a>. Several minor changes (considered non-breaking changes according to our <a href="https://pydantic.dev/docs/validation/2.14/get-started/version-policy/#pydantic-v2">versioning policy</a>) are also included in this release. Make sure to look into them before upgrading.</p> <p>This release drops support for Python 3.9 and adds support for Python 3.15.</p> <h4>New Features</h4> <ul> <li>Add support for <code>multiple_of</code> constraint in <code>fraction</code> and <code>timedelta</code> core schemas by <a href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13873">#13873</a></li> <li>Add <code>__namespace__</code> parameter to <code>create_model()</code> by <a href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13895">#13895</a></li> </ul> <h4>Changes</h4> <ul> <li>Add an <code>ordered-dict</code> core schema by <a href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13796">#13796</a></li> <li>Add a <code>counter</code> core schema by <a href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13824">#13824</a></li> <li>Do not mutate <code>model_config</code> attribute by <a href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13825">#13825</a></li> <li>Reject newlines in <code>NameEmail</code> validation by <a href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13897">#13897</a></li> </ul> <h4>Fixes</h4> <ul> <li>Call enum constructors in both validation modes by <a href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13792">#13792</a></li> <li>Fix documentation examples not raising and remove unused <code>string_sub_type</code> unused error code by <a href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13821">#13821</a></li> <li>Catch <code>OverflowError</code> during <code>ByteSize</code> validation by <a href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13850">#13850</a></li> <li>Require <code>multiple_of</code> constraints to be positive by <a href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13862">#13862</a></li> <li>Always pop field name and model type stacks during schema generation by <a href="https://github.com/saquibjawedbit"><code>@​saquibjawedbit</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13859">#13859</a></li> <li>Handle <code>TypeError</code> gracefully during docstring extraction by <a href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13874">#13874</a></li> <li>Fix config propagation of stdlib dataclasses and <code>TypedDict</code>s in JSON Schema by <a href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13891">#13891</a></li> <li>Don't apply <code>ser_json_timedelta</code> to all datetime types in serialization inference by <a href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13892">#13892</a></li> <li>Encode JSON Schema defaults with a consistent configuration by <a href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13893">#13893</a></li> <li>Propagate <code>init</code> and <code>kw_only=False</code> from <code>Field()</code> to stdlib dataclass fields by <a href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13898">#13898</a></li> <li>Respect propagated extra config in the JSON Schema of stdlib dataclasses by <a href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13899">#13899</a></li> <li>Handle OS errors during <code>ZoneInfo</code> validation by <a href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13912">#13912</a></li> <li>Handle exceptions during <code>Decimal</code> validation by <a href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13940">#13940</a></li> <li>Rebuild incomplete types during serialization inference by <a href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13922">#13922</a></li> <li>Reject large exponents in <code>Fraction</code> validation by <a href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13944">#13944</a></li> <li>Avoid validating URL prefix multiple times in multi host URLs by <a href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a href="https://redirect.github.com/pydantic/pydantic/pull/13945">#13945</a></li> </ul> <h3>New Contributors</h3> <ul> <li><a href="https://github.com/saquibjawedbit"><code>@​saquibjawedbit</code></a> made their first contribution in <a href="https://redirect.github.com/pydantic/pydantic/pull/13859">#13859</a></li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pydantic/pydantic/commit/b2212c787fb5c73386dc770681ec49cd09da8e73"><code>b2212c7</code></a> Prepare release v2.14.1</li> <li><a href="https://github.com/pydantic/pydantic/commit/968fb2b6eed196a3f17ca9a3aa4697b518614531"><code>968fb2b</code></a> Fix docs conversion table</li> <li><a href="https://github.com/pydantic/pydantic/commit/6adc8b3f6146cabf290bdefd51c87486dd659091"><code>6adc8b3</code></a> Support named tuples in <code>Sequence</code> validation</li> <li><a href="https://github.com/pydantic/pydantic/commit/7637fbc31c91f86870c3b34d220d5b7fd62c54db"><code>7637fbc</code></a> Reject out-of-range int inputs for <code>timedelta</code></li> <li><a href="https://github.com/pydantic/pydantic/commit/dfdbfcb5fa6cf0ae291cb8aebc5bf2153670fe9c"><code>dfdbfcb</code></a> Enforce the <code>max_digits</code> whole-digits limit in the Python <code>Decimal</code> validator</li> <li><a href="https://github.com/pydantic/pydantic/commit/e2456d3161d0969b917fc769b2e06b7e076cb886"><code>e2456d3</code></a> Support <code>closed</code> and <code>extra_items</code> via inheritance in <code>TypedDict</code></li> <li><a href="https://github.com/pydantic/pydantic/commit/317655dfe022ebfc818c8e8e744b671fe53d8c3f"><code>317655d</code></a> Harden CI security</li> <li><a href="https://github.com/pydantic/pydantic/commit/3ba1dd48939542a04748a9bcfd3248496fa0bcc5"><code>3ba1dd4</code></a> Fix <code>TypeError</code> on <code>ForwardRef</code> on Python 3.10.0</li> <li><a href="https://github.com/pydantic/pydantic/commit/43681abc488119808fcdae2f60cadd5520ceed26"><code>43681ab</code></a> Bump <code>samuelcolvin/check-python-version</code> action to v5.1</li> <li><a href="https://github.com/pydantic/pydantic/commit/d6bc53a8559d93814009eb2043db133a90f7f921"><code>d6bc53a</code></a> Avoid unnecessary extra dict allocation in model validation</li> <li>Additional commits viewable in <a href="https://github.com/pydantic/pydantic/compare/v2.13.4...v2.14.1">compare view</a></li> </ul> </details> <br /> Updates `ruff` from 0.16.4 to 0.17.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/astral-sh/ruff/releases">ruff's releases</a>.</em></p> <blockquote> <h2>0.17.1</h2> <h2>Release Notes</h2> <p>Released on 2026-10-15.</p> <h3>Preview features</h3> <ul> <li>[<code>pycodestyle</code>] Don't treat <code>None</code>, <code>True</code>, or <code>False</code> as keywords (<code>E271</code>-<code>E274</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/29322">#29322</a>)</li> </ul> <h3>Bug fixes</h3> <ul> <li>Fix dedent with multiple leading comments (<a href="https://redirect.github.com/astral-sh/ruff/pull/29382">#29382</a>)</li> <li>[<code>flake8-pyi</code>] Detect legacy positional-only parameters in <code>__new__</code> methods (<code>PYI063</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/28502">#28502</a>)</li> <li>[<code>flake8-pyi</code>] Fix false positives on quoted annotations (<code>PYI036</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/29274">#29274</a>)</li> <li>[<code>perflint</code>] Avoid invalid comprehension suggestions (<code>PERF401</code>, <code>PERF403</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/29366">#29366</a>)</li> </ul> <h3>Rule changes</h3> <ul> <li>Treat more <code>collections</code> and <code>weakref</code> containers as mutable (<a href="https://redirect.github.com/astral-sh/ruff/pull/29213">#29213</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>[<code>flake8-import-conventions</code>] Update default and example <code>aliases</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/29333">#29333</a>)</li> </ul> <h3>Contributors</h3> <ul> <li><a href="https://github.com/fixfon"><code>@​fixfon</code></a></li> <li><a href="https://github.com/mmaxjr"><code>@​mmaxjr</code></a></li> <li><a href="https://github.com/joshuavetos"><code>@​joshuavetos</code></a></li> <li><a href="https://github.com/nekomario28"><code>@​nekomario28</code></a></li> <li><a href="https://github.com/ntBre"><code>@​ntBre</code></a></li> <li><a href="https://github.com/shan3520"><code>@​shan3520</code></a></li> </ul> <h2>Install ruff 0.17.1</h2> <h3>Install prebuilt binaries via shell script</h3> <pre lang="sh"><code>curl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.17.1/ruff-installer.sh | sh </code></pre> <h3>Install prebuilt binaries via powershell script</h3> <pre lang="sh"><code>powershell -ExecutionPolicy Bypass -c &quot;irm https://releases.astral.sh/github/ruff/releases/download/0.17.1/ruff-installer.ps1 | iex&quot; </code></pre> <h2>Download ruff 0.17.1</h2> <p>| File | Platform | Checksum |</p> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md">ruff's changelog</a>.</em></p> <blockquote> <h2>0.17.1</h2> <p>Released on 2026-10-15.</p> <h3>Preview features</h3> <ul> <li>[<code>pycodestyle</code>] Don't treat <code>None</code>, <code>True</code>, or <code>False</code> as keywords (<code>E271</code>-<code>E274</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/29322">#29322</a>)</li> </ul> <h3>Bug fixes</h3> <ul> <li>Fix dedent with multiple leading comments (<a href="https://redirect.github.com/astral-sh/ruff/pull/29382">#29382</a>)</li> <li>[<code>flake8-pyi</code>] Detect legacy positional-only parameters in <code>__new__</code> methods (<code>PYI063</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/28502">#28502</a>)</li> <li>[<code>flake8-pyi</code>] Fix false positives on quoted annotations (<code>PYI036</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/29274">#29274</a>)</li> <li>[<code>perflint</code>] Avoid invalid comprehension suggestions (<code>PERF401</code>, <code>PERF403</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/29366">#29366</a>)</li> </ul> <h3>Rule changes</h3> <ul> <li>Treat more <code>collections</code> and <code>weakref</code> containers as mutable (<a href="https://redirect.github.com/astral-sh/ruff/pull/29213">#29213</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>[<code>flake8-import-conventions</code>] Update default and example <code>aliases</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/29333">#29333</a>)</li> </ul> <h3>Contributors</h3> <ul> <li><a href="https://github.com/fixfon"><code>@​fixfon</code></a></li> <li><a href="https://github.com/mmaxjr"><code>@​mmaxjr</code></a></li> <li><a href="https://github.com/joshuavetos"><code>@​joshuavetos</code></a></li> <li><a href="https://github.com/nekomario28"><code>@​nekomario28</code></a></li> <li><a href="https://github.com/ntBre"><code>@​ntBre</code></a></li> <li><a href="https://github.com/shan3520"><code>@​shan3520</code></a></li> </ul> <h2>0.17.0</h2> <p>Released on 2026-10-09.</p> <p>The executables in our macOS and Windows release archives and <code>ruff</code> wheels are now code-signed. macOS executables are signed with an Apple Developer ID certificate and notarized by Apple. Windows executables have timestamped Authenticode signatures from Azure Artifact Signing. This enables verification of the release publisher and binary integrity, supports publisher-based allowlisting, and should reduce security warnings and antivirus false positives.</p> <h3>Breaking changes</h3> <ul> <li> <p>Update the default and latest Python versions for 3.15 (<a href="https://redirect.github.com/astral-sh/ruff/pull/28792">#28792</a>)</p> <p>Ruff now defaults to Python 3.11 instead of 3.10 when no Python version is configured through <a href="https://docs.astral.sh/ruff/settings/#target-version"><code>target-version</code></a> or <a href="https://docs.astral.sh/ruff/configuration/#inferring-the-python-version"><code>requires-python</code></a>. When checking for syntax errors without a configured Python version, Ruff now defaults to Python 3.15</p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/astral-sh/ruff/commit/4683270c69cbdaf6ad64d3f983fc458d5a43b41f"><code>4683270</code></a> Bump version to 0.17.1 (<a href="https://redirect.github.com/astral-sh/ruff/issues/29420">#29420</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/3514027edb659bbc3c787d355be9d130e5587f15"><code>3514027</code></a> [ty] Update typing conformance suite pin (<a href="https://redirect.github.com/astral-sh/ruff/issues/29417">#29417</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/829455624d78f2e89669e4b4b14af2b96abdb1ae"><code>8294556</code></a> Update referenced PR security-review workflow (<a href="https://redirect.github.com/astral-sh/ruff/issues/29237">#29237</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/d1e1b1f69b511df4385f64b510eeec4da01c1a0e"><code>d1e1b1f</code></a> [ty] Preserve recursive aliases when rebuilding intersections (<a href="https://redirect.github.com/astral-sh/ruff/issues/29057">#29057</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/93526150df078af7dd8fc4226cdcc469539d2001"><code>9352615</code></a> [<code>perflint</code>] Avoid invalid comprehension suggestions (<code>PERF401</code>, <code>PERF403</code>) (...</li> <li><a href="https://github.com/astral-sh/ruff/commit/83a3afc3156d73ae4296f3fa74ede28e4c72bfcd"><code>83a3afc</code></a> Fix dedent with multiple leading comments (<a href="https://redirect.github.com/astral-sh/ruff/issues/29382">#29382</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/b42a8734410230f4529151782cae951b99bed858"><code>b42a873</code></a> [ty] Clarify object attribute write-contract rationale (<a href="https://redirect.github.com/astral-sh/ruff/issues/29384">#29384</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/d01678ebf594c97a7767d4372061c1f80ae5b5bb"><code>d01678e</code></a> [ty] Clarify object attribute write-contract rationale (<a href="https://redirect.github.com/astral-sh/ruff/issues/29384">#29384</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/355b42a7719d8a555e3ee50c89848b42d8a11eb5"><code>355b42a</code></a> [ty] Avoid writable override contracts from object (<a href="https://redirect.github.com/astral-sh/ruff/issues/29373">#29373</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/e26e6d2a54ac2c5e1f5b1945042de3ff3885bf8e"><code>e26e6d2</code></a> [ty] Collect intersection inference through constraint relations (<a href="https://redirect.github.com/astral-sh/ruff/issues/28677">#28677</a>)</li> <li>Additional commits viewable in <a href="https://github.com/astral-sh/ruff/compare/0.16.4...0.17.1">compare view</a></li> </ul> </details> <br /> Updates `mypy` from 2.1.0 to 2.4.0 <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/python/mypy/blob/master/CHANGELOG.md">mypy's changelog</a>.</em></p> <blockquote> <h1>Mypy Release Notes</h1> <h2>Next Release</h2> <h2>Mypy 2.4</h2> <p>We've just uploaded mypy 2.4.0 to the Python Package Index (<a href="https://pypi.org/project/mypy/">PyPI</a>). Mypy is a static type checker for Python. This release includes new features, performance improvements and bug fixes. You can install it as follows:</p> <pre><code>python3 -m pip install -U mypy </code></pre> <p>You can read the full documentation for this release on <a href="http://mypy.readthedocs.io">Read the Docs</a>.</p> <h3>Python 3.15 Support</h3> <p>Mypy 2.4 supports running on Python 3.15 and type checking most Python 3.15 features. This includes the new builtin <code>sentinel</code> type for sentinel values (PEP 661), which mypy now supports (see below for details). Lazy imports (PEP 810) and unpacking in comprehensions (PEP 798) are also supported. Closed TypedDicts (PEP 728) have been supported since mypy 2.2, but the <code>extra_items</code> TypedDict argument, also introduced in PEP 728, is still unsupported. Support for <code>extra_items</code> will be added in a future mypy release.</p> <h3>Native Parser Enabled by Default</h3> <p>Mypy now uses the new native parser by default. It's based on the Ruff parser, and it's significantly faster than the legacy parser, which uses the stdlib <code>ast</code> module. The native parser also has other benefits:</p> <ul> <li>You can target newer Python versions and use recent Python syntax even when running mypy on an older Python version. For example, you can use <code>--python-version 3.15</code> when running mypy on Python 3.14.</li> <li>Stub files can use syntax that is newer than the target Python version. For example, stubs can use the PEP 695 generic class syntax (<code>class Box[T]: ...</code>) when running on or targeting Python 3.10.</li> <li>Parallel type checking requires the native parser.</li> </ul> <p>The legacy parser is still available through <code>--no-native-parser</code>, or <code>native_parser = False</code> in the config file (<code>native_parser = false</code> under <code>[tool.mypy]</code> in pyproject.toml). We are planning to remove the legacy parser in early 2027. If you run into a problem with the native parser, please report it on the <a href="https://github.com/python/mypy/issues">issue tracker</a>.</p> <p>Unlike the legacy parser, the native parser doesn't support type comments for variables defined by <code>for</code> and <code>with</code> statements. These type comments are silently ignored, and the types of the variables are</p> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/python/mypy/commit/935ba8afba7ceacca0651579450c74339f343016"><code>935ba8a</code></a> Bump version to 2.4.0</li> <li><a href="https://github.com/python/mypy/commit/334a678967dc6bcda3d3f8cb82e253dd61fa2be9"><code>334a678</code></a> Add link for PR 22066 in mypy 2.4 changelog (<a href="https://redirect.github.com/python/mypy/issues/22082">#22082</a>)</li> <li><a href="https://github.com/python/mypy/commit/fe69660bcdaa76cccb1aedbb4b9c1c7627215571"><code>fe69660</code></a> Finalize mypy 2.4 changelog (<a href="https://redirect.github.com/python/mypy/issues/22080">#22080</a>)</li> <li><a href="https://github.com/python/mypy/commit/541fd87ac53581fb3c511b277fd780ec4e869c95"><code>541fd87</code></a> Various mypy 2.4 changelog updates (<a href="https://redirect.github.com/python/mypy/issues/22077">#22077</a>)</li> <li><a href="https://github.com/python/mypy/commit/b231182c0b2993918f74594236bda7d3ec6fcbe5"><code>b231182</code><…
master
13 hours ago

Latest Branches

CodSpeed Performance Gauge
+21%
fix(core): escape node metadata in Mermaid labels#41512
2 hours ago
7f582a2
sera-wi/core/mermaid-metadata-labels
CodSpeed Performance Gauge
+22%
7 hours ago
137a58c
eliornl/core/linear-stream-chunk-merge
CodSpeed Performance Gauge
+22%
10 hours ago
9bba57c
eyurtsev/core/v3-gateway-tracing
© 2026 CodSpeed Technology
Home Terms Privacy Docs