2024-06-26 12:28:42 -04:00
|
|
|
# Versioning
|
|
|
|
|
|
2025-12-05 09:05:46 -06:00
|
|
|
uv is widely used in production and is stable software.
|
|
|
|
|
|
2024-06-26 12:28:42 -04:00
|
|
|
uv uses a custom versioning scheme in which the minor version number is bumped for breaking changes,
|
|
|
|
|
and the patch version number is bumped for bug fixes, enhancements, and other non-breaking changes.
|
|
|
|
|
|
2025-12-05 09:05:46 -06:00
|
|
|
The care we take in backwards-incompatible changes is proportional to the expected real-world
|
|
|
|
|
impact, not a function of arbitrary version numbering policies. We value the ability to iterate on
|
|
|
|
|
new features quickly and gather changes that _could_ be breaking into clearly marked releases.
|
2024-06-26 12:28:42 -04:00
|
|
|
|
|
|
|
|
uv's changelog can be [viewed on GitHub](https://github.com/astral-sh/uv/blob/main/CHANGELOG.md).
|
2024-10-24 12:23:56 -04:00
|
|
|
|
2025-11-20 15:26:44 -06:00
|
|
|
## Crate versioning
|
|
|
|
|
|
|
|
|
|
uv's crates are published to [crates.io](https://crates.io). The following crates follow the normal
|
|
|
|
|
uv versioning policy:
|
|
|
|
|
|
|
|
|
|
- `uv`
|
|
|
|
|
- `uv-build`
|
|
|
|
|
- `uv-version`
|
|
|
|
|
|
|
|
|
|
The `uv` and `uv-build` crates are versioned by the binary command-line interface. The Rust
|
|
|
|
|
interface of these crates does not follow semantic versioning.
|
|
|
|
|
|
|
|
|
|
The remainder of uv's crates provide **no stability guarantees**. The Rust interface is considered
|
|
|
|
|
internal and unstable. Consequently, they are versioned as `0.0.x`. The patch version is incremented
|
|
|
|
|
on every uv release, regardless of changes to the crate.
|
|
|
|
|
|
2024-10-24 12:23:56 -04:00
|
|
|
## Cache versioning
|
|
|
|
|
|
|
|
|
|
Cache versions are considered internal to uv, and so may be changed in a minor or patch release. See
|
2024-12-03 10:56:32 -06:00
|
|
|
[Cache versioning](../../concepts/cache.md#cache-versioning) for more.
|
2024-10-24 12:23:56 -04:00
|
|
|
|
|
|
|
|
## Lockfile versioning
|
|
|
|
|
|
|
|
|
|
The `uv.lock` schema version is considered part of the public API, and so will only be incremented
|
|
|
|
|
in a minor release as a breaking change. See
|
2024-12-03 10:56:32 -06:00
|
|
|
[Lockfile versioning](../../concepts/resolution.md#lockfile-versioning) for more.
|