Commit graph

17443 commits

Author SHA1 Message Date
renovate[bot] de12264978
chore(deps): update msrv (3 versions) to v1.76 2024-05-03 16:07:50 +00:00
bors 7ebc065673 Auto merge of #13571 - Urgau:stabilize-check-cfg, r=weihanglo
Stabilize `-Zcheck-cfg` as always enabled

This PR stabilize the `-Zcheck-cfg` option as always enabled.

~~Waiting on https://github.com/rust-lang/rust/issues/82450#issuecomment-1965328542 to complete, but is otherwise ready to be reviewed (in particular the documentation changes).~~ (https://github.com/rust-lang/rust/pull/123501)

Fixes https://github.com/rust-lang/cargo/issues/10554
2024-05-03 15:38:39 +00:00
bors cf7b3c4cf3 Auto merge of #13852 - Muscraft:revert-seperating-lints, r=epage
fix(lints): Prevent inheritance from bring exposed for published packages

#13843 demonstrated a regression caused by #13801, where we started to keep `[lints]` and `[workspace.lints]` separate, and not truly resolve `[lints]`. This was a nice thing to have and made it easier to tell when a lint came from a workspace. The downside of doing so is the lints table would not get resolved when vendoring or publishing.

To fix this issue, I reverted the change for keeping `[lints]` and `[workspace.lints]` separate and modified how cargo's linting system figures out where a lint is coming from. Due to this change, we no longer specify that a lint was set by `[workspace.lints]`, only `[lints]`. It is true that a lint level is set by `[lints]` always, as it would've had to specify the lint outright or specify that it was inheriting it, seeing that, I do not think this is a regression in diagnostic quality. I still manage to keep the ability to render a lint's location in the workspace's manifest when running ` analyze_cargo_lints_table`, which I am pleased about.
2024-05-03 00:49:36 +00:00
Scott Schafer 6c2334613c
fix(lints): Prevent inheritance from bring exposed for published packages 2024-05-02 15:37:53 -06:00
bors 97181c67e1 Auto merge of #13851 - weihanglo:macos, r=epage
refactor: remove unnecessary branch for link binary on macOS
2024-05-02 20:11:50 +00:00
Weihang Lo f8aead9338
refactor: remove unnecessary branch for link binary on macOS
The other workaround branch should have covered that.
2024-05-02 16:04:26 -04:00
bors 9e57a8d830 Auto merge of #13849 - epage:no-infer, r=weihanglo
perf(toml): Avoid inferring when targets are known

### What does this PR try to resolve?

We read the file system to infer two different data points
- Implicit targets
- Implicit `path` values for targets

I took a shortcut for this case and recognize the scenario where we can
bypass both and do so.
I went with a bypass, rather than this being integrating into the
inferring code because the inferring code is complex and I didn't want
to add to it further in isolating the inferring to only when its needed.

The validation gets duplicated because having it in the middle of the resolve code provides a better user experience and it would be messy to add the conditionals to get all of that working.  I at least worked to keep the duplicated validation close to each other.

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

### Additional information
2024-05-02 19:41:57 +00:00
bors f89264764a Auto merge of #13850 - eddiewebb:patch-1, r=epage
Update continuous-integration.md: Include CircleCI reference

### What does this PR try to resolve?

Adds simple example to run `cargo test` on CircleCI, alongside the other popular CI engines.

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

Change is purely documentation. I would ask that the PR be checked for tone and formatting that is in line with Rust/Cargo community standards.
2024-05-02 17:17:32 +00:00
bors 1a0e77f216 Auto merge of #13848 - rust-lang:renovate/msrv, r=epage
chore(deps): update msrv (1 version) to v1.78

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

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [MSRV:1](https://togithub.com/rust-lang/rust) | minor | `1.77` -> `1.78` |

---

### Release Notes

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

### [`v1.78`](https://togithub.com/rust-lang/rust/blob/HEAD/RELEASES.md#Version-1780-2024-05-02)

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

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

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

## Language

-   [Stabilize `#[cfg(target_abi = ...)]`](https://togithub.com/rust-lang/rust/pull/119590/)
-   [Stabilize the `#[diagnostic]` namespace and `#[diagnostic::on_unimplemented]` attribute](https://togithub.com/rust-lang/rust/pull/119888/)
-   [Make async-fn-in-trait implementable with concrete signatures](https://togithub.com/rust-lang/rust/pull/120103/)
-   [Make matching on NaN a hard error, and remove the rest of `illegal_floating_point_literal_pattern`](https://togithub.com/rust-lang/rust/pull/116284/)
-   [static mut: allow mutable reference to arbitrary types, not just slices and arrays](https://togithub.com/rust-lang/rust/pull/117614/)
-   [Extend `invalid_reference_casting` to include references casting to bigger memory layout](https://togithub.com/rust-lang/rust/pull/118983/)
-   [Add `non_contiguous_range_endpoints` lint for singleton gaps after exclusive ranges](https://togithub.com/rust-lang/rust/pull/118879/)
-   [Add `wasm_c_abi` lint for use of older wasm-bindgen versions](https://togithub.com/rust-lang/rust/pull/117918/)
    This lint currently only works when using Cargo.
-   [Update `indirect_structural_match` and `pointer_structural_match` lints to match RFC](https://togithub.com/rust-lang/rust/pull/120423/)
-   [Make non-`PartialEq`-typed consts as patterns a hard error](https://togithub.com/rust-lang/rust/pull/120805/)
-   [Split `refining_impl_trait` lint into `_reachable`, `_internal` variants](https://togithub.com/rust-lang/rust/pull/121720/)
-   [Remove unnecessary type inference when using associated types inside of higher ranked `where`-bounds](https://togithub.com/rust-lang/rust/pull/119849)
-   [Weaken eager detection of cyclic types during type inference](https://togithub.com/rust-lang/rust/pull/119989)
-   [`trait Trait: Auto {}`: allow upcasting from `dyn Trait` to `dyn Auto`](https://togithub.com/rust-lang/rust/pull/119338)

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

## Compiler

-   [Made `INVALID_DOC_ATTRIBUTES` lint deny by default](https://togithub.com/rust-lang/rust/pull/111505/)
-   [Increase accuracy of redundant `use` checking](https://togithub.com/rust-lang/rust/pull/117772/)
-   [Suggest moving definition if non-found macro_rules! is defined later](https://togithub.com/rust-lang/rust/pull/121130/)
-   [Lower transmutes from int to pointer type as gep on null](https://togithub.com/rust-lang/rust/pull/121282/)

Target changes:

-   [Windows tier 1 targets now require at least Windows 10](https://togithub.com/rust-lang/rust/pull/115141/)
    -   [Enable CMPXCHG16B, SSE3, SAHF/LAHF and 128-bit Atomics in tier 1 Windows](https://togithub.com/rust-lang/rust/pull/120820/)
-   [Add `wasm32-wasip1` tier 2 (without host tools) target](https://togithub.com/rust-lang/rust/pull/120468/)
-   [Add `wasm32-wasip2` tier 3 target](https://togithub.com/rust-lang/rust/pull/119616/)
-   [Rename `wasm32-wasi-preview1-threads` to `wasm32-wasip1-threads`](https://togithub.com/rust-lang/rust/pull/122170/)
-   [Add `arm64ec-pc-windows-msvc` tier 3 target](https://togithub.com/rust-lang/rust/pull/119199/)
-   [Add `armv8r-none-eabihf` tier 3 target for the Cortex-R52](https://togithub.com/rust-lang/rust/pull/110482/)
-   [Add `loongarch64-unknown-linux-musl` tier 3 target](https://togithub.com/rust-lang/rust/pull/121832/)

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

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

## Libraries

-   [Bump Unicode to version 15.1.0, regenerate tables](https://togithub.com/rust-lang/rust/pull/120777/)
-   [Make align_offset, align_to well-behaved in all cases](https://togithub.com/rust-lang/rust/pull/121201/)
-   [PartialEq, PartialOrd: document expectations for transitive chains](https://togithub.com/rust-lang/rust/pull/115386/)
-   [Optimize away poison guards when std is built with panic=abort](https://togithub.com/rust-lang/rust/pull/100603/)
-   [Replace pthread `RwLock` with custom implementation](https://togithub.com/rust-lang/rust/pull/110211/)
-   [Implement unwind safety for Condvar on all platforms](https://togithub.com/rust-lang/rust/pull/121768/)
-   [Add ASCII fast-path for `char::is_grapheme_extended`](https://togithub.com/rust-lang/rust/pull/121138/)

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

## Stabilized APIs

-   [`impl Read for &Stdin`](https://doc.rust-lang.org/stable/std/io/struct.Stdin.html#impl-Read-for-%26Stdin)
-   [Accept non `'static` lifetimes for several `std::error::Error` related implementations](https://togithub.com/rust-lang/rust/pull/113833/)
-   [Make `impl<Fd: AsFd>` impl take `?Sized`](https://togithub.com/rust-lang/rust/pull/114655/)
-   [`impl From<TryReserveError> for io::Error`](https://doc.rust-lang.org/stable/std/io/struct.Error.html#impl-From%3CTryReserveError%3E-for-Error)

These APIs are now stable in const contexts:

-   [`Barrier::new()`](https://doc.rust-lang.org/stable/std/sync/struct.Barrier.html#method.new)

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

## Cargo

-   [Stabilize lockfile v4](https://togithub.com/rust-lang/cargo/pull/12852/)
-   [Respect `rust-version` when generating lockfile](https://togithub.com/rust-lang/cargo/pull/12861/)
-   [Control `--charset` via auto-detecting config value](https://togithub.com/rust-lang/cargo/pull/13337/)
-   [Support `target.<triple>.rustdocflags` officially](https://togithub.com/rust-lang/cargo/pull/13197/)
-   [Stabilize global cache data tracking](https://togithub.com/rust-lang/cargo/pull/13492/)

<a id="1.78.0-Misc"></a>

## Misc

-   [rustdoc: add `--test-builder-wrapper` arg to support wrappers such as RUSTC_WRAPPER when building doctests](https://togithub.com/rust-lang/rust/pull/114651/)

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

## Compatibility Notes

-   [Many unsafe precondition checks now run for user code with debug assertions enabled](https://togithub.com/rust-lang/rust/pull/120594/)
    This change helps users catch undefined behavior in their code, though the details of how much is checked are generally not stable.
-   [riscv only supports split_debuginfo=off for now](https://togithub.com/rust-lang/rust/pull/120518/)
-   [Consistently check bounds on hidden types of `impl Trait`](https://togithub.com/rust-lang/rust/pull/121679)
-   [Change equality of higher ranked types to not rely on subtyping](https://togithub.com/rust-lang/rust/pull/118247)
-   [When called, additionally check bounds on normalized function return type](https://togithub.com/rust-lang/rust/pull/118882)
-   [Expand coverage for `arithmetic_overflow` lint](https://togithub.com/rust-lang/rust/pull/119432/)

<a id="1.78.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 18](https://togithub.com/rust-lang/rust/pull/120055/)
-   [Build `rustc` with 1CGU on `x86_64-pc-windows-msvc`](https://togithub.com/rust-lang/rust/pull/112267/)
-   [Build `rustc` with 1CGU on `x86_64-apple-darwin`](https://togithub.com/rust-lang/rust/pull/112268/)
-   [Introduce `run-make` V2 infrastructure, a `run_make_support` library and port over 2 tests as example](https://togithub.com/rust-lang/rust/pull/113026/)
-   [Windows: Implement condvar, mutex and rwlock using futex](https://togithub.com/rust-lang/rust/pull/121956/)

</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.

🔕 **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 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:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMzEuMCIsInVwZGF0ZWRJblZlciI6IjM3LjMzMS4wIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbXX0=-->
2024-05-02 16:48:24 +00:00
Eddie Webbinaro e62ef14fd8
Update continuous-integration.md: Include CircleCI reference
Adds simple example to run `cargo test` on CircleCI
2024-05-02 12:30:59 -04:00
renovate[bot] 05ba4d8cfe chore(deps): update msrv (1 version) to v1.78 2024-05-02 15:07:25 +00:00
bors 8733d5a80b Auto merge of #13845 - thiblahute:zfs_macos_hard_link, r=weihanglo
Workaround copying file returning EAGAIN on ZFS on mac OS

### What does this PR try to resolve?

Fixes #13838

Trying to build simple hello world fail when on zfs file system on macOS fails while trying to copy files around.

This PR makes cargo fallback to using hard_link when that happens, retrying can lead to very long wait before copying works (up to 4secs in my tests) while hard_linking works straight away.
2024-05-02 14:37:55 +00:00
Thibault Saunier 4634aa6403 cargo-util: Bump version 2024-05-02 10:20:00 -04:00
bors 27d3e3d603 Auto merge of #13818 - osiewicz:clean-package-perf-improvements, r=weihanglo
Clean package perf improvements

### What does this PR try to resolve?

I've noticed that `cargo clean -p` execution time scales poorly with size of target directory; in my case (~250GB target directory on M1 Mac) running `cargo clean -p` takes circa 35 seconds. Notably, it's the file listing that takes that time, not deleting the package itself. That is, when running `cargo clean -p SOME_PACKAGE` twice in a row, both executions take roughly the same time.

I've tracked it down to the fact that we seem quite happy to use `glob::glob` function, which iterates over contents of target dir. It also was a bit sub-optimal when it came to doing that, for which I've already filled a PR in https://github.com/rust-lang/glob/pull/144 - that PR alone takes down cleaning time down to ~14 seconds. While it is a good improvement for a relatively straightforward change, this PR tries to take it even further. With glob PR applied + changes from this PR, my test case goes down to ~6 seconds. I'm pretty sure that we could squeeze this further, but I'd rather do so in a follow-up PR.

Notably, this PR doesn't help with *just* super-large target directories. `cargo clean -p serde` on cargo repo (with ~7Gb target directory size) went down from ~380ms to ~100ms for me. Not too shabby.

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

I've mostly tested it manually, running `cargo clean` against multiple different repos.

### Additional information
TODO:
- [x] [c770700](c770700885) is not quite correct; we need to consider that it changes how progress reporting works; as is, we're gonna report all progress relatively quickly and stall at the end (when we're actually iterating over directories, globbing, removing files, that kind of jazz). I'll address that.
2024-05-02 13:59:32 +00:00
bors e420c7bbdd Auto merge of #13841 - epage:i, r=weihanglo
fix(toml): Validate crates_types/proc-macro for bin like others

### What does this PR try to resolve?

This is all refactors on my way to skipping inferring of targets when it isn't needed.  Along the way, I made the target validation more consistent

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

### Additional information
2024-05-02 13:23:03 +00:00
Thibault Saunier defff445fa Workaround copying file returning EAGAIN on ZFS on mac OS
Falling back to hard_link when that happens, retrying can lead to very
long wait before copying works (up to 4secs in my tests) while
hard_linking works straight away.

Looks related to https://github.com/openzfsonosx/zfs/issues/809

Closes #13838
2024-05-02 08:32:38 -04:00
Piotr Osiewicz 9c1139ec72 feedback: rewrite doc comment for rm_rf_prefix_list 2024-05-02 12:37:25 +02:00
Piotr Osiewicz 574d086cb3 fixup! Update src/cargo/ops/cargo_clean.rs 2024-05-02 12:30:38 +02:00
Piotr Osiewicz a49a2b9584
Update src/cargo/ops/cargo_clean.rs
Change Rc<str> to &str

Co-authored-by: Weihang Lo <weihanglo@users.noreply.github.com>
2024-05-02 12:29:28 +02:00
Ed Page f5892f210e perf(toml): Avoid inferring when targets are known
We read the file system to infer two different data points
- Implicit targets
- Implicit `path` values for targets

I took a shortcut for this case and recognize the scenario where we can
bypass both and do so.
I went with a bypass, rather than this being integrating into the
inferring code because the inferring code is complex and I didn't want
to add to it further in isolating the inferring to only when its needed.
2024-05-01 19:42:19 -05:00
Ed Page 3740bbb36c refactor(toml): Defer inferred discovery 2024-05-01 19:42:19 -05:00
Ed Page cdae596394 refactor(toml): Consistently document motivation for validation order 2024-05-01 19:42:02 -05:00
Ed Page fe0819ee9e fix(toml): Validate crates_types/proc-macro for bin like others
Turns out, we allow these fields, just in limited ways, so we need to be
consistent.

I limited when this applies to reduce noise from the user solving there
problem because they are unlikely to keep the field and switch it to the
opposite value
2024-05-01 19:36:30 -05:00
Ed Page 2c31fe33e8 test(toml): Show underscore behavior for bin targets 2024-05-01 19:35:53 -05:00
Ed Page d59e7a3443 test(toml): Scope proc_macro2 tests to libs 2024-05-01 19:32:13 -05:00
bors d34d0a1e15 Auto merge of #13839 - epage:df_2024, r=Muscraft
fix(toml): On 2024 Edition, disallow ignored `default-features` when inheriting

### What does this PR try to resolve?

This is part of rust-lang/rust#123754

This is a follow up to #11409 which tweaked how we do inheritance of default-features, including warning when `default-features = false` is ignored.  This turns those warnings into an error.

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

### Additional information
2024-05-01 22:06:45 +00:00
bors 57d3248335 Auto merge of #13840 - epage:openssl, r=weihanglo
chore(ci): Ignore openssl deps

We excluded the packages in #13731 but that just means they fell into the default logic, rather than being ignored (see #13835).  This at least made it easier to reject the change.

This should prevent the PR from being created.
2024-05-01 21:04:43 +00:00
Ed Page 89810b9688 chore(ci): Ignore openssl deps
We excluded the packages in #13731 but that just means they fell into
the default logic, rather than being ignored (see #13835).  This at
least made it easier to reject the change.

This should prevent the PR from being created.
2024-05-01 15:35:59 -05:00
bors bbea43745c Auto merge of #13837 - Muscraft:only-underscores-lint-names, r=epage
fix(lints): Remove ability to specify `-` in lint name

In a recent Cargo Team meeting, it was discussed whether our lint should use `-` or `_` and if we should rewrite the wrong form to the correct one. It was decided that Cargo would use `_` for lint names and would not convert `-` to `_` automatically; instead, we would warn about an "unknown lint" and mention the similarly named lint with `_`, if found.

The decision to ise `_` was made because it is the canonical representation, as well as [RFC #344](https://rust-lang.github.io/rfcs/0344-conventions-galore.html#lints) specifies:
> Use snake case in the same way you would for function names.

This PR implements these changes.

Note: This adds an `unknown_lints` lint, that tries to mirror [the lint `rustc` has with the same name](https://doc.rust-lang.org/rustc/lints/listing/warn-by-default.html#unknown-lints).
2024-05-01 20:31:49 +00:00
Ed Page 627b1d1470 feat(fix): Migrate inherited deps with ignored default-features 2024-05-01 12:43:47 -05:00
Ed Page 10012ce9cf test(fix): Show default-features migration 2024-05-01 12:30:57 -05:00
Ed Page 5965c15179 fix(toml): Disallow ignored default-features when inheriting 2024-05-01 12:04:07 -05:00
Ed Page 2e686d46f3 test(toml): Show default features inheritance on 2024 Edition 2024-05-01 12:04:07 -05:00
Ed Page 656107a173 refactor(toml): Allow adding errors to ws dep inheritance 2024-05-01 12:04:07 -05:00
Ed Page 7f2c7061f1 refactor(toml): Move the ws default features function out 2024-05-01 12:04:07 -05:00
Ed Page 738cdeca8b refactor(toml): Clarify what the ws default features function does 2024-05-01 12:04:07 -05:00
bors 82dca28700 Auto merge of #13791 - epage:msrv-unset, r=Eh2406
fix(resolver): Treat unset MSRV as compatible

### What does this PR try to resolve?

Have the resolver treat no-MSRV as `rust-version = "*"`, like `cargo add` does for version-requirement selection

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

We last tweaked this logic in #13066.
However, we noticed this was inconsistent with `cargo add` in automatically selecting version requirements.

It looks like this is a revert of #13066, taking us back to the behavior in #12950.
In #12950 there was a concern about the proliferation of no-MSRV and whether we should de-prioritize those to make the chance of success more likely.

There are no right answes here, only which wrong answer is ok enough.
- Do we treat lack of rust version as `rust-version = "*"` as some people expect or do we try to be smart?
- If a user adds or removes `rust-version`, how should that affect the priority?

One piece of new information is that the RFC for this has us trying to fill the no-MSRV gap with
`rust-version = some-value-representing-the-current-toolchain>`.

See also https://github.com/rust-lang/cargo/issues/9930#issuecomment-1977471059

r? `@Eh2406`

### Additional information
2024-05-01 16:56:30 +00:00
Scott Schafer 6c08e58de9
feat(cargo-lints): Add a lint for unknown_lints 2024-05-01 10:45:09 -06:00
Scott Schafer 9159ebb083
fix(cargo-lints): Don't rewrite dash to underscore in lint name 2024-05-01 10:41:35 -06:00
bors e591b0ee9f Auto merge of #13836 - epage:default_features, r=Muscraft
fix(toml): Don't lose 'public' when inheriting a dep

### What does this PR try to resolve?

When inheriting a simple dep, we preserved the package dep's `public`
field but lost it when inheriting a detailed dep.

This was done by consolidating the code paths.  This also reduces the
risk of us doing this again in the future.

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

I didn't write tests for this specific case because I refactored the root cause away.

### Additional information
2024-05-01 16:26:35 +00:00
Ed Page 1fc366826c refactor(toml): Use exhaustive destructure to ensure we inherit dep fields 2024-05-01 11:04:47 -05:00
Ed Page e8ba122c8b fix(toml): Don't lose 'public' when inheriting a dep
When inheriting a simple dep, we preserved the package dep's `public`
field but lost it when inheriting a detailed dep.

This was done by consolidating the code paths.  This also reduces the
risk of us doing this again in the future.
2024-05-01 10:57:42 -05:00
Ed Page bfe62a670d refactor(toml): Always create a detailed dep
This minimizes risk as we add more dependency features
2024-05-01 10:51:36 -05:00
Ed Page 7820a0b446 refactor(toml): Clarify which dep we are talking about 2024-05-01 10:41:00 -05:00
bors ed20c34d1c Auto merge of #13834 - rust-lang:renovate/compatible, r=epage
chore(deps): update compatible

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

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [annotate-snippets](https://togithub.com/rust-lang/annotate-snippets-rs) | workspace.dependencies | patch | `0.11.1` -> `0.11.2` |
| [anyhow](https://togithub.com/dtolnay/anyhow) | workspace.dependencies | patch | `1.0.81` -> `1.0.82` |
| [base64](https://togithub.com/marshallpierce/rust-base64) | workspace.dependencies | patch | `0.22.0` -> `0.22.1` |
| [color-print](https://gitlab.com/dajoha/color-print) | workspace.dependencies | patch | `0.3.5` -> `0.3.6` |
| [flate2](https://togithub.com/rust-lang/flate2-rs) | workspace.dependencies | patch | `1.0.28` -> `1.0.30` |
| [indexmap](https://togithub.com/indexmap-rs/indexmap) | workspace.dependencies | patch | `2` -> `2.2.6` |
| [jobserver](https://togithub.com/rust-lang/jobserver-rs) | workspace.dependencies | patch | `0.1.28` -> `0.1.31` |
| [libc](https://togithub.com/rust-lang/libc) | workspace.dependencies | patch | `0.2.153` -> `0.2.154` |
| [pathdiff](https://togithub.com/Manishearth/pathdiff) | workspace.dependencies | patch | `0.2` -> `0.2.1` |
| [percent-encoding](https://togithub.com/servo/rust-url) | workspace.dependencies | patch | `2.3` -> `2.3.1` |
| [pulldown-cmark](https://togithub.com/raphlinus/pulldown-cmark) | workspace.dependencies | patch | `0.10.2` -> `0.10.3` |
| [serde](https://serde.rs) ([source](https://togithub.com/serde-rs/serde)) | workspace.dependencies | patch | `1.0.197` -> `1.0.199` |
| [serde_json](https://togithub.com/serde-rs/json) | workspace.dependencies | patch | `1.0.115` -> `1.0.116` |
| [thiserror](https://togithub.com/dtolnay/thiserror) | workspace.dependencies | patch | `1.0.58` -> `1.0.59` |
| [time](https://time-rs.github.io) ([source](https://togithub.com/time-rs/time)) | workspace.dependencies | patch | `0.3` -> `0.3.36` |
| [toml_edit](https://togithub.com/toml-rs/toml) | workspace.dependencies | patch | `0.22.11` -> `0.22.12` |
| [unicode-width](https://togithub.com/unicode-rs/unicode-width) | workspace.dependencies | patch | `0.1.11` -> `0.1.12` |

---

### Release Notes

<details>
<summary>rust-lang/annotate-snippets-rs (annotate-snippets)</summary>

### [`v0.11.2`](https://togithub.com/rust-lang/annotate-snippets-rs/blob/HEAD/CHANGELOG.md#0112---2024-04-27)

[Compare Source](https://togithub.com/rust-lang/annotate-snippets-rs/compare/0.11.1...0.11.2)

##### Added

-   All public types now implement `Debug` [#&#8203;119](https://togithub.com/rust-lang/annotate-snippets-rs/pull/119)

</details>

<details>
<summary>dtolnay/anyhow (anyhow)</summary>

### [`v1.0.82`](https://togithub.com/dtolnay/anyhow/releases/tag/1.0.82)

[Compare Source](https://togithub.com/dtolnay/anyhow/compare/1.0.81...1.0.82)

-   Documentation improvements

</details>

<details>
<summary>marshallpierce/rust-base64 (base64)</summary>

### [`v0.22.1`](https://togithub.com/marshallpierce/rust-base64/blob/HEAD/RELEASE-NOTES.md#0221)

[Compare Source](https://togithub.com/marshallpierce/rust-base64/compare/v0.22.0...v0.22.1)

-   Correct the symbols used for the predefined `alphabet::BIN_HEX`.

</details>

<details>
<summary>dajoha/color-print (color-print)</summary>

### [`v0.3.6`](https://gitlab.com/dajoha/color-print/compare/v0.3.5...v0.3.6)

[Compare Source](https://gitlab.com/dajoha/color-print/compare/v0.3.5...v0.3.6)

</details>

<details>
<summary>rust-lang/flate2-rs (flate2)</summary>

### [`v1.0.30`](https://togithub.com/rust-lang/flate2-rs/releases/tag/1.0.30): - docs.rs pages should build again

[Compare Source](https://togithub.com/rust-lang/flate2-rs/compare/1.0.29...1.0.30)

##### What's Changed

-   Fix typos by [`@&#8203;striezel](https://togithub.com/striezel)` in [https://github.com/rust-lang/flate2-rs/pull/406](https://togithub.com/rust-lang/flate2-rs/pull/406)
-   Update actions/checkout in GitHub Actions workflows to v4 by [`@&#8203;striezel](https://togithub.com/striezel)` in [https://github.com/rust-lang/flate2-rs/pull/407](https://togithub.com/rust-lang/flate2-rs/pull/407)
-   fix CI - `--all-features` wasn't tested and didn't work with arrival of `zlib-rs` by [`@&#8203;Byron](https://togithub.com/Byron)` in [https://github.com/rust-lang/flate2-rs/pull/405](https://togithub.com/rust-lang/flate2-rs/pull/405)

##### New Contributors

-   [`@&#8203;striezel](https://togithub.com/striezel)` made their first contribution in [https://github.com/rust-lang/flate2-rs/pull/406](https://togithub.com/rust-lang/flate2-rs/pull/406)

**Full Changelog**: https://github.com/rust-lang/flate2-rs/compare/1.0.29...1.0.30

### [`v1.0.29`](https://togithub.com/rust-lang/flate2-rs/releases/tag/1.0.29): - with new `zlib-rs` feature (~`zlib-ng` in Rust)

[Compare Source](https://togithub.com/rust-lang/flate2-rs/compare/1.0.28...1.0.29)

With the [new `zlib-rs`](https://togithub.com/memorysafety/zlib-rs) feature, a new backend is enabled that brings in a SIMD-accelerated Rust implementation.

##### What's Changed

-   Fix build for beta and nightly by [`@&#8203;JakubOnderka](https://togithub.com/JakubOnderka)` in [https://github.com/rust-lang/flate2-rs/pull/388](https://togithub.com/rust-lang/flate2-rs/pull/388)
-   Store `StreamWrapper::inner` as a raw pointer by [`@&#8203;icmccorm](https://togithub.com/icmccorm)` in [https://github.com/rust-lang/flate2-rs/pull/394](https://togithub.com/rust-lang/flate2-rs/pull/394)
-   Avoid redudant imports by [`@&#8203;Byron](https://togithub.com/Byron)` in [https://github.com/rust-lang/flate2-rs/pull/398](https://togithub.com/rust-lang/flate2-rs/pull/398)
-   add `zlib-rs` support via the `libz-rs-sys` C api for `zlib-rs` by [`@&#8203;folkertdev](https://togithub.com/folkertdev)` in [https://github.com/rust-lang/flate2-rs/pull/400](https://togithub.com/rust-lang/flate2-rs/pull/400)
-   Add tests to show BufRead can be used after decoding by [`@&#8203;jongiddy](https://togithub.com/jongiddy)` in [https://github.com/rust-lang/flate2-rs/pull/402](https://togithub.com/rust-lang/flate2-rs/pull/402)
-   release version 1.0.29: support for zlib-rs by [`@&#8203;folkertdev](https://togithub.com/folkertdev)` in [https://github.com/rust-lang/flate2-rs/pull/403](https://togithub.com/rust-lang/flate2-rs/pull/403)

##### New Contributors

-   [`@&#8203;JakubOnderka](https://togithub.com/JakubOnderka)` made their first contribution in [https://github.com/rust-lang/flate2-rs/pull/388](https://togithub.com/rust-lang/flate2-rs/pull/388)
-   [`@&#8203;icmccorm](https://togithub.com/icmccorm)` made their first contribution in [https://github.com/rust-lang/flate2-rs/pull/394](https://togithub.com/rust-lang/flate2-rs/pull/394)
-   [`@&#8203;folkertdev](https://togithub.com/folkertdev)` made their first contribution in [https://github.com/rust-lang/flate2-rs/pull/400](https://togithub.com/rust-lang/flate2-rs/pull/400)

**Full Changelog**: https://github.com/rust-lang/flate2-rs/compare/1.0.28...1.0.29

</details>

<details>
<summary>rust-lang/libc (libc)</summary>

### [`v0.2.154`](https://togithub.com/rust-lang/libc/releases/tag/0.2.154)

[Compare Source](https://togithub.com/rust-lang/libc/compare/0.2.153...0.2.154)

#### What's Changed

-   Fix CI on v0.2 by [`@&#8203;JohnTitor](https://togithub.com/JohnTitor)` in [https://github.com/rust-lang/libc/pull/3589](https://togithub.com/rust-lang/libc/pull/3589)
-   \[Backport [#&#8203;3547](https://togithub.com/rust-lang/libc/issues/3547)] Add ioctl FS_IOC\_{G,S}{ETVERSION,ETFLAGS} for CSKY by [`@&#8203;Dirreke](https://togithub.com/Dirreke)` in [https://github.com/rust-lang/libc/pull/3572](https://togithub.com/rust-lang/libc/pull/3572)
-   Add Linux riscv64 HWCAP defines (libc-0.2) by [`@&#8203;Xeonacid](https://togithub.com/Xeonacid)` in [https://github.com/rust-lang/libc/pull/3580](https://togithub.com/rust-lang/libc/pull/3580)
-   Add missing MIPS R6 FS_IOC_\* definitions by [`@&#8203;chenx97](https://togithub.com/chenx97)` in [https://github.com/rust-lang/libc/pull/3591](https://togithub.com/rust-lang/libc/pull/3591)
-   Support posix_spawn on Android by [`@&#8203;pcc](https://togithub.com/pcc)` in [https://github.com/rust-lang/libc/pull/3602](https://togithub.com/rust-lang/libc/pull/3602)
-   \[0.2] Fix libc-tests for loongarch64 by [`@&#8203;heiher](https://togithub.com/heiher)` in [https://github.com/rust-lang/libc/pull/3607](https://togithub.com/rust-lang/libc/pull/3607)
-   visionOS Support by [`@&#8203;agg23](https://togithub.com/agg23)` in [https://github.com/rust-lang/libc/pull/3568](https://togithub.com/rust-lang/libc/pull/3568)
-   \[0.2] linux/musl: Add support for LoongArch64 by [`@&#8203;heiher](https://togithub.com/heiher)` in [https://github.com/rust-lang/libc/pull/3606](https://togithub.com/rust-lang/libc/pull/3606)
-   v0.2: Fix c_char on AIX by [`@&#8203;taiki-e](https://togithub.com/taiki-e)` in [https://github.com/rust-lang/libc/pull/3662](https://togithub.com/rust-lang/libc/pull/3662)
-   solarish adding SO_EXCLBIND constant. by [`@&#8203;devnexen](https://togithub.com/devnexen)` in [https://github.com/rust-lang/libc/pull/3651](https://togithub.com/rust-lang/libc/pull/3651)
-   \[0.2] Add SIG constants to espidf by [`@&#8203;Tevz-Beskovnik](https://togithub.com/Tevz-Beskovnik)` in [https://github.com/rust-lang/libc/pull/3658](https://togithub.com/rust-lang/libc/pull/3658)
-   add all android sysconf constants by [`@&#8203;fkm3](https://togithub.com/fkm3)` in [https://github.com/rust-lang/libc/pull/3656](https://togithub.com/rust-lang/libc/pull/3656)
-   feat: more \_PC_XXX constants for apple targets by [`@&#8203;SteveLauC](https://togithub.com/SteveLauC)` in [https://github.com/rust-lang/libc/pull/3649](https://togithub.com/rust-lang/libc/pull/3649)
-   feat: O_EXEC/O_SEARCH for apple platforms by [`@&#8203;SteveLauC](https://togithub.com/SteveLauC)` in [https://github.com/rust-lang/libc/pull/3668](https://togithub.com/rust-lang/libc/pull/3668)
-   \[0.2] Add constant AT_MINSIGSTKSZ by [`@&#8203;ur4t](https://togithub.com/ur4t)` in [https://github.com/rust-lang/libc/pull/3637](https://togithub.com/rust-lang/libc/pull/3637)
-   Haiku: synchronize with post R1-beta 4 changes in libc by [`@&#8203;nielx](https://togithub.com/nielx)` in [https://github.com/rust-lang/libc/pull/3638](https://togithub.com/rust-lang/libc/pull/3638)
-   adding getentropy/getrandom to dragonflybsd. by [`@&#8203;devnexen](https://togithub.com/devnexen)` in [https://github.com/rust-lang/libc/pull/3618](https://togithub.com/rust-lang/libc/pull/3618)
-   Move strftime, strftime_l, strptime to linux_like by [`@&#8203;pcc](https://togithub.com/pcc)` in [https://github.com/rust-lang/libc/pull/3600](https://togithub.com/rust-lang/libc/pull/3600)
-   update crate version to 0.2.154 by [`@&#8203;Dirreke](https://togithub.com/Dirreke)` in [https://github.com/rust-lang/libc/pull/3573](https://togithub.com/rust-lang/libc/pull/3573)

#### New Contributors

-   [`@&#8203;pcc](https://togithub.com/pcc)` made their first contribution in [https://github.com/rust-lang/libc/pull/3602](https://togithub.com/rust-lang/libc/pull/3602)
-   [`@&#8203;agg23](https://togithub.com/agg23)` made their first contribution in [https://github.com/rust-lang/libc/pull/3568](https://togithub.com/rust-lang/libc/pull/3568)
-   [`@&#8203;Tevz-Beskovnik](https://togithub.com/Tevz-Beskovnik)` made their first contribution in [https://github.com/rust-lang/libc/pull/3658](https://togithub.com/rust-lang/libc/pull/3658)
-   [`@&#8203;ur4t](https://togithub.com/ur4t)` made their first contribution in [https://github.com/rust-lang/libc/pull/3637](https://togithub.com/rust-lang/libc/pull/3637)

**Full Changelog**: https://github.com/rust-lang/libc/compare/0.2.153...0.2.154

</details>

<details>
<summary>raphlinus/pulldown-cmark (pulldown-cmark)</summary>

### [`v0.10.3`](https://togithub.com/pulldown-cmark/pulldown-cmark/releases/tag/v0.10.3)

[Compare Source](https://togithub.com/raphlinus/pulldown-cmark/compare/v0.10.2...v0.10.3)

The main change of this release is the `simd` feature was not being used in the escape functions  since the version 0.10 due to a mistake during the separation of the crate `pulldown-cmark-escape`.

The crate `pulldown-cmark-escape` has been updated to the version 0.10.1.

#### What's Changed

-   fix: fix dead code warning from nightly compiler by [`@&#8203;rhysd](https://togithub.com/rhysd)` in [https://github.com/pulldown-cmark/pulldown-cmark/pull/876](https://togithub.com/pulldown-cmark/pulldown-cmark/pull/876)
-   Eat all spaces after line break in link title by [`@&#8203;notriddle](https://togithub.com/notriddle)` in [https://github.com/pulldown-cmark/pulldown-cmark/pull/877](https://togithub.com/pulldown-cmark/pulldown-cmark/pull/877)
-   Mark `Rule` as a block item by [`@&#8203;notriddle](https://togithub.com/notriddle)` in [https://github.com/pulldown-cmark/pulldown-cmark/pull/879](https://togithub.com/pulldown-cmark/pulldown-cmark/pull/879)

**Full Changelog**: https://github.com/pulldown-cmark/pulldown-cmark/compare/v0.10.2...v0.10.3

</details>

<details>
<summary>serde-rs/serde (serde)</summary>

### [`v1.0.199`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.199)

[Compare Source](https://togithub.com/serde-rs/serde/compare/v1.0.198...v1.0.199)

-   Fix ambiguous associated item when `forward_to_deserialize_any!` is used on an enum with `Error` variant ([#&#8203;2732](https://togithub.com/serde-rs/serde/issues/2732), thanks [`@&#8203;aatifsyed](https://togithub.com/aatifsyed))`

### [`v1.0.198`](https://togithub.com/serde-rs/serde/releases/tag/v1.0.198)

[Compare Source](https://togithub.com/serde-rs/serde/compare/v1.0.197...v1.0.198)

-   Support serializing and deserializing `Saturating<T>` ([#&#8203;2709](https://togithub.com/serde-rs/serde/issues/2709), thanks [`@&#8203;jbethune](https://togithub.com/jbethune))`

</details>

<details>
<summary>serde-rs/json (serde_json)</summary>

### [`v1.0.116`](https://togithub.com/serde-rs/json/releases/tag/v1.0.116)

[Compare Source](https://togithub.com/serde-rs/json/compare/v1.0.115...v1.0.116)

-   Make module structure comprehensible to static analysis ([#&#8203;1124](https://togithub.com/serde-rs/json/issues/1124), thanks [`@&#8203;mleonhard](https://togithub.com/mleonhard))`

</details>

<details>
<summary>dtolnay/thiserror (thiserror)</summary>

### [`v1.0.59`](https://togithub.com/dtolnay/thiserror/releases/tag/1.0.59)

[Compare Source](https://togithub.com/dtolnay/thiserror/compare/1.0.58...1.0.59)

-   Unblock testing of rustc `debug-fmt-detail` option ([#&#8203;297](https://togithub.com/dtolnay/thiserror/issues/297))

</details>

<details>
<summary>time-rs/time (time)</summary>

### [`v0.3.36`](https://togithub.com/time-rs/time/blob/HEAD/CHANGELOG.md#0336-2024-04-10)

[Compare Source](https://togithub.com/time-rs/time/compare/v0.3.35...v0.3.36)

##### # Fixed

-   `FormatItem` can be used as part of an import path. See [#&#8203;675] for details.

[#&#8203;675]: https://togithub.com/time-rs/time/issues/675

### [`v0.3.35`](https://togithub.com/time-rs/time/blob/HEAD/CHANGELOG.md#0335-2024-04-10)

[Compare Source](https://togithub.com/time-rs/time/compare/v0.3.34...v0.3.35)

##### Added

-   `Duration::checked_neg`
-   `ext::InstantExt`, which provides methods for using `time::Duration` with `std::time::Instant`

##### Changed

-   `Instant` is deprecated. It is recommended to use `std::time::Instant` directly, importing
    `time::ext::InstantExt` for interoperability with `time::Duration`.
-   `FormatItem` has been renamed to `BorrowedFormatItem`, avoiding confusion with `OwnedFormatItem`.
    An alias has been added for backwards compatibility.

##### Fixed

-   The weekday is optional when parsing RFC2822.
-   The range of sub-second values in `Duration` is documented correctly. The previous documentation
    contained an off-by-one error.
-   Leap seconds are now correctly handled when parsing ISO 8601.

</details>

<details>
<summary>toml-rs/toml (toml_edit)</summary>

### [`v0.22.12`](https://togithub.com/toml-rs/toml/compare/v0.22.11...v0.22.12)

[Compare Source](https://togithub.com/toml-rs/toml/compare/v0.22.11...v0.22.12)

</details>

<details>
<summary>unicode-rs/unicode-width (unicode-width)</summary>

### [`v0.1.12`](https://togithub.com/unicode-rs/unicode-width/compare/v0.1.11...v0.1.12)

[Compare Source](https://togithub.com/unicode-rs/unicode-width/compare/v0.1.11...v0.1.12)

</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.

👻 **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:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMjEuMiIsInVwZGF0ZWRJblZlciI6IjM3LjMzMS4wIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbXX0=-->
2024-05-01 15:14:21 +00:00
renovate[bot] 4570c94d54
chore(deps): update compatible 2024-05-01 15:09:07 +00:00
bors 6fc9e4b9a1 Auto merge of #13805 - Muscraft:im-a-teapot-lint-unstable, r=epage
Error when unstable lints are specified but not enabled

In [#13797, it was noted that](https://github.com/rust-lang/cargo/pull/13797#discussion_r1578162057) the `im-a-teapot` lint should always be unstable. This PR makes it so that `im-a-teapot` is unstable, and it is an error to specify it without the `test-dummy-unstable` cargo feature.

It does this by adding a `feature-gate` field to `Lint` and `LintGroup` that optionally
puts the lint/lint group behind a feature. The `feature-gate` is then checked during the new `analyze_cargo_lints_table` step that runs across all lints (and groups) specified in `[lints.cargo]` or `[workspace.lints]` if the package is inheriting its lints from a workspace.

The error looks like the following:
No inherit
![No inherit](https://github.com/rust-lang/cargo/assets/23045215/c245af87-8623-42dc-9652-be461809bb30)
Inherited
![Inhrtited](https://github.com/rust-lang/cargo/assets/23045215/5a90b7c9-0e9e-4a07-ab0e-e2e43cca8991)
2024-05-01 13:59:51 +00:00
Urgau 388a17f23f Update regular tests for always-on check-cfg 2024-05-01 12:56:04 +02:00
Urgau 60a5026885 Adjust documentation for newly stabilized -Zcheck-cfg 2024-05-01 12:56:04 +02:00
Scott Schafer 712946c518
fix(lints): Mark the test_dummy_unstable lint group as unstable 2024-04-30 20:35:50 -06:00