generated from canonical/template-operator
-
Notifications
You must be signed in to change notification settings - Fork 9
Commit 85f7486
authored
Update charmcraft.yaml build tools (#426)
This PR contains the following updates:
| Package | Change | Age | Confidence | Update |
|---|---|---|---|---|
| [pip](https://redirect.github.com/pypa/pip)
([changelog](https://pip.pypa.io/en/stable/news/)) | `25.0.1` ->
`25.1.1` |
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
| minor |
| [poetry](https://redirect.github.com/python-poetry/poetry)
([changelog](https://python-poetry.org/history/)) | `2.1.2` -> `2.1.3` |
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
| patch |
| [rust-lang/rust](https://redirect.github.com/rust-lang/rust) |
`1.86.0` -> `1.88.0` |
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
| minor |
| [uv](https://pypi.org/project/uv/)
([source](https://redirect.github.com/astral-sh/uv),
[changelog](https://redirect.github.com/astral-sh/uv/blob/main/CHANGELOG.md))
| `0.6.13` -> `0.8.0` |
[](https://docs.renovatebot.com/merge-confidence/)
|
[](https://docs.renovatebot.com/merge-confidence/)
| minor |
---
### Release Notes
<details>
<summary>pypa/pip (pip)</summary>
###
[`v25.1.1`](https://redirect.github.com/pypa/pip/compare/25.1...25.1.1)
[Compare
Source](https://redirect.github.com/pypa/pip/compare/25.1...25.1.1)
###
[`v25.1`](https://redirect.github.com/pypa/pip/compare/25.0.1...25.1)
[Compare
Source](https://redirect.github.com/pypa/pip/compare/25.0.1...25.1)
</details>
<details>
<summary>python-poetry/poetry (poetry)</summary>
###
[`v2.1.3`](https://redirect.github.com/python-poetry/poetry/blob/HEAD/CHANGELOG.md#213---2025-05-04)
[Compare
Source](https://redirect.github.com/python-poetry/poetry/compare/2.1.2...2.1.3)
##### Changed
- Require `importlib-metadata<8.7` for Python 3.9 because of a breaking
change in importlib-metadata 8.7
([#​10374](https://redirect.github.com/python-poetry/poetry/pull/10374)).
##### Fixed
- Fix an issue where re-locking failed for incomplete
multiple-constraints dependencies with explicit sources
([#​10324](https://redirect.github.com/python-poetry/poetry/pull/10324)).
- Fix an issue where the `--directory` option did not work if a plugin,
which accesses the poetry instance during its activation, was installed
([#​10352](https://redirect.github.com/python-poetry/poetry/pull/10352)).
- Fix an issue where `poetry env activate -v` printed additional
information to stdout instead of stderr so that the output could not be
used as designed
([#​10353](https://redirect.github.com/python-poetry/poetry/pull/10353)).
- Fix an issue where the original error was not printed if building a
git dependency failed
([#​10366](https://redirect.github.com/python-poetry/poetry/pull/10366)).
- Fix an issue where wheels for the wrong platform were installed in
rare cases.
([#​10361](https://redirect.github.com/python-poetry/poetry/pull/10361)).
##### poetry-core
([`2.1.3`](https://redirect.github.com/python-poetry/poetry-core/releases/tag/2.1.3))
- Fix an issue where the union of specific inverse or partially inverse
markers was not simplified
([#​858](https://redirect.github.com/python-poetry/poetry-core/pull/858)).
- Fix an issue where optional dependencies defined in the `project`
section were treated as non-optional when a source was defined for them
in the `tool.poetry` section
([#​857](https://redirect.github.com/python-poetry/poetry-core/pull/857)).
- Fix an issue where markers with `===` were not parsed correctly
([#​860](https://redirect.github.com/python-poetry/poetry-core/pull/860)).
- Fix an issue where local versions with upper case letters caused an
error
([#​859](https://redirect.github.com/python-poetry/poetry-core/pull/859)).
- Fix an issue where `extra` markers with a value starting with "in"
were not validated correctly
([#​862](https://redirect.github.com/python-poetry/poetry-core/pull/862)).
</details>
<details>
<summary>rust-lang/rust (rust-lang/rust)</summary>
###
[`v1.88.0`](https://redirect.github.com/rust-lang/rust/blob/HEAD/RELEASES.md#Version-1880-2025-06-26)
[Compare
Source](https://redirect.github.com/rust-lang/rust/compare/1.87.0...1.88.0)
\==========================
<a id="1.88.0-Language"></a>
## Language
- [Stabilize `#![feature(let_chains)]` in the 2024
edition.](https://redirect.github.com/rust-lang/rust/pull/132833)
This feature allows `&&`-chaining `let` statements inside `if` and
`while`, allowing intermixture with boolean expressions. The patterns
inside the `let` sub-expressions can be irrefutable or refutable.
- [Stabilize
`#![feature(naked_functions)]`.](https://redirect.github.com/rust-lang/rust/pull/134213)
Naked functions allow writing functions with no compiler-generated
epilogue and prologue, allowing full control over the generated assembly
for a particular function.
- [Stabilize
`#![feature(cfg_boolean_literals)]`.](https://redirect.github.com/rust-lang/rust/pull/138632)
This allows using boolean literals as `cfg` predicates, e.g.
`#[cfg(true)]` and `#[cfg(false)]`.
- [Fully de-stabilize the `#[bench]`
attribute](https://redirect.github.com/rust-lang/rust/pull/134273).
Usage of `#[bench]` without `#![feature(custom_test_frameworks)]`
already triggered a deny-by-default future-incompatibility lint since
Rust 1.77, but will now become a hard error.
- [Add warn-by-default `dangerous_implicit_autorefs` lint against
implicit autoref of raw pointer
dereference.](https://redirect.github.com/rust-lang/rust/pull/123239)
The lint [will be bumped to
deny-by-default](https://redirect.github.com/rust-lang/rust/pull/141661)
in the next version of Rust.
- [Add `invalid_null_arguments` lint to prevent invalid usage of null
pointers.](https://redirect.github.com/rust-lang/rust/pull/119220)
This lint is uplifted from `clippy::invalid_null_ptr_usage`.
- [Change trait impl candidate preference for builtin impls and trivial
where-clauses.](https://redirect.github.com/rust-lang/rust/pull/138176)
- [Check types of generic const parameter
defaults](https://redirect.github.com/rust-lang/rust/pull/139646)
<a id="1.88.0-Compiler"></a>
## Compiler
- [Stabilize `-Cdwarf-version` for selecting the version of DWARF debug
information to
generate.](https://redirect.github.com/rust-lang/rust/pull/136926)
<a id="1.88.0-Platform-Support"></a>
## Platform Support
- [Demote `i686-pc-windows-gnu` to Tier
2.](https://blog.rust-lang.org/2025/05/26/demoting-i686-pc-windows-gnu/)
Refer to Rust's [platform support page][platform-support-doc]
for more information on Rust's tiered platform support.
[platform-support-doc]:
https://doc.rust-lang.org/rustc/platform-support.html
<a id="1.88.0-Libraries"></a>
## Libraries
- [Remove backticks from `#[should_panic]` test failure
message.](https://redirect.github.com/rust-lang/rust/pull/136160)
- [Guarantee that `[T; N]::from_fn` is generated in order of increasing
indices.](https://redirect.github.com/rust-lang/rust/pull/139099), for
those passing it a stateful closure.
- [The libtest flag `--nocapture` is deprecated in favor of the more
consistent `--no-capture`
flag.](https://redirect.github.com/rust-lang/rust/pull/139224)
- [Guarantee that `{float}::NAN` is a quiet
NaN.](https://redirect.github.com/rust-lang/rust/pull/139483)
<a id="1.88.0-Stabilized-APIs"></a>
## Stabilized APIs
-
[`Cell::update`](https://doc.rust-lang.org/stable/std/cell/struct.Cell.html#method.update)
- [`impl Default for *const
T`](https://doc.rust-lang.org/stable/std/primitive.pointer.html#impl-Default-for-*const+T)
- [`impl Default for *mut
T`](https://doc.rust-lang.org/stable/std/primitive.pointer.html#impl-Default-for-*mut+T)
-
[`HashMap::extract_if`](https://doc.rust-lang.org/stable/std/collections/struct.HashMap.html#method.extract_if)
-
[`HashSet::extract_if`](https://doc.rust-lang.org/stable/std/collections/struct.HashSet.html#method.extract_if)
-
[`hint::select_unpredictable`](https://doc.rust-lang.org/stable/std/hint/fn.select_unpredictable.html)
-
[`proc_macro::Span::line`](https://doc.rust-lang.org/stable/proc_macro/struct.Span.html#method.line)
-
[`proc_macro::Span::column`](https://doc.rust-lang.org/stable/proc_macro/struct.Span.html#method.column)
-
[`proc_macro::Span::start`](https://doc.rust-lang.org/stable/proc_macro/struct.Span.html#method.start)
-
[`proc_macro::Span::end`](https://doc.rust-lang.org/stable/proc_macro/struct.Span.html#method.end)
-
[`proc_macro::Span::file`](https://doc.rust-lang.org/stable/proc_macro/struct.Span.html#method.file)
-
[`proc_macro::Span::local_file`](https://doc.rust-lang.org/stable/proc_macro/struct.Span.html#method.local_file)
-
[`<[T]>::as_chunks`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.as_chunks)
-
[`<[T]>::as_chunks_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.as_chunks_mut)
-
[`<[T]>::as_chunks_unchecked`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.as_chunks_unchecked)
-
[`<[T]>::as_chunks_unchecked_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.as_chunks_unchecked_mut)
-
[`<[T]>::as_rchunks`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.as_rchunks)
-
[`<[T]>::as_rchunks_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.as_rchunks_mut)
- [`mod
ffi::c_str`](https://doc.rust-lang.org/stable/std/ffi/c_str/index.html)
These previously stable APIs are now stable in const contexts:
-
[`NonNull<T>::replace`](https://doc.rust-lang.org/stable/std/ptr/struct.NonNull.html#method.replace)
- [`<*mut
T>::replace`](https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.replace)
-
[`std::ptr::swap_nonoverlapping`](https://doc.rust-lang.org/stable/std/ptr/fn.swap_nonoverlapping.html)
-
[`Cell::replace`](https://doc.rust-lang.org/stable/std/cell/struct.Cell.html#method.replace)
-
[`Cell::get`](https://doc.rust-lang.org/stable/std/cell/struct.Cell.html#method.get)
-
[`Cell::get_mut`](https://doc.rust-lang.org/stable/std/cell/struct.Cell.html#method.get_mut)
-
[`Cell::from_mut`](https://doc.rust-lang.org/stable/std/cell/struct.Cell.html#method.from_mut)
-
[`Cell::as_slice_of_cells`](https://doc.rust-lang.org/stable/std/cell/struct.Cell.html#method.as_slice_of_cells)
<a id="1.88.0-Cargo"></a>
## Cargo
- [Stabilize automatic garbage
collection.](https://redirect.github.com/rust-lang/cargo/pull/14287/)
- [use `zlib-rs` for gzip compression in rust
code](https://redirect.github.com/rust-lang/cargo/pull/15417/)
<a id="1.88.0-Rustdoc"></a>
## Rustdoc
- [Doctests can be ignored based on target names using `ignore-*`
attributes.](https://redirect.github.com/rust-lang/rust/pull/137096)
- [Stabilize the `--test-runtool` and `--test-runtool-arg` CLI options
to specify a program (like qemu) and its arguments to run a
doctest.](https://redirect.github.com/rust-lang/rust/pull/137096)
<a id="1.88.0-Compatibility-Notes"></a>
## Compatibility Notes
- [Finish changing the internal representation of pasted
tokens](https://redirect.github.com/rust-lang/rust/pull/124141). Certain
invalid declarative macros that were previously accepted in obscure
circumstances are now correctly rejected by the compiler. Use of a `tt`
fragment specifier can often fix these macros.
- [Fully de-stabilize the `#[bench]`
attribute](https://redirect.github.com/rust-lang/rust/pull/134273).
Usage of `#[bench]` without `#![feature(custom_test_frameworks)]`
already triggered a deny-by-default future-incompatibility lint since
Rust 1.77, but will now become a hard error.
- [Fix borrow checking some always-true
patterns.](https://redirect.github.com/rust-lang/rust/pull/139042)
The borrow checker was overly permissive in some cases, allowing
programs that shouldn't have compiled.
- [Update the minimum external LLVM to
19.](https://redirect.github.com/rust-lang/rust/pull/139275)
- [Make it a hard error to use a vector type with a non-Rust ABI without
enabling the required target
feature.](https://redirect.github.com/rust-lang/rust/pull/139309)
###
[`v1.87.0`](https://redirect.github.com/rust-lang/rust/blob/HEAD/RELEASES.md#Version-1870-2025-05-15)
[Compare
Source](https://redirect.github.com/rust-lang/rust/compare/1.86.0...1.87.0)
\==========================
<a id="1.87.0-Language"></a>
## Language
- [Stabilize `asm_goto`
feature](https://redirect.github.com/rust-lang/rust/pull/133870)
- [Allow parsing open beginning ranges (`..EXPR`) after unary operators
`!`, `-`, and
`*`](https://redirect.github.com/rust-lang/rust/pull/134900).
- [Don't require method impls for methods with `Self: Sized` bounds in
`impl`s for unsized
types](https://redirect.github.com/rust-lang/rust/pull/135480)
- [Stabilize `feature(precise_capturing_in_traits)` allowing `use<...>`
bounds on return position `impl Trait` in
`trait`s](https://redirect.github.com/rust-lang/rust/pull/138128)
<a id="1.87.0-Compiler"></a>
## Compiler
- [x86: make SSE2 required for i686 targets and use it to pass SIMD
types](https://redirect.github.com/rust-lang/rust/pull/135408)
<a id="1.87.0-Platform-Support"></a>
## Platform Support
- [Remove `i586-pc-windows-msvc`
target](https://redirect.github.com/rust-lang/rust/pull/137957)
Refer to Rust's [platform support page][platform-support-doc]
for more information on Rust's tiered platform support.
[platform-support-doc]:
https://doc.rust-lang.org/rustc/platform-support.html
<a id="1.87.0-Libraries"></a>
## Libraries
- [Stabilize the anonymous pipe
API](https://redirect.github.com/rust-lang/rust/issues/127154)
- [Add support for unbounded left/right shift
operations](https://redirect.github.com/rust-lang/rust/issues/129375)
- [Print pointer metadata in `Debug` impl of raw
pointers](https://redirect.github.com/rust-lang/rust/pull/135080)
- [`Vec::with_capacity` guarantees it allocates with the amount
requested, even if `Vec::capacity` returns a different
number.](https://redirect.github.com/rust-lang/rust/pull/135933)
- Most `std::arch` intrinsics which don't take pointer arguments can now
be called from safe code if the caller has the appropriate target
features already enabled
([https://github.com/rust-lang/stdarch/pull/1714](https://redirect.github.com/rust-lang/stdarch/pull/1714),
[https://github.com/rust-lang/stdarch/pull/1716](https://redirect.github.com/rust-lang/stdarch/pull/1716),
[https://github.com/rust-lang/stdarch/pull/1717](https://redirect.github.com/rust-lang/stdarch/pull/1717))
- [Undeprecate
`env::home_dir`](https://redirect.github.com/rust-lang/rust/pull/137327)
- [Denote `ControlFlow` as
`#[must_use]`](https://redirect.github.com/rust-lang/rust/pull/137449)
- [Macros such as `assert_eq!` and `vec!` now support `const {...}`
expressions](https://redirect.github.com/rust-lang/rust/pull/138162)
<a id="1.87.0-Stabilized-APIs"></a>
## Stabilized APIs
-
[`Vec::extract_if`](https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.extract_if)
-
[`vec::ExtractIf`](https://doc.rust-lang.org/stable/std/vec/struct.ExtractIf.html)
-
[`LinkedList::extract_if`](https://doc.rust-lang.org/stable/std/collections/struct.LinkedList.html#method.extract_if)
-
[`linked_list::ExtractIf`](https://doc.rust-lang.org/stable/std/collections/linked_list/struct.ExtractIf.html)
-
[`<[T]>::split_off`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_off)
-
[`<[T]>::split_off_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_off_mut)
-
[`<[T]>::split_off_first`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_off_first)
-
[`<[T]>::split_off_first_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_off_first_mut)
-
[`<[T]>::split_off_last`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_off_last)
-
[`<[T]>::split_off_last_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.split_off_last_mut)
-
[`String::extend_from_within`](https://doc.rust-lang.org/stable/alloc/string/struct.String.html#method.extend_from_within)
-
[`os_str::Display`](https://doc.rust-lang.org/stable/std/ffi/os_str/struct.Display.html)
-
[`OsString::display`](https://doc.rust-lang.org/stable/std/ffi/struct.OsString.html#method.display)
-
[`OsStr::display`](https://doc.rust-lang.org/stable/std/ffi/struct.OsStr.html#method.display)
- [`io::pipe`](https://doc.rust-lang.org/stable/std/io/fn.pipe.html)
-
[`io::PipeReader`](https://doc.rust-lang.org/stable/std/io/struct.PipeReader.html)
-
[`io::PipeWriter`](https://doc.rust-lang.org/stable/std/io/struct.PipeWriter.html)
- [`impl From<PipeReader> for
OwnedHandle`](https://doc.rust-lang.org/stable/std/os/windows/io/struct.OwnedHandle.html#impl-From%3CPipeReader%3E-for-OwnedHandle)
- [`impl From<PipeWriter> for
OwnedHandle`](https://doc.rust-lang.org/stable/std/os/windows/io/struct.OwnedHandle.html#impl-From%3CPipeWriter%3E-for-OwnedHandle)
- [`impl From<PipeReader> for
Stdio`](https://doc.rust-lang.org/stable/std/process/struct.Stdio.html)
- [`impl From<PipeWriter> for
Stdio`](https://doc.rust-lang.org/stable/std/process/struct.Stdio.html#impl-From%3CPipeWriter%3E-for-Stdio)
- [`impl From<PipeReader> for
OwnedFd`](https://doc.rust-lang.org/stable/std/os/fd/struct.OwnedFd.html#impl-From%3CPipeReader%3E-for-OwnedFd)
- [`impl From<PipeWriter> for
OwnedFd`](https://doc.rust-lang.org/stable/std/os/fd/struct.OwnedFd.html#impl-From%3CPipeWriter%3E-for-OwnedFd)
-
[`Box<MaybeUninit<T>>::write`](https://doc.rust-lang.org/stable/std/boxed/struct.Box.html#method.write)
- [`impl TryFrom<Vec<u8>> for
String`](https://doc.rust-lang.org/stable/std/string/struct.String.html#impl-TryFrom%3CVec%3Cu8%3E%3E-for-String)
- [`<*const
T>::offset_from_unsigned`](https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.offset_from_unsigned)
- [`<*const
T>::byte_offset_from_unsigned`](https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.byte_offset_from_unsigned)
- [`<*mut
T>::offset_from_unsigned`](https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.offset_from_unsigned-1)
- [`<*mut
T>::byte_offset_from_unsigned`](https://doc.rust-lang.org/stable/std/primitive.pointer.html#method.byte_offset_from_unsigned-1)
-
[`NonNull::offset_from_unsigned`](https://doc.rust-lang.org/stable/std/ptr/struct.NonNull.html#method.offset_from_unsigned)
-
[`NonNull::byte_offset_from_unsigned`](https://doc.rust-lang.org/stable/std/ptr/struct.NonNull.html#method.byte_offset_from_unsigned)
-
[`<uN>::cast_signed`](https://doc.rust-lang.org/stable/std/primitive.usize.html#method.cast_signed)
-
[`NonZero::<uN>::cast_signed`](https://doc.rust-lang.org/stable/std/num/struct.NonZero.html#method.cast_signed-5).
-
[`<iN>::cast_unsigned`](https://doc.rust-lang.org/stable/std/primitive.isize.html#method.cast_unsigned).
-
[`NonZero::<iN>::cast_unsigned`](https://doc.rust-lang.org/stable/std/num/struct.NonZero.html#method.cast_unsigned-5).
-
[`<uN>::is_multiple_of`](https://doc.rust-lang.org/stable/std/primitive.usize.html#method.is_multiple_of)
-
[`<uN>::unbounded_shl`](https://doc.rust-lang.org/stable/std/primitive.usize.html#method.unbounded_shl)
-
[`<uN>::unbounded_shr`](https://doc.rust-lang.org/stable/std/primitive.usize.html#method.unbounded_shr)
-
[`<iN>::unbounded_shl`](https://doc.rust-lang.org/stable/std/primitive.isize.html#method.unbounded_shl)
-
[`<iN>::unbounded_shr`](https://doc.rust-lang.org/stable/std/primitive.isize.html#method.unbounded_shr)
-
[`<iN>::midpoint`](https://doc.rust-lang.org/stable/std/primitive.isize.html#method.midpoint)
-
[`<str>::from_utf8`](https://doc.rust-lang.org/stable/std/primitive.str.html#method.from_utf8)
-
[`<str>::from_utf8_mut`](https://doc.rust-lang.org/stable/std/primitive.str.html#method.from_utf8_mut)
-
[`<str>::from_utf8_unchecked`](https://doc.rust-lang.org/stable/std/primitive.str.html#method.from_utf8_unchecked)
-
[`<str>::from_utf8_unchecked_mut`](https://doc.rust-lang.org/stable/std/primitive.str.html#method.from_utf8_unchecked_mut)
These previously stable APIs are now stable in const contexts:
-
[`core::str::from_utf8_mut`](https://doc.rust-lang.org/stable/std/str/fn.from_utf8_mut.html)
-
[`<[T]>::copy_from_slice`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.copy_from_slice)
-
[`SocketAddr::set_ip`](https://doc.rust-lang.org/stable/std/net/enum.SocketAddr.html#method.set_ip)
-
[`SocketAddr::set_port`](https://doc.rust-lang.org/stable/std/net/enum.SocketAddr.html#method.set_port),
-
[`SocketAddrV4::set_ip`](https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV4.html#method.set_ip)
-
[`SocketAddrV4::set_port`](https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV4.html#method.set_port),
-
[`SocketAddrV6::set_ip`](https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV6.html#method.set_ip)
-
[`SocketAddrV6::set_port`](https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV6.html#method.set_port)
-
[`SocketAddrV6::set_flowinfo`](https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV6.html#method.set_flowinfo)
-
[`SocketAddrV6::set_scope_id`](https://doc.rust-lang.org/stable/std/net/struct.SocketAddrV6.html#method.set_scope_id)
-
[`char::is_digit`](https://doc.rust-lang.org/stable/std/primitive.char.html#method.is_digit)
-
[`char::is_whitespace`](https://doc.rust-lang.org/stable/std/primitive.char.html#method.is_whitespace)
- [`<[[T;
N]]>::as_flattened`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.as_flattened)
- [`<[[T;
N]]>::as_flattened_mut`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.as_flattened_mut)
-
[`String::into_bytes`](https://doc.rust-lang.org/stable/std/string/struct.String.html#method.into_bytes)
-
[`String::as_str`](https://doc.rust-lang.org/stable/std/string/struct.String.html#method.as_str)
-
[`String::capacity`](https://doc.rust-lang.org/stable/std/string/struct.String.html#method.capacity)
-
[`String::as_bytes`](https://doc.rust-lang.org/stable/std/string/struct.String.html#method.as_bytes)
-
[`String::len`](https://doc.rust-lang.org/stable/std/string/struct.String.html#method.len)
-
[`String::is_empty`](https://doc.rust-lang.org/stable/std/string/struct.String.html#method.is_empty)
-
[`String::as_mut_str`](https://doc.rust-lang.org/stable/std/string/struct.String.html#method.as_mut_str)
-
[`String::as_mut_vec`](https://doc.rust-lang.org/stable/std/string/struct.String.html#method.as_mut_vec)
-
[`Vec::as_ptr`](https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.as_ptr)
-
[`Vec::as_slice`](https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.as_slice)
-
[`Vec::capacity`](https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.capacity)
-
[`Vec::len`](https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.len)
-
[`Vec::is_empty`](https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.is_empty)
-
[`Vec::as_mut_slice`](https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.as_mut_slice)
-
[`Vec::as_mut_ptr`](https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#method.as_mut_ptr)
<a id="1.87.0-Cargo"></a>
## Cargo
- [Add terminal integration via ANSI OSC 9;4
sequences](https://redirect.github.com/rust-lang/cargo/pull/14615/)
- [chore: bump openssl to
v3](https://redirect.github.com/rust-lang/cargo/pull/15232/)
- [feat(package): add --exclude-lockfile
flag](https://redirect.github.com/rust-lang/cargo/pull/15234/)
<a id="1.87.0-Compatibility-Notes"></a>
## Compatibility Notes
- [Rust now raises an error for macro invocations inside the
`#![crate_name]`
attribute](https://redirect.github.com/rust-lang/rust/pull/127581)
- [Unstable fields are now always considered to be
inhabited](https://redirect.github.com/rust-lang/rust/pull/133889)
- [Macro arguments of unary operators followed by open beginning ranges
may now be matched
differently](https://redirect.github.com/rust-lang/rust/pull/134900)
- [Make `Debug` impl of raw pointers print metadata if
present](https://redirect.github.com/rust-lang/rust/pull/135080)
- [Warn against function pointers using unsupported ABI strings in
dependencies](https://redirect.github.com/rust-lang/rust/pull/135767)
- [Associated types on `dyn` types are no longer
deduplicated](https://redirect.github.com/rust-lang/rust/pull/136458)
- [Forbid attributes on `..` inside of struct patterns (`let Struct {
#[attribute] .. })
=`](https://redirect.github.com/rust-lang/rust/pull/136490)
- [Make `ptr_cast_add_auto_to_object` lint into hard
error](https://redirect.github.com/rust-lang/rust/pull/136764)
- Many `std::arch` intrinsics are now safe to call in some contexts,
there may now be new `unused_unsafe` warnings in existing codebases.
- [Limit `width` and `precision` formatting options to 16 bits on all
targets](https://redirect.github.com/rust-lang/rust/pull/136932)
- [Turn order dependent trait objects future incompat warning into a
hard error](https://redirect.github.com/rust-lang/rust/pull/136968)
- [Denote `ControlFlow` as
`#[must_use]`](https://redirect.github.com/rust-lang/rust/pull/137449)
- [Windows: The standard library no longer links `advapi32`, except on
win7.](https://redirect.github.com/rust-lang/rust/pull/138233) Code such
as C libraries that were relying on this assumption may need to
explicitly link advapi32.
- [Proc macros can no longer observe expanded `cfg(true)`
attributes.](https://redirect.github.com/rust-lang/rust/pull/138844)
- [Start changing the internal representation of pasted
tokens](https://redirect.github.com/rust-lang/rust/pull/124141). Certain
invalid declarative macros that were previously accepted in obscure
circumstances are now correctly rejected by the compiler. Use of a `tt`
fragment specifier can often fix these macros.
- [Don't allow flattened format\_args in
const.](https://redirect.github.com/rust-lang/rust/pull/139624)
<a id="1.87.0-Internal-Changes"></a>
## Internal Changes
These changes do not affect any public interfaces of Rust, but they
represent
significant improvements to the performance or internals of rustc and
related
tools.
- [Update to LLVM
20](https://redirect.github.com/rust-lang/rust/pull/135763)
</details>
<details>
<summary>astral-sh/uv (uv)</summary>
###
[`v0.8.0`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#080)
[Compare
Source](https://redirect.github.com/astral-sh/uv/compare/0.7.22...0.8.0)
Since we released uv
[0.7.0](https://redirect.github.com/astral-sh/uv/releases/tag/0.7.0) in
April, we've accumulated various changes that improve correctness and
user experience, but could break some workflows. This release contains
those changes; many have been marked as breaking out of an abundance of
caution. We expect most users to be able to upgrade without making
changes.
This release also includes the stabilization of a couple `uv python
install` features, which have been available under preview since late
last year.
##### Breaking changes
- **Install Python executables into a directory on the `PATH`
([#​14626](https://redirect.github.com/astral-sh/uv/pull/14626))**
`uv python install` now installs a versioned Python executable (e.g.,
`python3.13`) into a directory on the `PATH` (e.g., `~/.local/bin`) by
default. This behavior has been available under the `--preview` flag
since [Oct 2024](https://redirect.github.com/astral-sh/uv/pull/8458).
This change should not be breaking unless it shadows a Python executable
elsewhere on the `PATH`.
To install unversioned executables, i.e., `python3` and `python`, use
the `--default` flag. The `--default` flag has also been in preview, but
is not stabilized in this release.
Note that these executables point to the base Python installation and
only include the standard library. That means they will not include
dependencies from your current project (use `uv run python` instead) and
you cannot install packages into their environment (use `uvx --with
<package> python` instead).
As with tool installation, the target directory respects common
variables like `XDG_BIN_HOME` and can be overridden with a
`UV_PYTHON_BIN_DIR` variable.
You can opt out of this behavior with `uv python install --no-bin` or
`UV_PYTHON_INSTALL_BIN=0`.
See the [documentation on installing Python
executables](https://docs.astral.sh/uv/concepts/python-versions/#installing-python-executables)
for more details.
- **Register Python versions with the Windows Registry
([#​14625](https://redirect.github.com/astral-sh/uv/pull/14625))**
`uv python install` now registers the installed Python version with the
Windows Registry as specified by [PEP
514](https://peps.python.org/pep-0514/). This allows using uv installed
Python versions via the `py` launcher. This behavior has been available
under the `--preview` flag since [Jan
2025](https://redirect.github.com/astral-sh/uv/pull/10634). This change
should not be breaking, as using the uv Python versions with `py`
requires explicit opt in.
You can opt out of this behavior with `uv python install --no-registry`
or `UV_PYTHON_INSTALL_REGISTRY=0`.
- **Prompt before removing an existing directory in `uv venv`
([#​14309](https://redirect.github.com/astral-sh/uv/pull/14309))**
Previously, `uv venv` would remove an existing virtual environment
without confirmation. While this is consistent with the behavior of
project commands (e.g., `uv sync`), it's surprising to users that are
using imperative workflows (i.e., `uv pip`). Now, `uv venv` will prompt
for confirmation before removing an existing virtual environment. **If
not in an interactive context, uv will still remove the virtual
environment for backwards compatibility. However, this behavior is
likely to change in a future release.**
The behavior for other commands (e.g., `uv sync`) is unchanged.
You can opt out of this behavior by setting `UV_VENV_CLEAR=1` or passing
the `--clear` flag.
- **Validate that discovered interpreters meet the Python preference
([#​7934](https://redirect.github.com/astral-sh/uv/pull/7934))**
uv allows opting out of its managed Python versions with the
`--no-managed-python` and `python-preference` options.
Previously, uv would not enforce this option for Python interpreters
discovered on the `PATH`. For example, if a symlink to a managed Python
interpreter was created, uv would allow it to be used even if
`--no-managed-python` was provided. Now, uv ignores Python interpreters
that do not match the Python preference *unless* they are in an active
virtual environment or are explicitly requested, e.g., with `--python
/path/to/python3.13`.
Similarly, uv would previously not invalidate existing project
environments if they did not match the Python preference. Now, uv will
invalidate and recreate project environments when the Python preference
changes.
You can opt out of this behavior by providing the explicit path to the
Python interpreter providing `--managed-python` / `--no-managed-python`
matching the interpreter you want.
- **Install dependencies without build systems when they are `path`
sources
([#​14413](https://redirect.github.com/astral-sh/uv/pull/14413))**
When working on a project, uv uses the [presence of a build
system](https://docs.astral.sh/uv/concepts/projects/config/#build-systems)
to determine if it should be built and installed into the environment.
However, when a project is a dependency of another project, it can be
surprising for the dependency to be missing from the environment.
Previously, uv would not build and install dependencies with [`path`
sources](https://docs.astral.sh/uv/concepts/projects/dependencies/#path)
unless they declared a build system or set `tool.uv.package = true`.
Now, dependencies with `path` sources are built and installed regardless
of the presence of a build system. If a build system is not present, the
`setuptools.build_meta:__legacy__ ` backend will be used (per [PEP
517](https://peps.python.org/pep-0517/#source-trees)).
You can opt out of this behavior by setting `package = false` in the
source declaration, e.g.:
```toml
[tool.uv.sources]
foo = { path = "./foo", package = false }
```
Or, by setting `tool.uv.package = false` in the dependent
`pyproject.toml`.
See the documentation on [virtual
dependencies](https://docs.astral.sh/uv/concepts/projects/dependencies/#virtual-dependencies)
for details.
- **Install dependencies without build systems when they are workspace
members
([#​14663](https://redirect.github.com/astral-sh/uv/pull/14663))**
As described above for dependencies with `path` sources, uv previously
would not build and install workspace members that did not declare a
build system. Now, uv will build and install workspace members that are
a dependency of *another* workspace member regardless of the presence of
a build system. The behavior is unchanged for workspace members that are
not included in the `project.dependencies`,
`project.optional-dependencies`, or `dependency-groups` tables of
another workspace member.
You can opt out of this behavior by setting `tool.uv.package = false` in
the workspace member's `pyproject.toml`.
See the documentation on [virtual
dependencies](https://docs.astral.sh/uv/concepts/projects/dependencies/#virtual-dependencies)
for details.
- **Bump `--python-platform linux` to `manylinux_2_28`
([#​14300](https://redirect.github.com/astral-sh/uv/pull/14300))**
uv allows performing [platform-specific
resolution](https://docs.astral.sh/uv/concepts/resolution/#platform-specific-resolution)
for explicit targets and provides short aliases, e.g., `linux`, for
common targets.
Previously, the default target for `--python-platform linux` was
`manylinux_2_17`, which is compatible with most Linux distributions from
2014 or newer. We now default to `manylinux_2_28`, which is compatible
with most Linux distributions from 2019 or newer. This change follows
the lead of other tools, such as `cibuildwheel`, which changed their
default to `manylinux_2_28` in [Mar
2025](https://redirect.github.com/pypa/cibuildwheel/pull/2330).
This change only affects users requesting a specific target platform.
Otherwise, uv detects the `manylinux` target from your local glibc
version.
You can opt out of this behavior by using `--python-platform
x86_64-manylinux_2_17` instead.
- **Remove `uv version` fallback
([#​14161](https://redirect.github.com/astral-sh/uv/pull/14161))**
In [Apr 2025](https://redirect.github.com/astral-sh/uv/pull/12349), uv
changed the `uv version` command to an interface for viewing and
updating the version of the current project. However, when outside a
project, `uv version` would continue to display uv's version for
backwards compatibility. Now, when used outside of a project, `uv
version` will fail.
You cannot opt out of this behavior. Use `uv self version` instead.
- **Require `--global` for removal of the global Python pin
([#​14169](https://redirect.github.com/astral-sh/uv/pull/14169))**
Previously, `uv python pin --rm` would allow you to remove the global
Python pin without opt in. Now, uv requires the `--global` flag to
remove the global Python pin.
You cannot opt out of this behavior. Use the `--global` flag instead.
- **Support conflicting editable settings across groups
([#​14197](https://redirect.github.com/astral-sh/uv/pull/14197))**
Previously, uv would always treat a package as editable if any
requirement requested it as editable. However, this prevented users from
declaring `path` sources that toggled the `editable` setting across
dependency groups. Now, uv allows declaring different `editable` values
for conflicting groups. However, if a project includes a path dependency
twice, once with `editable = true` and once without any editable
annotation, those are now considered conflicting, and uv will exit with
an error.
You cannot opt out of this behavior. Use consistent `editable` settings
or [mark groups as
conflicting](https://docs.astral.sh/uv/concepts/projects/config/#conflicting-dependencies).
- **Make `uv_build` the default build backend in `uv init`
([#​14661](https://redirect.github.com/astral-sh/uv/pull/14661))**
The uv build backend (`uv_build`) was [stabilized in uv
0.7.19](https://redirect.github.com/astral-sh/uv/releases/tag/0.7.19).
Now, it is the default build backend for `uv init --package` and `uv
init --lib`. Previously, `hatchling` was the default build backend. A
build backend is still not used without opt-in in `uv init`, but we
expect to change this in a future release.
You can opt out of this behavior with `uv init --build-backend
hatchling`.
- **Set default `UV_TOOL_BIN_DIR` on Docker images
([#​13391](https://redirect.github.com/astral-sh/uv/pull/13391))**
Previously, `UV_TOOL_BIN_DIR` was not set in Docker images which meant
that `uv tool install` did not install tools into a directory on the
`PATH` without additional configuration. Now, `UV_TOOL_BIN_DIR` is set
to `/usr/local/bin` in all Docker derived images.
When the default image user is overridden (e.g. `USER <UID>`) with a
less privileged user, this may cause `uv tool install` to fail.
You can opt out of this behavior by setting an alternative
`UV_TOOL_BIN_DIR`.
- **Update `--check` to return an exit code of 1
([#​14167](https://redirect.github.com/astral-sh/uv/pull/14167))**
uv uses an exit code of 1 to indicate a "successful failure" and an exit
code of 2 to indicate an "error".
Previously, `uv lock --check` and `uv sync --check` would exit with a
code of 2 when the lockfile or environment were outdated. Now, uv will
exit with a code of 1.
You cannot opt out of this behavior.
- **Use an ephemeral environment for `uv run --with` invocations
([#​14447](https://redirect.github.com/astral-sh/uv/pull/14447))**
When using `uv run --with`, uv layers the requirements requested using
`--with` into another virtual environment and caches it. Previously, uv
would invoke the Python interpreter in this layered environment.
However, this allows poisoning the cached environment and introduces
race conditions for concurrent invocations. Now, uv will layer *another*
empty virtual environment on top of the cached environment and invoke
the Python interpreter there. This should only cause breakage in cases
where the environment is being inspected at runtime.
You cannot opt out of this behavior.
- **Restructure the `uv venv` command output and exit codes
([#​14546](https://redirect.github.com/astral-sh/uv/pull/14546))**
Previously, uv used `miette` to format the `uv venv` output. However,
this was inconsistent with most of the uv CLI. Now, the output is a
little different and the exit code has switched from 1 to 2 for some
error cases.
You cannot opt out of this behavior.
- **Default to `--workspace` when adding subdirectories
([#​14529](https://redirect.github.com/astral-sh/uv/pull/14529))**
When using `uv add` to add a subdirectory in a workspace, uv now
defaults to adding the target as a workspace member.
You can opt out of this behavior by providing `--no-workspace`.
- **Add missing validations for disallowed `uv.toml` fields
([#​14322](https://redirect.github.com/astral-sh/uv/pull/14322))**
uv does not allow some settings in the `uv.toml`. Previously, some
settings were silently ignored when present in the `uv.toml`. Now, uv
will error.
You cannot opt out of this behavior. Use `--no-config` or remove the
invalid settings.
##### Configuration
- Add support for toggling Python bin and registry install options via
env vars
([#​14662](https://redirect.github.com/astral-sh/uv/pull/14662))
###
[`v0.7.22`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0722)
[Compare
Source](https://redirect.github.com/astral-sh/uv/compare/0.7.21...0.7.22)
##### Python
- Upgrade GraalPy to 24.2.2
See the [GraalPy release
notes](https://redirect.github.com/oracle/graalpython/releases/tag/graal-24.2.2)
for more details.
##### Configuration
- Add `UV_COMPILE_BYTECODE_TIMEOUT` environment variable
([#​14369](https://redirect.github.com/astral-sh/uv/pull/14369))
- Allow users to override index `cache-control` headers
([#​14620](https://redirect.github.com/astral-sh/uv/pull/14620))
- Add `UV_LIBC` to override libc selection in multi-libc environment
([#​14646](https://redirect.github.com/astral-sh/uv/pull/14646))
##### Bug fixes
- Fix `--all-arches` when paired with `--only-downloads`
([#​14629](https://redirect.github.com/astral-sh/uv/pull/14629))
- Skip Windows Python interpreters that return a broken MSIX package
code
([#​14636](https://redirect.github.com/astral-sh/uv/pull/14636))
- Warn on invalid `uv.toml` when provided via direct path
([#​14653](https://redirect.github.com/astral-sh/uv/pull/14653))
- Improve async signal safety in Windows exception handler
([#​14619](https://redirect.github.com/astral-sh/uv/pull/14619))
##### Documentation
- Mention the `revision` in the lockfile versioning doc
([#​14634](https://redirect.github.com/astral-sh/uv/pull/14634))
- Move "Conflicting dependencies" to the "Resolution" page
([#​14633](https://redirect.github.com/astral-sh/uv/pull/14633))
- Rename "Dependency specifiers" section to exclude PEP 508 reference
([#​14631](https://redirect.github.com/astral-sh/uv/pull/14631))
- Suggest `uv cache clean` prior to `--reinstall`
([#​14659](https://redirect.github.com/astral-sh/uv/pull/14659))
##### Preview features
- Make preview Python registration on Windows non-fatal
([#​14614](https://redirect.github.com/astral-sh/uv/pull/14614))
- Update preview installation of Python executables to be non-fatal
([#​14612](https://redirect.github.com/astral-sh/uv/pull/14612))
- Add `uv python update-shell`
([#​14627](https://redirect.github.com/astral-sh/uv/pull/14627))
###
[`v0.7.21`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0721)
[Compare
Source](https://redirect.github.com/astral-sh/uv/compare/0.7.20...0.7.21)
##### Python
- Restore the SQLite `fts4`, `fts5`, `rtree`, and `geopoly` extensions
on macOS and Linux
See the
[`python-build-standalone` release
notes](https://redirect.github.com/astral-sh/python-build-standalone/releases/tag/20250712)
for more details.
##### Enhancements
- Add `--python-platform` to `uv sync`
([#​14320](https://redirect.github.com/astral-sh/uv/pull/14320))
- Support pre-releases in `uv version --bump`
([#​13578](https://redirect.github.com/astral-sh/uv/pull/13578))
- Add `-w` shorthand for `--with`
([#​14530](https://redirect.github.com/astral-sh/uv/pull/14530))
- Add an exception handler on Windows to display information on crash
([#​14582](https://redirect.github.com/astral-sh/uv/pull/14582))
- Add hint when Python downloads are disabled
([#​14522](https://redirect.github.com/astral-sh/uv/pull/14522))
- Add `UV_HTTP_RETRIES` to customize retry counts
([#​14544](https://redirect.github.com/astral-sh/uv/pull/14544))
- Follow leaf symlinks matched by globs in `cache-key`
([#​13438](https://redirect.github.com/astral-sh/uv/pull/13438))
- Support parent path components (`..`) in globs in `cache-key`
([#​13469](https://redirect.github.com/astral-sh/uv/pull/13469))
- Improve `cache-key` performance
([#​13469](https://redirect.github.com/astral-sh/uv/pull/13469))
##### Preview features
- Add `uv sync --output-format json`
([#​13689](https://redirect.github.com/astral-sh/uv/pull/13689))
##### Bug fixes
- Do not re-resolve with a new Python version in `uv tool` if it is
incompatible with `--python`
([#​14606](https://redirect.github.com/astral-sh/uv/pull/14606))
##### Documentation
- Document how to nest dependency groups with `include-group`
([#​14539](https://redirect.github.com/astral-sh/uv/pull/14539))
- Fix repeated word in Pyodide doc
([#​14554](https://redirect.github.com/astral-sh/uv/pull/14554))
- Update CONTRIBUTING.md with instructions to format Markdown files via
Docker
([#​14246](https://redirect.github.com/astral-sh/uv/pull/14246))
- Fix version number for `setup-python`
([#​14533](https://redirect.github.com/astral-sh/uv/pull/14533))
###
[`v0.7.20`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0720)
[Compare
Source](https://redirect.github.com/astral-sh/uv/compare/0.7.19...0.7.20)
##### Python
- Add Python 3.14.0b4
- Add zstd support to Python 3.14 on Unix (it already was available on
Windows)
- Add PyPy 7.3.20 (for Python 3.11.13)
See the [PyPy](https://pypy.org/posts/2025/07/pypy-v7320-release.html)
and
[`python-build-standalone`](https://redirect.github.com/astral-sh/python-build-standalone/releases/tag/20250708)
release notes for more details.
##### Enhancements
- Add `--workspace` flag to `uv add`
([#​14496](https://redirect.github.com/astral-sh/uv/pull/14496))
- Add auto-detection for Intel GPUs
([#​14386](https://redirect.github.com/astral-sh/uv/pull/14386))
- Drop trailing arguments when writing shebangs
([#​14519](https://redirect.github.com/astral-sh/uv/pull/14519))
- Add debug message when skipping Python downloads
([#​14509](https://redirect.github.com/astral-sh/uv/pull/14509))
- Add support for declaring multiple modules in namespace packages
([#​14460](https://redirect.github.com/astral-sh/uv/pull/14460))
##### Bug fixes
- Revert normalization of trailing slashes on index URLs
([#​14511](https://redirect.github.com/astral-sh/uv/pull/14511))
- Fix forced resolution with all extras in `uv version`
([#​14434](https://redirect.github.com/astral-sh/uv/pull/14434))
- Fix handling of pre-releases in preferences
([#​14498](https://redirect.github.com/astral-sh/uv/pull/14498))
- Remove transparent variants in `uv-extract` to enable retries
([#​14450](https://redirect.github.com/astral-sh/uv/pull/14450))
##### Rust API
- Add method to get packages involved in a `NoSolutionError`
([#​14457](https://redirect.github.com/astral-sh/uv/pull/14457))
- Make `ErrorTree` for `NoSolutionError` public
([#​14444](https://redirect.github.com/astral-sh/uv/pull/14444))
##### Documentation
- Finish incomplete sentence in pip migration guide
([#​14432](https://redirect.github.com/astral-sh/uv/pull/14432))
- Remove `cache-dependency-glob` examples for `setup-uv`
([#​14493](https://redirect.github.com/astral-sh/uv/pull/14493))
- Remove `uv pip sync` suggestion with `pyproject.toml`
([#​14510](https://redirect.github.com/astral-sh/uv/pull/14510))
- Update documentation for GitHub to use `setup-uv@v6`
([#​14490](https://redirect.github.com/astral-sh/uv/pull/14490))
###
[`v0.7.19`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0719)
[Compare
Source](https://redirect.github.com/astral-sh/uv/compare/0.7.18...0.7.19)
The **[uv build
backend](https://docs.astral.sh/uv/concepts/build-backend/) is now
stable**, and considered ready for production use.
The uv build backend is a great choice for pure Python projects. It has
reasonable defaults, with the goal of requiring zero configuration for
most users, but provides flexible configuration to accommodate most
Python project structures. It integrates tightly with uv, to improve
messaging and user experience. It validates project metadata and
structures, preventing common mistakes. And, finally, it's very fast —
`uv sync` on a new project (from `uv init`) is 10-30x faster than with
other build backends.
To use uv as a build backend in an existing project, add `uv_build` to
the `[build-system]` section in your `pyproject.toml`:
```toml
[build-system]
requires = ["uv_build>=0.7.19,<0.8.0"]
build-backend = "uv_build"
```
In a future release, it will replace `hatchling` as the default in `uv
init`. As before, uv will remain compatible with all standards-compliant
build backends.
##### Python
- Add PGO distributions of Python for aarch64 Linux, which are more
optimized for better performance
See the [python-build-standalone
release](https://redirect.github.com/astral-sh/python-build-standalone/releases/tag/20250702)
for more details.
##### Enhancements
- Ignore Python patch version for `--universal` pip compile
([#​14405](https://redirect.github.com/astral-sh/uv/pull/14405))
- Update the tilde version specifier warning to include more context
([#​14335](https://redirect.github.com/astral-sh/uv/pull/14335))
- Clarify behavior and hint on tool install when no executables are
available
([#​14423](https://redirect.github.com/astral-sh/uv/pull/14423))
##### Bug fixes
- Make project and interpreter lock acquisition non-fatal
([#​14404](https://redirect.github.com/astral-sh/uv/pull/14404))
- Includes `sys.prefix` in cached environment keys to avoid `--with`
collisions across projects
([#​14403](https://redirect.github.com/astral-sh/uv/pull/14403))
##### Documentation
- Add a migration guide from pip to uv projects
([#​12382](https://redirect.github.com/astral-sh/uv/pull/12382))
###
[`v0.7.18`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0718)
[Compare
Source](https://redirect.github.com/astral-sh/uv/compare/0.7.17...0.7.18)
##### Python
- Added arm64 Windows Python 3.11, 3.12, 3.13, and 3.14
These are not downloaded by default, since x86-64 Python has broader
ecosystem support on Windows.
However, they can be requested with `cpython-<version>-windows-aarch64`.
See the [python-build-standalone
release](https://redirect.github.com/astral-sh/python-build-standalone/releases/tag/20250630)
for more details.
##### Enhancements
- Keep track of retries in `ManagedPythonDownload::fetch_with_retry`
([#​14378](https://redirect.github.com/astral-sh/uv/pull/14378))
- Reuse build (virtual) environments across resolution and installation
([#​14338](https://redirect.github.com/astral-sh/uv/pull/14338))
- Improve trace message for cached Python interpreter query
([#​14328](https://redirect.github.com/astral-sh/uv/pull/14328))
- Use parsed URLs for conflicting URL error message
([#​14380](https://redirect.github.com/astral-sh/uv/pull/14380))
##### Preview features
- Ignore invalid build backend settings when not building
([#​14372](https://redirect.github.com/astral-sh/uv/pull/14372))
##### Bug fixes
- Fix equals-star and tilde-equals with `python_version` and
`python_full_version`
([#​14271](https://redirect.github.com/astral-sh/uv/pull/14271))
- Include the canonical path in the interpreter query cache key
([#​14331](https://redirect.github.com/astral-sh/uv/pull/14331))
- Only drop build directories on program exit
([#​14304](https://redirect.github.com/astral-sh/uv/pull/14304))
- Error instead of panic on conflict between global and subcommand flags
([#​14368](https://redirect.github.com/astral-sh/uv/pull/14368))
- Consistently normalize trailing slashes on URLs with no path segments
([#​14349](https://redirect.github.com/astral-sh/uv/pull/14349))
##### Documentation
- Add instructions for publishing to JFrog's Artifactory
([#​14253](https://redirect.github.com/astral-sh/uv/pull/14253))
- Edits to the build backend documentation
([#​14376](https://redirect.github.com/astral-sh/uv/pull/14376))
###
[`v0.7.17`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0717)
[Compare
Source](https://redirect.github.com/astral-sh/uv/compare/0.7.16...0.7.17)
##### Bug fixes
- Apply build constraints when resolving `--with` dependencies
([#​14340](https://redirect.github.com/astral-sh/uv/pull/14340))
- Drop trailing slashes when converting index URL from URL
([#​14346](https://redirect.github.com/astral-sh/uv/pull/14346))
- Ignore `UV_PYTHON_CACHE_DIR` when empty
([#​14336](https://redirect.github.com/astral-sh/uv/pull/14336))
- Fix error message ordering for `pyvenv.cfg` version conflict
([#​14329](https://redirect.github.com/astral-sh/uv/pull/14329))
###
[`v0.7.16`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0716)
[Compare
Source](https://redirect.github.com/astral-sh/uv/compare/0.7.15...0.7.16)
##### Python
- Add Python 3.14.0b3
See the
[`python-build-standalone` release
notes](https://redirect.github.com/astral-sh/python-build-standalone/releases/tag/20250626)
for more details.
##### Enhancements
- Include path or URL when failing to convert in lockfile
([#​14292](https://redirect.github.com/astral-sh/uv/pull/14292))
- Warn when `~=` is used as a Python version specifier without a patch
version
([#​14008](https://redirect.github.com/astral-sh/uv/pull/14008))
##### Preview features
- Ensure preview default Python installs are upgradeable
([#​14261](https://redirect.github.com/astral-sh/uv/pull/14261))
##### Performance
- Share workspace cache between lock and sync operations
([#​14321](https://redirect.github.com/astral-sh/uv/pull/14321))
##### Bug fixes
- Allow local indexes to reference remote files
([#​14294](https://redirect.github.com/astral-sh/uv/pull/14294))
- Avoid rendering desugared prefix matches in error messages
([#​14195](https://redirect.github.com/astral-sh/uv/pull/14195))
- Avoid using path URL for workspace Git dependencies in
`requirements.txt`
([#​14288](https://redirect.github.com/astral-sh/uv/pull/14288))
- Normalize index URLs to remove trailing slash
([#​14245](https://redirect.github.com/astral-sh/uv/pull/14245))
- Respect URL-encoded credentials in redirect location
([#​14315](https://redirect.github.com/astral-sh/uv/pull/14315))
- Lock the source tree when running setuptools, to protect concurrent
builds
([#​14174](https://redirect.github.com/astral-sh/uv/pull/14174))
##### Documentation
- Note that GCP Artifact Registry download URLs must have `/simple`
component
([#​14251](https://redirect.github.com/astral-sh/uv/pull/14251))
###
[`v0.7.15`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0715)
[Compare
Source](https://redirect.github.com/astral-sh/uv/compare/0.7.14...0.7.15)
##### Enhancements
- Consistently use `Ordering::Relaxed` for standalone atomic use cases
([#​14190](https://redirect.github.com/astral-sh/uv/pull/14190))
- Warn on ambiguous relative paths for `--index`
([#​14152](https://redirect.github.com/astral-sh/uv/pull/14152))
- Skip GitHub fast path when rate-limited
([#​13033](https://redirect.github.com/astral-sh/uv/pull/13033))
- Preserve newlines in `schema.json` descriptions
([#​13693](https://redirect.github.com/astral-sh/uv/pull/13693))
##### Bug fixes
- Add check for using minor version link when creating a venv on Windows
([#​14252](https://redirect.github.com/astral-sh/uv/pull/14252))
- Strip query parameters when parsing source URL
([#​14224](https://redirect.github.com/astral-sh/uv/pull/14224))
##### Documentation
- Add a link to PyPI FAQ to clarify what per-project token is
([#​14242](https://redirect.github.com/astral-sh/uv/pull/14242))
##### Preview features
- Allow symlinks in the build backend
([#​14212](https://redirect.github.com/astral-sh/uv/pull/14212))
###
[`v0.7.14`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0714)
[Compare
Source](https://redirect.github.com/astral-sh/uv/compare/0.7.13...0.7.14)
##### Enhancements
- Add XPU to `--torch-backend`
([#​14172](https://redirect.github.com/astral-sh/uv/pull/14172))
- Add ROCm backends to `--torch-backend`
([#​14120](https://redirect.github.com/astral-sh/uv/pull/14120))
- Remove preview label from `--torch-backend`
([#​14119](https://redirect.github.com/astral-sh/uv/pull/14119))
- Add `[tool.uv.dependency-groups].mygroup.requires-python`
([#​13735](https://redirect.github.com/astral-sh/uv/pull/13735))
- Add auto-detection for AMD GPUs
([#​14176](https://redirect.github.com/astral-sh/uv/pull/14176))
- Show retries for HTTP status code errors
([#​13897](https://redirect.github.com/astral-sh/uv/pull/13897))
- Support transparent Python patch version upgrades
([#​13954](https://redirect.github.com/astral-sh/uv/pull/13954))
- Warn on empty index directory
([#​13940](https://redirect.github.com/astral-sh/uv/pull/13940))
- Publish to DockerHub
([#​14088](https://redirect.github.com/astral-sh/uv/pull/14088))
##### Performance
- Make cold resolves about 10% faster
([#​14035](https://redirect.github.com/astral-sh/uv/pull/14035))
##### Bug fixes
- Don't use walrus operator in interpreter query script
([#​14108](https://redirect.github.com/astral-sh/uv/pull/14108))
- Fix handling of changes to `requires-python`
([#​14076](https://redirect.github.com/astral-sh/uv/pull/14076))
- Fix implied `platform_machine` marker for `win_amd64` platform tag
([#​14041](https://redirect.github.com/astral-sh/uv/pull/14041))
- Only update existing symlink directories on preview uninstall
([#​14179](https://redirect.github.com/astral-sh/uv/pull/14179))
- Serialize Python requests for tools as canonicalized strings
([#​14109](https://redirect.github.com/astral-sh/uv/pull/14109))
- Support netrc and same-origin credential propagation on index
redirects
([#​14126](https://redirect.github.com/astral-sh/uv/pull/14126))
- Support reading `dependency-groups` from pyproject.tomls with no
`[project]`
([#​13742](https://redirect.github.com/astral-sh/uv/pull/13742))
- Handle an existing shebang in `uv init --script`
([#​14141](https://redirect.github.com/astral-sh/uv/pull/14141))
- Prevent concurrent updates of the environment in `uv run`
([#​14153](https://redirect.github.com/astral-sh/uv/pull/14153))
- Filter managed Python distributions by platform before querying when
included in request
([#​13936](https://redirect.github.com/astral-sh/uv/pull/13936))
##### Documentation
- Replace cuda124 with cuda128
([#​14168](https://redirect.github.com/astral-sh/uv/pull/14168))
- Document the way member sources shadow workspace sources
([#​14136](https://redirect.github.com/astral-sh/uv/pull/14136))
- Sync documented PyTorch integration index for CUDA and ROCm versions
from PyTorch website
([#​14100](https://redirect.github.com/astral-sh/uv/pull/14100))
###
[`v0.7.13`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0713)
[Compare
Source](https://redirect.github.com/astral-sh/uv/compare/0.7.12...0.7.13)
##### Python
- Add Python 3.14.0b2
- Add Python 3.13.5
- Fix stability of `uuid.getnode` on 3.13
See the
[`python-build-standalone` release
notes](https://redirect.github.com/astral-sh/python-build-standalone/releases/tag/20250612)
for more details.
##### Enhancements
- Download versions in `uv python pin` if not found
([#​13946](https://redirect.github.com/astral-sh/uv/pull/13946))
- Use TTY detection to determine if SIGINT forwarding is enabled
([#​13925](https://redirect.github.com/astral-sh/uv/pull/13925))
- Avoid fetching an exact, cached Git commit, even if it isn't locked
([#​13748](https://redirect.github.com/astral-sh/uv/pull/13748))
- Add `zstd` and `deflate` to `Accept-Encoding` ([#R
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>1 parent f5293c3 commit 85f7486Copy full SHA for 85f7486
File tree
Expand file treeCollapse file tree
1 file changed
+4
-4
lines changedFilter options
Expand file treeCollapse file tree
1 file changed
+4
-4
lines changed+4-4Lines changed: 4 additions & 4 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
24 | 24 |
| |
25 | 25 |
| |
26 | 26 |
| |
27 |
| - | |
| 27 | + | |
28 | 28 |
| |
29 | 29 |
| |
30 |
| - | |
| 30 | + | |
31 | 31 |
| |
32 | 32 |
| |
33 | 33 |
| |
34 | 34 |
| |
35 | 35 |
| |
36 | 36 |
| |
37 | 37 |
| |
38 |
| - | |
| 38 | + | |
39 | 39 |
| |
40 | 40 |
| |
41 | 41 |
| |
| |||
74 | 74 |
| |
75 | 75 |
| |
76 | 76 |
| |
77 |
| - | |
| 77 | + | |
78 | 78 |
| |
79 | 79 |
| |
80 | 80 |
| |
|
0 commit comments