20366 Commits

Author SHA1 Message Date
Ross Sullivan
a24ae6fd58
feat(build-dir): Stabilize build-dir 2025-08-15 11:00:01 +09:00
Eric Huss
e647065d5d
chore: remove x86_64-apple-darwin from CI and tests (#15831)
### What does this PR try to resolve?

RFC 3841 has merged, and x86_64-apple-darwin will be demoted to tier-2
in 1.90.0. In Cargo we usually run test against tier-1 platforms, so
x86_64-apple-darwin should be removed.
Also, that target platform is often the slowest one in CI, we are happy
to remove it to save us a couple of minutes.

https://rust-lang.github.io/rfcs/3841-demote-x86_64-apple-darwin.html

### How to test and review this PR?

Run `cargo test` locally with cross-compile tests enabled, and no
regression.
2025-08-12 20:48:04 +00:00
Ed Page
1a12cb22ca
chore(deps): update msrv (3 versions) to v1.87 (#15819)
This PR contains the following updates:

| Package | Update | Change | Pending |
|---|---|---|---|
| [MSRV:3](https://redirect.github.com/rust-lang/rust) | minor | `1.86`
-> `1.87` | `1.89` (+1) |

---

### Release Notes

<details>
<summary>rust-lang/rust (MSRV:3)</summary>

###
[`v1.87`](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>

---

### Configuration

📅 **Schedule**: Branch creation - Every minute ( * * * * * ) (UTC),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/rust-lang/cargo).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS41MS4xIiwidXBkYXRlZEluVmVyIjoiNDEuNjAuNCIsInRhcmdldEJyYW5jaCI6Im1hc3RlciIsImxhYmVscyI6W119-->
2025-08-12 20:08:01 +00:00
Weihang Lo
9614bc251b
chore: remove x86_64-apple-darwin from CI and tests
RFC 3841 has merged, and x86_64-apple-darwin will be demoted to tier-2
in 1.90.0. In Cargo we usually run test against tier-1 platforms, so
x86_64-apple-darwin should be removed.
Also, that target platform is often the slowest one in CI,
we are happy to remove it to save us a couple of minutes.

https://rust-lang.github.io/rfcs/3841-demote-x86_64-apple-darwin.html
2025-08-12 16:02:16 -04:00
Ed Page
2dc9c20034
perf(package): Always reuse the workspace's target-dir (#15783)
### What does this PR try to resolve?

While preparing to stabilize `build-dir`, [it was
discovered](https://github.com/rust-lang/cargo/issues/14125#issuecomment-3127467689)
that `cargo package` will sometimes use the build cache for dependency
crates if `CARGO_TARGET_DIR` is explicitly set.

If target-dir is not set, the build will be preformed in an "inner
target dir" at `target/package/{name}-{version}/target` and rebuild
everything.

This PR changes the default behavior to always use the build cache,
matching the behavior of having `target-dir` set.

### How to test and review this PR?

Added a dedicated test to verify the previous behavior (cargo recompiled
non-workspace crates) in the first commit.
Then updated it to verify the new behavior.

### Related links/notes

* I did some Git archaeology and I _think_ this behavior was introduced
in #2912
* While searching through the commit/pr history was never able to find
any explicit reason why the behavior is the way it is.
* Even if it was intentional, it has been 9 years since and Cargo's
fingerprinting/rebuild detection is much more mature now so I believe
its worth revisiting if this is still the desired behavior.
* Would help mitigate https://github.com/rust-lang/cargo/issues/14941
2025-08-12 19:27:53 +00:00
renovate[bot]
4ba3e6a7ab
chore(deps): update msrv (3 versions) to v1.87 2025-08-12 19:27:19 +00:00
Ed Page
ece031c338
More helpful error for invalid cargo-features = [] (#15781)
The error message for unknown values of `cargo-features` was unhelpful:

```text
Caused by:
  unknown cargo feature `build-dir`
```

I've made it more explanatory, and matching the style of the other
errors:

```text
Caused by:
  feature `build-dir` is not a valid unstable feature for Cargo.toml

  This feature can be enabled via -Zbuild-dir or the `[unstable]` section in config.toml.
  See https://doc.rust-lang.org/cargo/reference/unstable.html for more information.
```
2025-08-12 18:29:21 +00:00
Ed Page
1e52a8c49a
Add initial integration for --json=timings behing -Zsection-timings (#15780)
### What does this PR try to resolve?

This PR adds initial support into Cargo for JSON timing sections,
implemented in rustc in https://github.com/rust-lang/rust/pull/142123.
This allows Cargo to read frontend/codegen/linking time from rustc, and
thus reporting slightly more detailed data in the `cargo build
--timings` output.

The PR modifies Cargo to tell rustc to emit the section messages
(`--json=...,timings`), and it adds the section timings data to the HTML
table output and the JSON output. It does not yet integration different
sections in the HTML unit chart (I want to do that as a follow-up).

Note that the JSON timings are currently only supported on the nightly
compiler (they are not stabilized). The new behavior is thus gated
behing an unstable Cargo flag (`-Zsection-timings`). When the flag is
unused, the HTML table should look more or less the same as before, just
that the code now supports both options.

### How to test and review this PR?

You can run e.g. this to generate the timing report with a nightly
compiler:
```bash
export RUSTC=`rustup +nightly which rustc`
target/debug/cargo build -Zsection-timings --timings
```
on some crate, e.g. [ripgrep](https://github.com/BurntSushi/ripgrep).

Tracking issue: https://github.com/rust-lang/cargo/issues/15817
2025-08-12 17:55:54 +00:00
Weihang Lo
6bf996c866
add is_inherited methods to InheritableDependency and InheritableField (#15828)
I was looking into adding cargo_util_schemas as a parsing backend for
crates-io and this was a little method I found myself missing a lot.
2025-08-12 17:15:43 +00:00
Jakub Beránek
199e9e7cb8
Add compilation sections to the HTML unit table 2025-08-12 17:43:56 +02:00
Jakub Beránek
5224b47190
Make headers of the HTML --timings unit table dynamic 2025-08-12 17:43:54 +02:00
Jakub Beránek
037cf46330
Add section timing data to JSON --timings output 2025-08-12 17:43:45 +02:00
Jakub Beránek
dbd298a3cd
Parse and store section timing events 2025-08-12 17:42:29 +02:00
Jakub Beránek
62e40541fc
Pass --json=timings to rustc when --timings and -Zsection-timings is enabled 2025-08-12 17:42:28 +02:00
Jakub Beránek
399dff887b
Add unstable -Zsection-timings flag 2025-08-12 17:42:28 +02:00
2ndDerivative
6d3ff14969
add is_inherited method to InheritableField 2025-08-12 17:04:54 +02:00
2ndDerivative
e58ab62a09
add is_inherited method to InheritableDependency 2025-08-12 16:54:49 +02:00
Kornel
45b4faa04a More helpful error for invalid cargo-features = [] 2025-08-12 13:44:44 +01:00
Kornel
5fff1e0e76 Duplicates of unknown_feature test 2025-08-12 13:28:00 +01:00
Weihang Lo
c710fc0de1
chore(deps): update compatible (#15804)
### What does this PR try to resolve?

Update dependencies except `handlebars`

Closes #15794

### How to test and review this PR?
2025-08-11 15:29:52 +00:00
Weihang Lo
84276251b4
docs(unstable): Link out to the Plumbing commands effort (#15821)
### What does this PR try to resolve?

This is intended to help people discover where to go to discuss plumbing
command efforts.
2025-08-11 14:53:38 +00:00
renovate[bot]
c24182c4dd chore(deps): update compatible 2025-08-11 09:45:53 -05:00
Eric Huss
2e7bc06c34
chore(deps): update cargo-semver-checks to v0.43.0 (#15825)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
|
[cargo-semver-checks](https://redirect.github.com/obi1kenobi/cargo-semver-checks)
| minor | `0.42.0` -> `0.43.0` |

---

### Release Notes

<details>
<summary>obi1kenobi/cargo-semver-checks (cargo-semver-checks)</summary>

###
[`v0.43.0`](https://redirect.github.com/obi1kenobi/cargo-semver-checks/releases/tag/v0.43.0)

[Compare
Source](https://redirect.github.com/obi1kenobi/cargo-semver-checks/compare/v0.42.0...v0.43.0)

#### In this release

- Spotlight: I'm giving a talk at Rust Forge!
- Performance improvements
- 1 new lint, for a total of 178

This release requires Rust 1.87+ both to install (MSRV) and at runtime.
Future releases will require Rust 1.88+.

#### Spotlight: I'm giving a talk at Rust Forge!

Rust Forge is a creative new conference organized by [Rust in
Action](https://www.manning.com/books/rust-in-action) author [Tim
McNamara](https://rustforgeconf.com/about). It's scheduled for 27-30
August 2025 in [Wellington, New
Zealand](https://rustforgeconf.com/location).

My talk is titled "The Past, Present, and Future of SemVer in Rust" and
I'm extremely excited about it! Here's a short description:

> At least 1-2 times per week, accidental breaking changes sneak into
the new release of some popular Rust package, despite the maintainers'
best efforts. Why is this still a problem 10 years after Rust 1.0? What
will it take to finally stop such breakage, so we can have fearless
`cargo update`?

It's not too late to [grab a
ticket](https://rust-forge-2025.lilregie.com/booking/attendees/new)! I
hope to see you there!

#### Performance improvements

Supporting an exponentially-growing number of lints requires periodic
maintenance in the form of mandatory performance engineering, Without
it, things would quickly get out of hand, and large crates and large
workspaces would be affected first. To prevent that, this release cycle
focused on both internal and external improvements.

Externally-visible improvements include lint execution time
improvements, courtesy of a new query profiling tool prototype developed
by [@&#8203;CLIDragon](https://redirect.github.com/CLIDragon). This
allowed us to [add targeted new
indexes](https://redirect.github.com/obi1kenobi/trustfall-rustdoc-adapter/pull/926)
that speed up the execution of some lints by as much as 10x! After these
optimizations, running the full suite of lints on Rust's largest crates
needs only ~2s, down from around ~8s previously.

Internal improvements include a variety of optimizations aimed at
reducing the time taken by our CI suite, from an original of ~7min for
`cargo test` down to around ~1min.

If you're wondering why `cargo test` used to take 7min in the first
place: our test suite runs ~250000 lint queries to ensure correctness
and keep false-positives out! Even extremely cheap operations done 250k
times add up very quickly! After the optimizations, we still run those
250k queries — we didn't sacrifice correctness at all, but merely cut
out avoidable overhead.

#### New lints

We added only one new lint in this release, tracking an additive-only
API change: `enum_must_use_removed`. This lint group remains
opt-in-only.

#### All merged PRs

- Drop support for Rust prior to 1.87. by
[@&#8203;obi1kenobi](https://redirect.github.com/obi1kenobi) in
[https://github.com/obi1kenobi/cargo-semver-checks/pull/1359](https://redirect.github.com/obi1kenobi/cargo-semver-checks/pull/1359)
- Use edition 2024 now that we aren't MSRV-bound. by
[@&#8203;obi1kenobi](https://redirect.github.com/obi1kenobi) in
[https://github.com/obi1kenobi/cargo-semver-checks/pull/1360](https://redirect.github.com/obi1kenobi/cargo-semver-checks/pull/1360)
- Weekly `cargo update` of dependencies by
[@&#8203;obi1kenobi](https://redirect.github.com/obi1kenobi) in
[https://github.com/obi1kenobi/cargo-semver-checks/pull/1361](https://redirect.github.com/obi1kenobi/cargo-semver-checks/pull/1361)
- Refactor rustdoc generation, replacing dynamic dispatch system by
[@&#8203;GlitchlessCode](https://redirect.github.com/GlitchlessCode) in
[https://github.com/obi1kenobi/cargo-semver-checks/pull/1354](https://redirect.github.com/obi1kenobi/cargo-semver-checks/pull/1354)
- Weekly `cargo update` of dependencies by
[@&#8203;obi1kenobi](https://redirect.github.com/obi1kenobi) in
[https://github.com/obi1kenobi/cargo-semver-checks/pull/1363](https://redirect.github.com/obi1kenobi/cargo-semver-checks/pull/1363)
- Bump trustfall\_rustdoc to v0.29 to use cached schemas. by
[@&#8203;obi1kenobi](https://redirect.github.com/obi1kenobi) in
[https://github.com/obi1kenobi/cargo-semver-checks/pull/1365](https://redirect.github.com/obi1kenobi/cargo-semver-checks/pull/1365)
- Weekly `cargo update` of dependencies by
[@&#8203;obi1kenobi](https://redirect.github.com/obi1kenobi) in
[https://github.com/obi1kenobi/cargo-semver-checks/pull/1367](https://redirect.github.com/obi1kenobi/cargo-semver-checks/pull/1367)
- Weekly `cargo update` of dependencies by
[@&#8203;obi1kenobi](https://redirect.github.com/obi1kenobi) in
[https://github.com/obi1kenobi/cargo-semver-checks/pull/1370](https://redirect.github.com/obi1kenobi/cargo-semver-checks/pull/1370)
- Add `enum_must_use_removed` lint. by
[@&#8203;shreyans413](https://redirect.github.com/shreyans413) in
[https://github.com/obi1kenobi/cargo-semver-checks/pull/1368](https://redirect.github.com/obi1kenobi/cargo-semver-checks/pull/1368)
- Support rustdoc v54 and use latest `cargo_metadata`. by
[@&#8203;obi1kenobi](https://redirect.github.com/obi1kenobi) in
[https://github.com/obi1kenobi/cargo-semver-checks/pull/1372](https://redirect.github.com/obi1kenobi/cargo-semver-checks/pull/1372)
- Parse each query three times per query-lint pair (instead of six
times) by [@&#8203;CLIDragon](https://redirect.github.com/CLIDragon) in
[https://github.com/obi1kenobi/cargo-semver-checks/pull/1371](https://redirect.github.com/obi1kenobi/cargo-semver-checks/pull/1371)
- Weekly `cargo update` of dependencies by
[@&#8203;obi1kenobi](https://redirect.github.com/obi1kenobi) in
[https://github.com/obi1kenobi/cargo-semver-checks/pull/1374](https://redirect.github.com/obi1kenobi/cargo-semver-checks/pull/1374)
- Use `run_query_with_indexed_query` by
[@&#8203;CLIDragon](https://redirect.github.com/CLIDragon) in
[https://github.com/obi1kenobi/cargo-semver-checks/pull/1373](https://redirect.github.com/obi1kenobi/cargo-semver-checks/pull/1373)
- Bump major versions of `cargo_toml, toml, tame_index, clap-cargo`. by
[@&#8203;obi1kenobi](https://redirect.github.com/obi1kenobi) in
[https://github.com/obi1kenobi/cargo-semver-checks/pull/1375](https://redirect.github.com/obi1kenobi/cargo-semver-checks/pull/1375)
- Weekly `cargo update` of dependencies by
[@&#8203;obi1kenobi](https://redirect.github.com/obi1kenobi) in
[https://github.com/obi1kenobi/cargo-semver-checks/pull/1378](https://redirect.github.com/obi1kenobi/cargo-semver-checks/pull/1378)
- Weekly `cargo update` of dependencies by
[@&#8203;obi1kenobi](https://redirect.github.com/obi1kenobi) in
[https://github.com/obi1kenobi/cargo-semver-checks/pull/1380](https://redirect.github.com/obi1kenobi/cargo-semver-checks/pull/1380)
- Support rustdoc v55 which is currently in beta and nightly. by
[@&#8203;obi1kenobi](https://redirect.github.com/obi1kenobi) in
[https://github.com/obi1kenobi/cargo-semver-checks/pull/1383](https://redirect.github.com/obi1kenobi/cargo-semver-checks/pull/1383)
- Bump actions/download-artifact from 4 to 5 by
[@&#8203;dependabot](https://redirect.github.com/dependabot)\[bot]
in[https://github.com/obi1kenobi/cargo-semver-checks/pull/1382](https://redirect.github.com/obi1kenobi/cargo-semver-checks/pull/1382)2
- Add next Rust minor to test matrix by
[@&#8203;obi1kenobi](https://redirect.github.com/obi1kenobi) in
[https://github.com/obi1kenobi/cargo-semver-checks/pull/1381](https://redirect.github.com/obi1kenobi/cargo-semver-checks/pull/1381)
- Don't upload prebuilt rustdocs for Rust <1.87 by
[@&#8203;obi1kenobi](https://redirect.github.com/obi1kenobi) in
[https://github.com/obi1kenobi/cargo-semver-checks/pull/1384](https://redirect.github.com/obi1kenobi/cargo-semver-checks/pull/1384)
- Weekly `cargo update` of dependencies by
[@&#8203;obi1kenobi](https://redirect.github.com/obi1kenobi) in
[https://github.com/obi1kenobi/cargo-semver-checks/pull/1385](https://redirect.github.com/obi1kenobi/cargo-semver-checks/pull/1385)
- Release v0.43 with performance optimizations for large crates. by
[@&#8203;obi1kenobi](https://redirect.github.com/obi1kenobi) in
[https://github.com/obi1kenobi/cargo-semver-checks/pull/1386](https://redirect.github.com/obi1kenobi/cargo-semver-checks/pull/1386)

#### New Contributors

- [@&#8203;CLIDragon](https://redirect.github.com/CLIDragon) made their
first contribution in
[https://github.com/obi1kenobi/cargo-semver-checks/pull/1371](https://redirect.github.com/obi1kenobi/cargo-semver-checks/pull/1371)

**Full Changelog**:
https://github.com/obi1kenobi/cargo-semver-checks/compare/v0.42.0...v0.43.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - Every minute ( * * * * * ) (UTC),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/rust-lang/cargo).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS41MS4xIiwidXBkYXRlZEluVmVyIjoiNDEuNTEuMSIsInRhcmdldEJyYW5jaCI6Im1hc3RlciIsImxhYmVscyI6W119-->
2025-08-10 13:39:59 +00:00
renovate[bot]
0d6aa033a1
chore(deps): update cargo-semver-checks to v0.43.0 2025-08-10 08:24:34 +00:00
Ed Page
8c6cdfff8e
test(build-std): relax the thread name assertion (#15822)
rust-lang/rust#115746 changed to print thread ID,
so we update accordingly.

See
<https://github.com/rust-lang/cargo/actions/runs/16839675728/job/47707652618?pr=15821>
2025-08-08 22:14:07 +00:00
Weihang Lo
58ff5efe61
test(build-std): relax the thread name assertion
rust-lang/rust#115746 changed to print thread ID,
so we update accordingly.
2025-08-08 17:34:48 -04:00
Ed Page
ede5901288 docs(unstable): Link out to the Plumbing commands effort
This is intended to help people discover where to go to discuss plumbing
command efforts.
2025-08-08 15:14:59 -05:00
Ed Page
045a7977b2
chore(deps): update msrv (1 version) to v1.89 (#15815)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [MSRV:1](https://redirect.github.com/rust-lang/rust) | minor | `1.88`
-> `1.89` |

---

### Release Notes

<details>
<summary>rust-lang/rust (MSRV:1)</summary>

###
[`v1.89`](https://redirect.github.com/rust-lang/rust/blob/HEAD/RELEASES.md#Version-1890-2025-08-07)

[Compare
Source](https://redirect.github.com/rust-lang/rust/compare/1.88.0...1.89.0)

\==========================

<a id="1.89.0-Language"></a>

## Language

- [Stabilize explicitly inferred const arguments
(`feature(generic_arg_infer)`)](https://redirect.github.com/rust-lang/rust/pull/141610)
- [Add a warn-by-default `mismatched_lifetime_syntaxes`
lint.](https://redirect.github.com/rust-lang/rust/pull/138677)
This lint detects when the same lifetime is referred to by different
syntax categories between function arguments and return values, which
can be confusing to read, especially in unsafe code.
This lint supersedes the warn-by-default `elided_named_lifetimes` lint.
- [Expand `unpredictable_function_pointer_comparisons` to also lint on
function pointer comparisons in external
macros](https://redirect.github.com/rust-lang/rust/pull/134536)
- [Make the `dangerous_implicit_autorefs` lint
deny-by-default](https://redirect.github.com/rust-lang/rust/pull/141661)
- [Stabilize the avx512 target
features](https://redirect.github.com/rust-lang/rust/pull/138940)
- [Stabilize `kl` and `widekl` target features for
x86](https://redirect.github.com/rust-lang/rust/pull/140766)
- [Stabilize `sha512`, `sm3` and `sm4` target features for
x86](https://redirect.github.com/rust-lang/rust/pull/140767)
- [Stabilize LoongArch target features `f`, `d`, `frecipe`, `lasx`,
`lbt`, `lsx`, and
`lvz`](https://redirect.github.com/rust-lang/rust/pull/135015)
- [Remove `i128` and `u128` from
`improper_ctypes_definitions`](https://redirect.github.com/rust-lang/rust/pull/137306)
- [Stabilize `repr128` (`#[repr(u128)]`,
`#[repr(i128)]`)](https://redirect.github.com/rust-lang/rust/pull/138285)
- [Allow `#![doc(test(attr(..)))]`
everywhere](https://redirect.github.com/rust-lang/rust/pull/140560)
- [Extend temporary lifetime extension to also go through tuple struct
and tuple variant
constructors](https://redirect.github.com/rust-lang/rust/pull/140593)
- [`extern "C"` functions on the `wasm32-unknown-unknown` target now
have a standards compliant
ABI](https://blog.rust-lang.org/2025/04/04/c-abi-changes-for-wasm32-unknown-unknown/)

<a id="1.89.0-Compiler"></a>

## Compiler

- [Default to non-leaf frame pointers on
aarch64-linux](https://redirect.github.com/rust-lang/rust/pull/140832)
- [Enable non-leaf frame pointers for Arm64EC
Windows](https://redirect.github.com/rust-lang/rust/pull/140862)
- [Set Apple frame pointers by
architecture](https://redirect.github.com/rust-lang/rust/pull/141797)

<a id="1.89.0-Platform-Support"></a>

## Platform Support

- [Add new Tier-3 targets `loongarch32-unknown-none` and
`loongarch32-unknown-none-softfloat`](https://redirect.github.com/rust-lang/rust/pull/142053)
- [`x86_64-apple-darwin` is in the process of being demoted to Tier 2
with host tools](https://redirect.github.com/rust-lang/rfcs/pull/3841)

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.89.0-Libraries"></a>

## Libraries

- [Specify the base path for
`file!`](https://redirect.github.com/rust-lang/rust/pull/134442)
- [Allow storing `format_args!()` in a
variable](https://redirect.github.com/rust-lang/rust/pull/140748)
- [Add `#[must_use]` to `[T;
N]::map`](https://redirect.github.com/rust-lang/rust/pull/140957)
- [Implement `DerefMut` for
`Lazy{Cell,Lock}`](https://redirect.github.com/rust-lang/rust/pull/129334)
- [Implement `Default` for
`array::IntoIter`](https://redirect.github.com/rust-lang/rust/pull/141574)
- [Implement `Clone` for
`slice::ChunkBy`](https://redirect.github.com/rust-lang/rust/pull/138016)
- [Implement `io::Seek` for
`io::Take`](https://redirect.github.com/rust-lang/rust/pull/138023)

<a id="1.89.0-Stabilized-APIs"></a>

## Stabilized APIs

-
[`NonZero<char>`](https://doc.rust-lang.org/stable/std/num/struct.NonZero.html)
- Many intrinsics for x86, not enumerated here
- [AVX512
intrinsics](https://redirect.github.com/rust-lang/rust/issues/111137)
- [`SHA512`, `SM3` and `SM4`
intrinsics](https://redirect.github.com/rust-lang/rust/issues/126624)
-
[`File::lock`](https://doc.rust-lang.org/stable/std/fs/struct.File.html#method.lock)
-
[`File::lock_shared`](https://doc.rust-lang.org/stable/std/fs/struct.File.html#method.lock_shared)
-
[`File::try_lock`](https://doc.rust-lang.org/stable/std/fs/struct.File.html#method.try_lock)
-
[`File::try_lock_shared`](https://doc.rust-lang.org/stable/std/fs/struct.File.html#method.try_lock_shared)
-
[`File::unlock`](https://doc.rust-lang.org/stable/std/fs/struct.File.html#method.unlock)
-
[`NonNull::from_ref`](https://doc.rust-lang.org/stable/std/ptr/struct.NonNull.html#method.from_ref)
-
[`NonNull::from_mut`](https://doc.rust-lang.org/stable/std/ptr/struct.NonNull.html#method.from_mut)
-
[`NonNull::without_provenance`](https://doc.rust-lang.org/stable/std/ptr/struct.NonNull.html#method.without_provenance)
-
[`NonNull::with_exposed_provenance`](https://doc.rust-lang.org/stable/std/ptr/struct.NonNull.html#method.with_exposed_provenance)
-
[`NonNull::expose_provenance`](https://doc.rust-lang.org/stable/std/ptr/struct.NonNull.html#method.expose_provenance)
-
[`OsString::leak`](https://doc.rust-lang.org/stable/std/ffi/struct.OsString.html#method.leak)
-
[`PathBuf::leak`](https://doc.rust-lang.org/stable/std/path/struct.PathBuf.html#method.leak)
-
[`Result::flatten`](https://doc.rust-lang.org/stable/std/result/enum.Result.html#method.flatten)
-
[`std::os::linux::net::TcpStreamExt::quickack`](https://doc.rust-lang.org/stable/std/os/linux/net/trait.TcpStreamExt.html#tymethod.quickack)
-
[`std::os::linux::net::TcpStreamExt::set_quickack`](https://doc.rust-lang.org/stable/std/os/linux/net/trait.TcpStreamExt.html#tymethod.set_quickack)

These previously stable APIs are now stable in const contexts:

- [`<[T;
N]>::as_mut_slice`](https://doc.rust-lang.org/stable/std/primitive.array.html#method.as_mut_slice)
-
[`<[u8]>::eq_ignore_ascii_case`](https://doc.rust-lang.org/stable/std/primitive.slice.html#impl-%5Bu8%5D/method.eq_ignore_ascii_case)
-
[`str::eq_ignore_ascii_case`](https://doc.rust-lang.org/stable/std/primitive.str.html#impl-str/method.eq_ignore_ascii_case)

<a id="1.89.0-Cargo"></a>

## Cargo

- [`cargo fix` and `cargo clippy --fix` now default to the same Cargo
target selection as other build
commands.](https://redirect.github.com/rust-lang/cargo/pull/15192/)
Previously it would apply to all targets (like binaries, examples,
tests, etc.). The `--edition` flag still applies to all targets.
- [Stabilize
doctest-xcompile.](https://redirect.github.com/rust-lang/cargo/pull/15462/)
Doctests are now tested when cross-compiling. Just like other tests, it
will use the [`runner`
setting](https://doc.rust-lang.org/cargo/reference/config.html#targettriplerunner)
to run the tests. If you need to disable tests for a target, you can use
the [ignore doctest
attribute](https://doc.rust-lang.org/rustdoc/write-documentation/documentation-tests.html#ignoring-targets)
to specify the targets to ignore.

<a id="1.89.0-Rustdoc"></a>

## Rustdoc

- [On mobile, make the sidebar full width and
linewrap](https://redirect.github.com/rust-lang/rust/pull/139831). This
makes long section and item names much easier to deal with on mobile.

<a id="1.89.0-Compatibility-Notes"></a>

## Compatibility Notes

- [Make `missing_fragment_specifier` an unconditional
error](https://redirect.github.com/rust-lang/rust/pull/128425)
- [Enabling the `neon` target feature on
`aarch64-unknown-none-softfloat` causes a
warning](https://redirect.github.com/rust-lang/rust/pull/135160) because
mixing code with and without that target feature is not properly
supported by LLVM
- [Sized Hierarchy: Part
I](https://redirect.github.com/rust-lang/rust/pull/137944)
- Introduces a small breaking change affecting `?Sized` bounds on impls
on recursive types which contain associated type projections. It is not
expected to affect any existing published crates. Can be fixed by
refactoring the involved types or opting into the `sized_hierarchy`
unstable feature. See the [FCP
report](https://redirect.github.com/rust-lang/rust/pull/137944#issuecomment-2912207485)
for a code example.
- The warn-by-default `elided_named_lifetimes` lint is [superseded by
the warn-by-default `mismatched_lifetime_syntaxes`
lint.](https://redirect.github.com/rust-lang/rust/pull/138677)
- [Error on recursive opaque types earlier in the type
checker](https://redirect.github.com/rust-lang/rust/pull/139419)
- [Type inference side effects from requiring element types of array
repeat expressions are `Copy` are now only available at the end of type
checking](https://redirect.github.com/rust-lang/rust/pull/139635)
- [The deprecated accidentally-stable
`std::intrinsics::{copy,copy_nonoverlapping,write_bytes}` are now proper
intrinsics](https://redirect.github.com/rust-lang/rust/pull/139916).
There are no debug assertions guarding against UB, and they cannot be
coerced to function pointers.
- [Remove long-deprecated
`std::intrinsics::drop_in_place`](https://redirect.github.com/rust-lang/rust/pull/140151)
- [Make well-formedness predicates no longer
coinductive](https://redirect.github.com/rust-lang/rust/pull/140208)
- [Remove hack when checking impl method
compatibility](https://redirect.github.com/rust-lang/rust/pull/140557)
- [Remove unnecessary type inference due to built-in trait object
impls](https://redirect.github.com/rust-lang/rust/pull/141352)
- [Lint against "stdcall", "fastcall", and "cdecl" on non-x86-32
targets](https://redirect.github.com/rust-lang/rust/pull/141435)
- [Future incompatibility warnings relating to the never type (`!`) are
now reported in
dependencies](https://redirect.github.com/rust-lang/rust/pull/141937)
- [Ensure `std::ptr::copy_*` intrinsics also perform the static
self-init
checks](https://redirect.github.com/rust-lang/rust/pull/142575)
- [`extern "C"` functions on the `wasm32-unknown-unknown` target now
have a standards compliant
ABI](https://blog.rust-lang.org/2025/04/04/c-abi-changes-for-wasm32-unknown-unknown/)

<a id="1.89.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.

- [Correctly un-remap compiler sources paths with the `rustc-dev`
component](https://redirect.github.com/rust-lang/rust/pull/142377)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - Every minute ( * * * * * ) (UTC),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/rust-lang/cargo).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS41MS4xIiwidXBkYXRlZEluVmVyIjoiNDEuNTEuMSIsInRhcmdldEJyYW5jaCI6Im1hc3RlciIsImxhYmVscyI6W119-->
2025-08-07 19:08:07 +00:00
Ed Page
bea3af40f1
Update semver tests for 1.89 (#15816)
This updates the tests where messages have changed in 1.89.
2025-08-07 17:05:22 +00:00
Eric Huss
5f972d1cbf Update semver tests for 1.89
This updates the tests where messages have changed in 1.89.
2025-08-07 09:16:35 -07:00
Ed Page
178a07231e chore: Bump versions 2025-08-07 10:15:50 -05:00
renovate[bot]
f0379a2a8c chore(deps): update msrv (1 version) to v1.89 2025-08-07 13:00:25 +00:00
Ed Page
e87ec1a12a
Accessing each build script's OUT_DIR and in the correct order (#15776)
Hi Everyone!

This PR is aimed to have some improvements over #15704

### What does this PR try to resolve?

Now, multiple build scripts are built correctly. But there are some
underlying issues, that this PR is targeting.

- Preserving the order of the build scripts: Earlier the build scripts
were sorted by default, but now, the order will be preserved.

### How to test and review this PR?

There is a feature gate `multiple-build-scripts` that can be passed via
`cargo-features` in `Cargo.toml`. So, you have to add
```toml
cargo-features = ["multiple-build-scripts"]
```
Preferably on the top of the `Cargo.toml` and use nightly toolchain to
use the feature
2025-08-06 19:58:35 +00:00
Naman Garg
aca513a24b
Preserve order of build scripts 2025-08-07 00:56:14 +05:30
Weihang Lo
d507fbef4d
chore: bump to 0.92.0; update changelog (#15807)
[rendered](https://github.com/weihanglo/cargo/blob/version-bump/src/doc/src/CHANGELOG.md)

or preview through `mdbook serve src/doc`
2025-08-05 20:46:31 +00:00
Weihang Lo
d39c3ac029
docs: -Zpackage-workspace has been stabilized (#15808)
We forgot to remove this in
<https://github.com/rust-lang/cargo/pull/15636>.
2025-08-05 20:34:46 +00:00
Weihang Lo
9d2ce7ae1c
docs: update changelog for 1.90.0 2025-08-05 16:03:43 -04:00
Weihang Lo
4528704113
chore: bump to 0.92.0 2025-08-05 16:03:43 -04:00
Weihang Lo
ca4cb03c83
docs: -Zpackage-workspace has been stabilized 2025-08-05 15:59:21 -04:00
Ed Page
dadac2347b
chore(deps): update rust crate cargo_metadata to 0.21.0 (#15795)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [cargo_metadata](https://redirect.github.com/oli-obk/cargo_metadata) |
workspace.dependencies | minor | `0.20.0` -> `0.21.0` |

---

### Release Notes

<details>
<summary>oli-obk/cargo_metadata (cargo_metadata)</summary>

###
[`v0.21.0`](https://redirect.github.com/oli-obk/cargo_metadata/compare/0.20.0...0.21.0)

[Compare
Source](https://redirect.github.com/oli-obk/cargo_metadata/compare/0.20.0...0.21.0)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 5am on the first day of the
month" (UTC), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/rust-lang/cargo).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS40Ni4zIiwidXBkYXRlZEluVmVyIjoiNDEuNDYuMyIsInRhcmdldEJyYW5jaCI6Im1hc3RlciIsImxhYmVscyI6W119-->
2025-08-05 18:34:17 +00:00
Naman Garg
8be51ef2d6
Add test for multiple build scripts in different order 2025-08-05 23:33:54 +05:30
Weihang Lo
c01efc8f4b
docs(build-rs): Fix broken intra-doc links (#15810)
### What does this PR try to resolve?

Unblock CI

### How to test and review this PR?

### Notes

These were caught with the latest nightly

This was pulled from #15800
2025-08-05 17:43:55 +00:00
Ojus Chugh
c0c256ba17 docs(build-rs): Fix broken intra-doc links
These were caught with the latest nightly

This was pulled from #15800
2025-08-05 12:03:46 -05:00
renovate[bot]
ebaa23c4c6
chore(deps): update rust crate cargo_metadata to 0.21.0 2025-08-01 02:44:19 +00:00
Ed Page
840b83a10f
chore: fix some minor issues in comments (#15787)
### What does this PR try to resolve?

 fix some minor issues in comments

### How to test and review this PR?

No need.
0.91.0
2025-07-30 13:59:19 +00:00
houpo-bob
cbef1d150a chore: fix some minor issues in comments
Signed-off-by: houpo-bob <houpocun@outlook.com>
2025-07-30 15:53:03 +08:00
Ross Sullivan
81f119d45a
fix(package): Fixed inconsistent build cache behavior during package verify
When running `cargo package` the verify the build cache
(target-dir/build-dir) will not be used and all dependencies will be
recompiled.

This is inconsistent as setting target dir (via `CARGO_TARGET_DIR` for
example) will cause `cargo package` to reuse the build cache.

This commit changes the default behavior to always use the build cache,
matching the behavior of having target-dir set.
2025-07-29 21:59:18 +09:00
Ross Sullivan
84e4277dc4
test(package): Add test to verify package build cache behavior 2025-07-29 21:46:25 +09:00
Ed Page
37eeab7c16
feat(schema): Expose IndexPackage, the description of a package within a Registry Index (#15770)
### What does this PR try to resolve?

ref https://github.com/rust-lang/cargo/issues/14834

In this pull request, I moved `IndexPackage` to `cargo-util-schemas` to
enable third-party applications and `cargo-dev-registry` to utilize this
common struct.

For instance, crates.io has its own `IndexPackage` located at
005667f041/crates/crates_io_index/data.rs (L5).

By moving it to `cargo-util-schemas`, we allow different applications to
use this struct more easily.

### How to test and review this PR?

It shouldn't break any tests; it's just a refactoring.
2025-07-28 19:35:47 +00:00
Scott Schafer
c629f5b5cb
chore: update toml/toml_edit to latest (#15779)
fixes https://github.com/rust-lang/cargo/issues/15778
although this is unlikely to bump into.
2025-07-28 15:41:18 +00:00