Commit graph

16624 commits

Author SHA1 Message Date
Weihang Lo
59cfee16f3
refactor(cli): remove allocation and use format arg capture 2024-01-08 21:34:06 -05:00
Weihang Lo
8fee74d47b
refactor(cli): tweak to align existing style 2024-01-08 21:33:12 -05:00
Weihang Lo
f50b7740bf
feat(cli): add colors to -Zhelp console output 2024-01-08 21:33:12 -05:00
Weihang Lo
0d480df39a
refactor(cli): use format alignment 2024-01-08 21:33:12 -05:00
Weihang Lo
3d4407dcb9
test(cli): snapshot test for -Z help 2024-01-08 21:33:11 -05:00
bors
c0db7f9227 Auto merge of #13266 - rust-lang:renovate/msrv, r=epage
chore(deps): update msrv

[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Update | Change | Pending |
|---|---|---|---|
| [MSRV:1](https://togithub.com/rust-lang/rust) | minor | `1.73` -> `1.75.0` |  |
| [MSRV:3](https://togithub.com/rust-lang/rust) | minor | `1.70.0` -> `1.73` | `1.75` (+1) |

---

### Release Notes

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

### [`v1.75.0`](https://togithub.com/rust-lang/rust/blob/HEAD/RELEASES.md#Version-1750-2023-12-28)

[Compare Source](https://togithub.com/rust-lang/rust/compare/1.74.1...1.75.0)

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

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

## Language

-   [Stabilize `async fn` and return-position `impl Trait` in traits.](https://togithub.com/rust-lang/rust/pull/115822/)
-   [Allow function pointer signatures containing `&mut T` in `const` contexts.](https://togithub.com/rust-lang/rust/pull/116015/)
-   [Match `usize`/`isize` exhaustively with half-open ranges.](https://togithub.com/rust-lang/rust/pull/116692/)
-   [Guarantee that `char` has the same size and alignment as `u32`.](https://togithub.com/rust-lang/rust/pull/116894/)
-   [Document that the null pointer has the 0 address.](https://togithub.com/rust-lang/rust/pull/116988/)
-   [Allow partially moved values in `match`.](https://togithub.com/rust-lang/rust/pull/103208/)
-   [Add notes about non-compliant FP behavior on 32bit x86 targets.](https://togithub.com/rust-lang/rust/pull/113053/)
-   [Stabilize ratified RISC-V target features.](https://togithub.com/rust-lang/rust/pull/116485/)

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

## Compiler

-   [Rework negative coherence to properly consider impls that only partly overlap.](https://togithub.com/rust-lang/rust/pull/112875/)
-   [Bump `COINDUCTIVE_OVERLAP_IN_COHERENCE` to deny, and warn in dependencies.](https://togithub.com/rust-lang/rust/pull/116493/)
-   [Consider alias bounds when computing liveness in NLL.](https://togithub.com/rust-lang/rust/pull/116733/)
-   [Add the V (vector) extension to the `riscv64-linux-android` target spec.](https://togithub.com/rust-lang/rust/pull/116618/)
-   [Automatically enable cross-crate inlining for small functions](https://togithub.com/rust-lang/rust/pull/116505)
-   Add several new tier 3 targets:
    -   [`csky-unknown-linux-gnuabiv2hf`](https://togithub.com/rust-lang/rust/pull/117049/)
    -   [`i586-unknown-netbsd`](https://togithub.com/rust-lang/rust/pull/117170/)
    -   [`mipsel-unknown-netbsd`](https://togithub.com/rust-lang/rust/pull/117356/)

Refer to Rust's \[platform support page]\[platform-support-doc]
for more information on Rust's tiered platform support.

<a id="1.75.0-Libraries"></a>

## Libraries

-   [Override `Waker::clone_from` to avoid cloning `Waker`s unnecessarily.](https://togithub.com/rust-lang/rust/pull/96979/)
-   [Implement `BufRead` for `VecDeque<u8>`.](https://togithub.com/rust-lang/rust/pull/110604/)
-   [Implement `FusedIterator` for `DecodeUtf16` when the inner iterator does.](https://togithub.com/rust-lang/rust/pull/110729/)
-   [Implement `Not, Bit{And,Or}{,Assign}` for IP addresses.](https://togithub.com/rust-lang/rust/pull/113747/)
-   [Implement `Default` for `ExitCode`.](https://togithub.com/rust-lang/rust/pull/114589/)
-   [Guarantee representation of None in NPO](https://togithub.com/rust-lang/rust/pull/115333/)
-   [Document when atomic loads are guaranteed read-only.](https://togithub.com/rust-lang/rust/pull/115577/)
-   [Broaden the consequences of recursive TLS initialization.](https://togithub.com/rust-lang/rust/pull/116172/)
-   [Windows: Support sub-millisecond sleep.](https://togithub.com/rust-lang/rust/pull/116461/)
-   [Fix generic bound of `str::SplitInclusive`'s `DoubleEndedIterator` impl](https://togithub.com/rust-lang/rust/pull/100806/)
-   [Fix exit status / wait status on non-Unix `cfg(unix)` platforms.](https://togithub.com/rust-lang/rust/pull/115108/)

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

## Stabilized APIs

-   [`Atomic*::from_ptr`](https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicUsize.html#method.from_ptr)
-   [`FileTimes`](https://doc.rust-lang.org/stable/std/fs/struct.FileTimes.html)
-   [`FileTimesExt`](https://doc.rust-lang.org/stable/std/os/windows/fs/trait.FileTimesExt.html)
-   [`File::set_modified`](https://doc.rust-lang.org/stable/std/fs/struct.File.html#method.set_modified)
-   [`File::set_times`](https://doc.rust-lang.org/stable/std/fs/struct.File.html#method.set_times)
-   [`IpAddr::to_canonical`](https://doc.rust-lang.org/stable/core/net/enum.IpAddr.html#method.to_canonical)
-   [`Ipv6Addr::to_canonical`](https://doc.rust-lang.org/stable/core/net/struct.Ipv6Addr.html#method.to_canonical)
-   [`Option::as_slice`](https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.as_slice)
-   [`Option::as_mut_slice`](https://doc.rust-lang.org/stable/core/option/enum.Option.html#method.as_mut_slice)
-   [`pointer::byte_add`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.byte_add)
-   [`pointer::byte_offset`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.byte_offset)
-   [`pointer::byte_offset_from`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.byte_offset_from)
-   [`pointer::byte_sub`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.byte_sub)
-   [`pointer::wrapping_byte_add`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.wrapping_byte_add)
-   [`pointer::wrapping_byte_offset`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.wrapping_byte_offset)
-   [`pointer::wrapping_byte_sub`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.wrapping_byte_sub)

These APIs are now stable in const contexts:

-   [`Ipv6Addr::to_ipv4_mapped`](https://doc.rust-lang.org/stable/core/net/struct.Ipv6Addr.html#method.to_ipv4\_mapped)
-   [`MaybeUninit::assume_init_read`](https://doc.rust-lang.org/stable/core/mem/union.MaybeUninit.html#method.assume_init_read)
-   [`MaybeUninit::zeroed`](https://doc.rust-lang.org/stable/core/mem/union.MaybeUninit.html#method.zeroed)
-   [`mem::discriminant`](https://doc.rust-lang.org/stable/core/mem/fn.discriminant.html)
-   [`mem::zeroed`](https://doc.rust-lang.org/stable/core/mem/fn.zeroed.html)

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

## Cargo

-   [Add new packages to `[workspace.members]` automatically.](https://togithub.com/rust-lang/cargo/pull/12779/)
-   [Allow version-less `Cargo.toml` manifests.](https://togithub.com/rust-lang/cargo/pull/12786/)
-   [Make browser links out of HTML file paths.](https://togithub.com/rust-lang/cargo/pull/12889)

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

## Rustdoc

-   [Accept less invalid Rust in rustdoc.](https://togithub.com/rust-lang/rust/pull/117450/)
-   [Document lack of object safety on affected traits.](https://togithub.com/rust-lang/rust/pull/113241/)
-   [Hide `#[repr(transparent)]` if it isn't part of the public ABI.](https://togithub.com/rust-lang/rust/pull/115439/)
-   [Show enum discriminant if it is a C-like variant.](https://togithub.com/rust-lang/rust/pull/116142/)

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

## Compatibility Notes

-   [FreeBSD targets now require at least version 12.](https://togithub.com/rust-lang/rust/pull/114521/)
-   [Formally demote tier 2 MIPS targets to tier 3.](https://togithub.com/rust-lang/rust/pull/115238/)
-   [Make misalignment a hard error in `const` contexts.](https://togithub.com/rust-lang/rust/pull/115524/)
-   [Fix detecting references to packed unsized fields.](https://togithub.com/rust-lang/rust/pull/115583/)
-   [Remove support for compiler plugins.](https://togithub.com/rust-lang/rust/pull/116412/)

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

-   [Optimize `librustc_driver.so` with BOLT.](https://togithub.com/rust-lang/rust/pull/116352/)
-   [Enable parallel rustc front end in dev and nightly builds.](https://togithub.com/rust-lang/rust/pull/117435/)
-   [Distribute `rustc-codegen-cranelift` as rustup component on the nightly channel.](https://togithub.com/rust-lang/rust/pull/81746/)

### [`v1.74.1`](https://togithub.com/rust-lang/rust/blob/HEAD/RELEASES.md#Version-1741-2023-12-07)

[Compare Source](https://togithub.com/rust-lang/rust/compare/1.74.0...1.74.1)

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

-   [Resolved spurious STATUS_ACCESS_VIOLATIONs in LLVM](https://togithub.com/rust-lang/rust/pull/118464)
-   [Clarify guarantees for std::mem::discriminant](https://togithub.com/rust-lang/rust/pull/118006)
-   [Fix some subtyping-related regressions](https://togithub.com/rust-lang/rust/pull/116415)

### [`v1.74.0`](https://togithub.com/rust-lang/rust/blob/HEAD/RELEASES.md#Version-1740-2023-11-16)

[Compare Source](https://togithub.com/rust-lang/rust/compare/1.73.0...1.74.0)

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

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

## Language

-   [Codify that `std::mem::Discriminant<T>` does not depend on any lifetimes in T](https://togithub.com/rust-lang/rust/pull/104299/)
-   [Replace `private_in_public` lint with `private_interfaces` and `private_bounds` per RFC 2145.](https://togithub.com/rust-lang/rust/pull/113126/)
    Read more in [RFC 2145](https://rust-lang.github.io/rfcs/2145-type-privacy.html).
-   [Allow explicit `#[repr(Rust)]`](https://togithub.com/rust-lang/rust/pull/114201/)
-   [closure field capturing: don't depend on alignment of packed fields](https://togithub.com/rust-lang/rust/pull/115315/)
-   [Enable MIR-based drop-tracking for `async` blocks](https://togithub.com/rust-lang/rust/pull/107421/)
-   [Stabilize `impl_trait_projections`](https://togithub.com/rust-lang/rust/pull/115659)

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

## Compiler

-   [stabilize combining +bundle and +whole-archive link modifiers](https://togithub.com/rust-lang/rust/pull/113301/)
-   [Stabilize `PATH` option for `--print KIND=PATH`](https://togithub.com/rust-lang/rust/pull/114183/)
-   [Enable ASAN/LSAN/TSAN for `*-apple-ios-macabi`](https://togithub.com/rust-lang/rust/pull/115644/)
-   [Promote loongarch64-unknown-none\* to Tier 2](https://togithub.com/rust-lang/rust/pull/115368/)
-   [Add `i686-pc-windows-gnullvm` as a tier 3 target](https://togithub.com/rust-lang/rust/pull/115687/)

<a id="1.74.0-Libraries"></a>

## Libraries

-   [Implement `From<OwnedFd/Handle>` for ChildStdin/out/err](https://togithub.com/rust-lang/rust/pull/98704/)
-   [Implement `From<{&,&mut} [T; N]>` for `Vec<T>` where `T: Clone`](https://togithub.com/rust-lang/rust/pull/111278/)
-   [impl Step for IP addresses](https://togithub.com/rust-lang/rust/pull/113748/)
-   [Implement `From<[T; N]>` for `Rc<[T]>` and `Arc<[T]>`](https://togithub.com/rust-lang/rust/pull/114041/)
-   [`impl TryFrom<char> for u16`](https://togithub.com/rust-lang/rust/pull/114065/)
-   [Stabilize `io_error_other` feature](https://togithub.com/rust-lang/rust/pull/115453/)
-   [Stabilize the `Saturating` type](https://togithub.com/rust-lang/rust/pull/115477/)
-   [Stabilize const_transmute_copy](https://togithub.com/rust-lang/rust/pull/115520/)

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

## Stabilized APIs

-   [`core::num::Saturating`](https://doc.rust-lang.org/stable/std/num/struct.Saturating.html)
-   [`impl From<io::Stdout> for std::process::Stdio`](https://doc.rust-lang.org/stable/std/process/struct.Stdio.html#impl-From%3CStdout%3E-for-Stdio)
-   [`impl From<io::Stderr> for std::process::Stdio`](https://doc.rust-lang.org/stable/std/process/struct.Stdio.html#impl-From%3CStderr%3E-for-Stdio)
-   [`impl From<OwnedHandle> for std::process::Child{Stdin, Stdout, Stderr}`](https://doc.rust-lang.org/stable/std/process/struct.ChildStderr.html#impl-From%3COwnedHandle%3E-for-ChildStderr)
-   [`impl From<OwnedFd> for std::process::Child{Stdin, Stdout, Stderr}`](https://doc.rust-lang.org/stable/std/process/struct.ChildStderr.html#impl-From%3COwnedFd%3E-for-ChildStderr)
-   [`std::ffi::OsString::from_encoded_bytes_unchecked`](https://doc.rust-lang.org/stable/std/ffi/struct.OsString.html#method.from_encoded_bytes_unchecked)
-   [`std::ffi::OsString::into_encoded_bytes`](https://doc.rust-lang.org/stable/std/ffi/struct.OsString.html#method.into_encoded_bytes)
-   [`std::ffi::OsStr::from_encoded_bytes_unchecked`](https://doc.rust-lang.org/stable/std/ffi/struct.OsStr.html#method.from_encoded_bytes_unchecked)
-   [`std::ffi::OsStr::as_encoded_bytes`](https://doc.rust-lang.org/stable/std/ffi/struct.OsStr.html#method.as_encoded_bytes)
-   [`std::io::Error::other`](https://doc.rust-lang.org/stable/std/io/struct.Error.html#method.other)
-   [`impl TryFrom<char> for u16`](https://doc.rust-lang.org/stable/std/primitive.u16.html#impl-TryFrom%3Cchar%3E-for-u16)
-   [`impl<T: Clone, const N: usize> From<&[T; N]> for Vec<T>`](https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#impl-From%3C%26%5BT;+N%5D%3E-for-Vec%3CT,+Global%3E)
-   [`impl<T: Clone, const N: usize> From<&mut [T; N]> for Vec<T>`](https://doc.rust-lang.org/stable/std/vec/struct.Vec.html#impl-From%3C%26mut+%5BT;+N%5D%3E-for-Vec%3CT,+Global%3E)
-   [`impl<T, const N: usize> From<[T; N]> for Arc<[T]>`](https://doc.rust-lang.org/stable/std/sync/struct.Arc.html#impl-From%3C%5BT;+N%5D%3E-for-Arc%3C%5BT%5D,+Global%3E)
-   [`impl<T, const N: usize> From<[T; N]> for Rc<[T]>`](https://doc.rust-lang.org/stable/std/rc/struct.Rc.html#impl-From%3C%5BT;+N%5D%3E-for-Rc%3C%5BT%5D,+Global%3E)

These APIs are now stable in const contexts:

-   [`core::mem::transmute_copy`](https://doc.rust-lang.org/beta/std/mem/fn.transmute_copy.html)
-   [`str::is_ascii`](https://doc.rust-lang.org/beta/std/primitive.str.html#method.is_ascii)
-   [`[u8]::is_ascii`](https://doc.rust-lang.org/beta/std/primitive.slice.html#method.is_ascii)

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

## Cargo

-   [In `Cargo.toml`, stabilize `[lints]`](https://togithub.com/rust-lang/cargo/pull/12648/)
-   [Stabilize credential-process and registry-auth](https://togithub.com/rust-lang/cargo/pull/12649/)
-   [Stabilize `--keep-going` build flag](https://togithub.com/rust-lang/cargo/pull/12568/)
-   [Add styling to `--help` output](https://togithub.com/rust-lang/cargo/pull/12578/)
-   [For `cargo clean`, add `--dry-run` flag and summary line at the end](https://togithub.com/rust-lang/cargo/pull/12638)
-   [For `cargo update`, make `--package` more convenient by being positional](https://togithub.com/rust-lang/cargo/pull/12545/)
-   [For `cargo update`, clarify meaning of --aggressive as --recursive](https://togithub.com/rust-lang/cargo/pull/12544/)
-   [Add '-n' as an alias for `--dry-run`](https://togithub.com/rust-lang/cargo/pull/12660/)
-   [Allow version-prefixes in pkgid's (e.g. `--package` flags) to resolve ambiguities](https://togithub.com/rust-lang/cargo/pull/12614/)
-   [In `.cargo/config.toml`, merge lists in precedence order](https://togithub.com/rust-lang/cargo/pull/12515/)
-   [Add support for `target.'cfg(..)'.linker`](https://togithub.com/rust-lang/cargo/pull/12535/)

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

## Rustdoc

-   [Add warning block support in rustdoc](https://togithub.com/rust-lang/rust/pull/106561/)
-   [rustdoc-search: add support for type parameters](https://togithub.com/rust-lang/rust/pull/112725/)
-   [rustdoc: show inner enum and struct in type definition for concrete type](https://togithub.com/rust-lang/rust/pull/114855/)

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

## Compatibility Notes

-   [Raise minimum supported Apple OS versions](https://togithub.com/rust-lang/rust/pull/104385/)
-   [make Cell::swap panic if the Cells partially overlap](https://togithub.com/rust-lang/rust/pull/114795/)
-   [Reject invalid crate names in `--extern`](https://togithub.com/rust-lang/rust/pull/116001/)
-   [Don't resolve generic impls that may be shadowed by dyn built-in impls](https://togithub.com/rust-lang/rust/pull/114941/)
-   [The new `impl From<{&,&mut} [T; N]> for Vec<T>` is known to cause some inference failures with overly-generic code.](https://togithub.com/rust-lang/rust/issues/117054) In those examples using the `tui` crate, the combination of `AsRef<_>` and `Into<Vec>` leaves the middle type ambiguous, and the new `impl` adds another possibility, so it now requires an explicit type annotation.

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

None this cycle.

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "* * * * *" (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.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://togithub.com/renovatebot/renovate/discussions) if that's undesired.

---

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

---

This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/rust-lang/cargo).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMjEuMCIsInVwZGF0ZWRJblZlciI6IjM3LjEyMS4wIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIn0=-->
2024-01-09 01:25:03 +00:00
bors
25ffcc6895 Auto merge of #13267 - epage:virtual, r=weihanglo
refactor(toml): Make it more obvious to update package-dependent fields

Inspired by my having forgotten to add `[lints]` to the if sequence. Previously, we added a comment to suggest this but the further the code is, the harder it is to track.

I considered a custom `Deserialize` impl, possibly through a new type, that would error.
This would be the more "pure" solution.
Unfortunately, this would also have worse errors because the errors would be reported to the `Deserializer` at the document-level, rather than directly on the individual fields.
Well, we don't do on individual fields now but it is something we will soon be exploring.
2024-01-08 22:21:43 +00:00
renovate[bot]
03beda3a6e chore(deps): update msrv 2024-01-08 22:17:07 +00:00
bors
7636f03496 Auto merge of #13268 - epage:msrv, r=weihanglo
chore(ci): Fix MSRV:3 updates

PR #13266 shows that #13265 worked, so extending it to also cover `MSRV:3` updates.

Really, I just forgot...
2024-01-08 21:46:45 +00:00
Ed Page
2f85ded787 chore(ci): Fix MSRV:3 updates
PR #13266 shows that #13265 worked, so extending it to also cover
`MSRV:3` updates.

Really, I just forgot...
2024-01-08 15:39:21 -06:00
Ed Page
62eab55ed2 refactor(toml): Make it more obvious to update package-dependent fields
Inspired by my having forgotten to add `[lints]` to the if sequence.
Previously, we added a comment to suggest this but the further the code
is, the harder it is to track.

I considered a custom `Deserialize` impl, possibly through a new type,
that would error.
This would be the more "pure" solution.
Unfortunately, this would also have worse errors because the errors
would be reported to the `Deserializer` at the document-level, rather
than directly on the individual fields.
Well, we don't do on individual fields now but it is something we will
soon be exploring.
2024-01-08 15:34:38 -06:00
bors
90d1ea8c5a Auto merge of #13265 - epage:msrv, r=weihanglo
chore(ci): Shot-in-the-dark fix for MSRV updating

With #13254, we found MSRV updating is broken.
PR #12775 is the last MSRV we got.
That was merged before #12654 and #13106.
That makes #12654 the most likely culprit.

Looking at the logs:
```
DEBUG: Matched 24 file(s) for manager regex: Cargo.toml, benches/benchsuite/Cargo.toml, benches/capture/Cargo.toml, crates/cargo-platform/Cargo.toml, crates/cargo-test-macro/Cargo.toml, crates/cargo-test-support/Cargo.toml, crates/cargo-test-support/containers/apache/bar/Cargo.toml, crates/cargo-test-support/containers/sshd/bar/Cargo.toml, crates/cargo-util-schemas/Cargo.toml, crates/cargo-util/Cargo.toml, crates/crates-io/Cargo.toml, crates/home/Cargo.toml, crates/mdman/Cargo.toml, crates/resolver-tests/Cargo.toml, crates/rustfix/Cargo.toml, crates/semver-check/Cargo.toml, crates/xtask-build-man/Cargo.toml, crates/xtask-bump-check/Cargo.toml, crates/xtask-stale-label/Cargo.toml, credential/cargo-credential-1password/Cargo.toml, credential/cargo-credential-libsecret/Cargo.toml, credential/cargo-credential-macos-keychain/Cargo.toml, credential/cargo-credential-wincred/Cargo.toml, credential/cargo-credential/Cargo.toml
...
DEBUG: manager extract durations (ms)
{
  "managers": {
    "dockerfile": 30,
    "github-actions": 38,
    "regex": 386,
    "cargo": 855
  }
}
DEBUG: Found cargo package files
DEBUG: Found dockerfile package files
DEBUG: Found github-actions package files
DEBUG: Found 25 package file(s)
```
Our regex managers have the files matched
but no regex manager packages are found.
I think this means that the name association failed or the regex within the file content failed.

The differences between cargo and my other projects
- Use of `:`
- `depNameTemplate`
- Presence of `\b`

As a first attempt, I'm going to switch `\b` to `\\b` to be like the other escaped regex values.
2024-01-08 20:52:37 +00:00
Ed Page
82e80302a7 chore(ci): Shot-in-the-dark fix for MSRV updating
With #13254, we found MSRV updating is broken.
PR #12775 is the last MSRV we got.
That was merged before #12654 and #13106.
That makes #12654 the most likely culprit.

Looking at the logs:
```
DEBUG: Matched 24 file(s) for manager regex: Cargo.toml, benches/benchsuite/Cargo.toml, benches/capture/Cargo.toml, crates/cargo-platform/Cargo.toml, crates/cargo-test-macro/Cargo.toml, crates/cargo-test-support/Cargo.toml, crates/cargo-test-support/containers/apache/bar/Cargo.toml, crates/cargo-test-support/containers/sshd/bar/Cargo.toml, crates/cargo-util-schemas/Cargo.toml, crates/cargo-util/Cargo.toml, crates/crates-io/Cargo.toml, crates/home/Cargo.toml, crates/mdman/Cargo.toml, crates/resolver-tests/Cargo.toml, crates/rustfix/Cargo.toml, crates/semver-check/Cargo.toml, crates/xtask-build-man/Cargo.toml, crates/xtask-bump-check/Cargo.toml, crates/xtask-stale-label/Cargo.toml, credential/cargo-credential-1password/Cargo.toml, credential/cargo-credential-libsecret/Cargo.toml, credential/cargo-credential-macos-keychain/Cargo.toml, credential/cargo-credential-wincred/Cargo.toml, credential/cargo-credential/Cargo.toml
...
DEBUG: manager extract durations (ms)
{
  "managers": {
    "dockerfile": 30,
    "github-actions": 38,
    "regex": 386,
    "cargo": 855
  }
}
DEBUG: Found cargo package files
DEBUG: Found dockerfile package files
DEBUG: Found github-actions package files
DEBUG: Found 25 package file(s)
```
Our regex managers have the files matched
but no regex manager packages are found.
I think this means that the name association failed or the regex within
the file content failed.

The differences between cargo and my other projects
- Use of `:`
- `depNameTemplate`
- Presence of `\b`

As a first attempt, I'm going to switch `\b` to `\\b` to be like the
other escaped regex values.
2024-01-08 12:11:55 -06:00
bors
0c98d6ec3a Auto merge of #13204 - hi-rustin:rustin-patch-test-out-dir, r=ehuss
fix: set OUT_DIR for all units with build scripts
2024-01-08 17:45:14 +00:00
bors
484f0f2a1b Auto merge of #13262 - epage:unused, r=ehuss
fix(manifest): Provide unused key warnings for lints table

### What does this PR try to resolve?

The use of `flatten` was getting in the way of `serde_ignored`.
A common workaround is to add our own `unused` tracking but that would
cause duplicates with `workspace.lints` (or we'd just ignore it).

Since the manual deserializer was relatively simple, I went that route.

Fixes #12917

### How should we test and review this PR?

Per commit

A test was added for the issue.  I then was worried about regressions in `workspace = false` errors (and I was right) so I added a test for that.  To get `workspace = false` to work nicely, I made it share code with other `workspace: bool` fields.

### Additional information
2024-01-08 17:06:42 +00:00
bors
bde42f1bc6 Auto merge of #13263 - epage:unused2, r=ehuss
test(manifest): Verify we warn on unused workspace.package fields

I assumed from #13258 that we didn't warn but apparently we do.  Figured it'd still be good to keep the test around.
2024-01-08 15:50:10 +00:00
Ed Page
96fa278540 test(manifest): Verify we warn on unused workspace.package fields
Inspired by #13258
2024-01-08 09:21:31 -06:00
bors
8fefb3cb8e Auto merge of #13260 - epage:change, r=ehuss
docs(changelog): Call out cargo-new lockfile change

I was looking for what release this happened in but we didn't have it listed.
We do list the documentation change.
This was likely from the PR focusing on the entire policy change which made it easy to overlook each aspect of the policy change.
2024-01-08 15:20:43 +00:00
Ed Page
6e86530ae2 fix(manifest): Provide unused key warnings for lints table
The use of `flatten` was getting in the way of `serde_ignored`.
A common workaround is to add our own `unused` tracking but that would
cause duplicates with `workspace.lints` (or we'd just ignore it).

Since the manual deserializer was relatively simple, I went that route.

Fixes #12917
2024-01-08 09:12:46 -06:00
Ed Page
e37a04a9d4 refactor(schema): Use dedicated type for 'workspace' field value 2024-01-08 09:06:03 -06:00
Ed Page
4760ef7822 test(lints): Verify we can't un-inherit 2024-01-08 08:49:04 -06:00
Ed Page
ef6954cd01 test(lints): Check unused key status 2024-01-08 08:27:34 -06:00
hi-rustin
87345a1932 test: correct not_inherit_workspace_package_table_if_not_members case
Signed-off-by: hi-rustin <rustin.liu@gmail.com>
2024-01-08 21:55:41 +08:00
Ed Page
9c73c54fe8 docs(changelog): Call out cargo-new lockfile change
I was looking for what release this happened in but we didn't have it
listed.
We do list the documentation change.
This was likely from the PR focusing on the entire policy change which
made it easy to overlook each aspect of the policy change.
2024-01-08 07:20:24 -06:00
hi-rustin
6739c7e95e fix: set OUT_DIR for all units with build scripts
Signed-off-by: hi-rustin <rustin.liu@gmail.com>
2024-01-08 20:59:18 +08:00
hi-rustin
8bba4f48c4 test: include a case for setting OUT_DIR
Signed-off-by: hi-rustin <rustin.liu@gmail.com>

test: remove the env set by Cargo

Signed-off-by: hi-rustin <rustin.liu@gmail.com>

Fix

Signed-off-by: hi-rustin <rustin.liu@gmail.com>
2024-01-08 20:58:52 +08:00
Jakub Beránek
e954099394
Update existing tests 2024-01-07 09:48:02 +01:00
Jakub Beránek
af46bbd264
Add tests 2024-01-07 09:48:02 +01:00
Jakub Beránek
872aa8f4f7
Fix existing test 2024-01-07 09:48:02 +01:00
Jakub Beránek
bc534513dd
Strip debuginfo if no debuginfo was requested 2024-01-07 09:48:02 +01:00
Jakub Beránek
58da1cec19
Store the Strip option in Deferred form 2024-01-07 09:48:02 +01:00
bors
13e97927cc Auto merge of #13255 - epage:dashboard, r=weihanglo
chore: Add dependency dashboard

Example: https://github.com/clap-rs/clap/issues/4824

I'm hoping this will make it easier to see what is going on with problems with RenovateBot, like our MSRVs not updating atm (#13254).
2024-01-06 04:38:27 +00:00
Ed Page
a93f4d8a18 chore: Add dependency dashboard
Example: https://github.com/clap-rs/clap/issues/4824

I'm hoping this will make it easier to see what is going on with
problems with RenovateBot, like our MSRVs not updating atm (#13254).
2024-01-05 20:08:43 -06:00
heisen-li
5023f20c4c delete --lib unit test description 2024-01-05 11:40:33 +08:00
Weihang Lo
e6f2dfd452
test(cargo-update): verify a oid-like tag triggers a re-fetch 2024-01-04 17:43:19 -05:00
Weihang Lo
093f7c8370
refactor: rename precise_full_git_fragment to precise_git_fragment 2024-01-04 16:32:58 -05:00
Weihang Lo
ce551d73b8
refactor(git): remove manifest_reference from GitSource 2024-01-04 16:32:58 -05:00
Weihang Lo
2734097f12
fix(git): represent deferred and resolved revision with an enum
`cargo update --precise` might pass in any arbitrary Git reference,
and `git2::Oid::from_str` would always zero-pad the given str if it is
not a full SHA hex string.

This introduces an enum `Revision` to represent `locked_rev`
that is either deferred or resolved to an actual object ID.
When `locked_rev` is a short ID or any other Git reference,
Cargo first performs a Git fetch to resolve it (without --offline),
and then locks it to an actual commit object ID.
2024-01-04 16:32:58 -05:00
bors
2ce45605d9 Auto merge of #13247 - epage:prefix, r=Muscraft
feat(embedded): Add prefix-char frontmatter syntax support

This is a follow up to #13241 with another syntax being discussed. This one is a bit more polarizing but we're hoping first-hand experience with it can help people get a feel for how well it works in practice.

As the experiment is meant to be short-lived, this is implemented in a hacky way and docs aren't updated.
2024-01-04 18:04:13 +00:00
bors
87eb374d49 Auto merge of #13249 - WeiTheShinobi:update_dependency_handlebars, r=epage
Update dependency handlebars to v5 for mdman.

### What does this PR try to resolve?

issue #13238
- update dependency handlebars 4.5.0 -> 5.0.0
- fix code to fit the changes of Handlebars API
- RenderError::new() is deprecated. Use RenderErrorReason instead

### How should we test and review this PR?
pass all tests in /crates/mdman/tests
2024-01-04 16:03:50 +00:00
Weihang Lo
4be3614264
test(cargo-update): --precise not work with tag or short id
This demonstrates the bug described in 13188
2024-01-04 10:56:55 -05:00
WeiTheShinobi
06201b9892 Update dependency handlebars to v5 for mdman.
- handlebars 4.5.0 -> 5.0.0
- fix code to fit the changes of Handlebars API
- RenderError::new() is deprecated. Use RenderErrorReason instead
2024-01-04 22:59:46 +08:00
bors
a88535459f Auto merge of #13248 - bjorn3:deprecate_plugin, r=weihanglo
Deprecate rustc plugin support in cargo
2024-01-04 13:55:41 +00:00
bjorn3
f26e2fe1da Deprecate rustc plugin support in cargo
It has been removed entirely from rustc itself already
2024-01-04 13:17:50 +01:00
Ed Page
b77ce7fa29 feat(embedded): Add prefix-char frontmatter syntax support
This is a follow up to #13241 with another syntax being discussed.
This one is a bit more polarizing but we're hoping first-hand experience
with it can help people get a feel for how well it works in practice.

As the experiment is meant to be short-lived, this is implemented in a
hacky way and docs aren't updated.
2024-01-03 16:39:43 -06:00
bors
f9946d15df Auto merge of #13241 - epage:syntax, r=Muscraft
feat(embedded): Add multiple experimental manifest syntaxes

### What does this PR try to resolve?

As syntax discussions for "cargo script" are on-going, this allows us to experiment with a couple of them so we can see how they work in practice.

This is missing the line-prefix syntax as we decide how we want to separate blocks for it.

While doing this, I removed the previous doc-comment syntax.  This was left in for transition purposes.  With where discussions are going, its unlikely we'll go back to that syntax.

### How should we test and review this PR?

### Additional information

rust-lang/rfcs#3503

https://rust-lang.zulipchat.com/#narrow/stream/213817-t-lang/topic/Syntax.20for.20embedded.20tooling.20metadata
2024-01-03 21:26:07 +00:00
Weihang Lo
f8a47fa6b3
refactor: make clear SourceId serialization will change in v4 2024-01-03 15:58:31 -05:00
Weihang Lo
6af53da5ec
feat(lockfile): stabilize v4 and prepare for v5 2024-01-03 15:58:31 -05:00
bors
e045049131 Auto merge of #13244 - weihanglo:auto-label, r=ehuss
chore: update auto labels

See

* `A-errors` has been renamed to `A-diagnostics`
* Some manifest related modules were moved to `cargo-util-schemas`.
2024-01-03 20:40:33 +00:00
Weihang Lo
872f4dff8d
chore: remove A-errors auto label 2024-01-03 15:06:48 -05:00