Skip to content

Commit 756f1d2

Browse files
authored
Add Version Policy to docs (#3301)
1 parent cedee4a commit 756f1d2

File tree

3 files changed

+36
-4
lines changed

3 files changed

+36
-4
lines changed

docs/changelog.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
# Upgrade Guide
22

3-
In September 2025, Pydantic AI reached V1, which means we're committed to API stability: we will not introduce changes that break your code until V2 (if we do, you can shout at us as it's definitely a mistake).
4-
Once we release V2, in April 2026 at the earliest, we'll continue to provide security fixes for V1 for another 6 months minimum, so you have time to upgrade your applications.
3+
In September 2025, Pydantic AI reached V1, which means we're committed to API stability: we will not introduce changes that break your code until V2. For more information, review our [Version Policy](version-policy.md).
54

65
## Breaking Changes
76

docs/version-policy.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
## Version Policy
2+
3+
We will not intentionally make breaking changes in minor releases of V1. V2 will be released in April 2026 at the earliest, 6 months after the release of V1 in September 2025.
4+
5+
Once we release V2, we'll continue to provide security fixes for V1 for another 6 months minimum, so you have time to upgrade your applications.
6+
7+
Functionality marked as deprecated will not be removed until V2.
8+
9+
Of course, some apparently safe changes and bug fixes will inevitably break some users' code — obligatory link to [xkcd](https://xkcd.com/1172/).
10+
11+
The following changes will **NOT** be considered breaking changes, and may occur in minor releases:
12+
13+
* Bug fixes that may result in existing code breaking, provided that such code was relying on undocumented features/constructs/assumptions.
14+
* Adding new [message parts][pydantic_ai.messages], [stream events][pydantic_ai.messages.AgentStreamEvent], or optional fields on existing message (part) and event types. Always code defensively when consuming message parts or event streams, and use the [`ModelMessagesTypeAdapter`][pydantic_ai.messages.ModelMessagesTypeAdapter] to (de)serialize message histories.
15+
* Changing OpenTelemetry span attributes. Because different [observability platforms](logfire.md#using-opentelemetry) support different versions of the [OpenTelemetry Semantic Conventions for Generative AI systems](https://opentelemetry.io/docs/specs/semconv/gen-ai/), Pydantic AI lets you configure the [instrumentation version](logfire.md#configuring-data-format), but the default version may change in a minor release. Span attributes for [Pydantic Evals](evals.md) may also change as we iterate on Evals support in [Pydantic Logfire](https://logfire.pydantic.dev/docs/guides/web-ui/evals/).
16+
* Changing how `__repr__` behaves, even of public classes.
17+
18+
In all cases we will aim to minimize churn and do so only when justified by the increase of quality of Pydantic AI for users.
19+
20+
## Beta Features
21+
22+
At Pydantic, we like to move quickly and innovate! To that end, minor releases may introduce beta features (indicated by a `beta` module) that are active works in progress. While in its beta phase, a feature's API and behaviors may not be stable, and it's very possible that changes made to the feature will not be backward-compatible. We aim to move beta features out of beta within a few months after initial release, once users have had a chance to provide feedback and test the feature in production.
23+
24+
## Support for Python versions
25+
26+
Pydantic will drop support for a Python version when the following conditions are met:
27+
28+
* The Python version has reached its [expected end of life](https://devguide.python.org/versions/).
29+
* less than 5% of downloads of the most recent minor release are using that version.

mkdocs.yml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ nav:
1414
- install.md
1515
- help.md
1616
- troubleshooting.md
17-
- changelog.md
1817

1918
- Documentation:
2019
- Core Concepts:
@@ -191,6 +190,8 @@ nav:
191190

192191
- Project:
193192
- contributing.md
193+
- changelog.md
194+
- version-policy.md
194195

195196
extra:
196197
# hide the "Made with Material for MkDocs" message
@@ -333,7 +334,6 @@ plugins:
333334
- install.md
334335
- help.md
335336
- troubleshooting.md
336-
- changelog.md
337337
Concepts documentation:
338338
- a2a.md
339339
- ag-ui.md
@@ -365,11 +365,15 @@ plugins:
365365
- durable_execution/*.md
366366
MCP:
367367
- mcp/*.md
368+
UI Event Streams:
369+
- ui/*.md
368370
Optional:
369371
- testing.md
370372
- cli.md
371373
- logfire.md
372374
- contributing.md
375+
- changelog.md
376+
- version-policy.md
373377
Examples:
374378
- examples/*.md
375379

0 commit comments

Comments
 (0)