Ed Page
b14a70fe09
test(cli): Verify terminal styling
...
This uses a new feature from snapbox that let's us render terminal
styling in SVG files. This let's us see / visualize ANSI escape codes,
including in github's UI (will render images, including side-by-side
images for diffs).
2024-02-21 20:20:41 -06:00
bors
e08a81333c
Auto merge of #13281 - LuuuXXX:issue-10729, r=epage
...
fix(add): Improve error when adding registry packages while vendored
### **What does this PR try to resolve?**
When a vendored directory is established, cargo add no longer adds new packages. Instead, it tries to translate a package name into a package that already exists in the vendored directory.
[More details](https://github.com/rust-lang/cargo/issues/10729#issue-1260548746 )
Since `@epage` has done most of the work, here I do the rest of the finishing work.
Improves the error from #10729
### **How should we test and review this PR?**
The implementation procedure is as follows:
https://github.com/rust-lang/cargo/issues/10729#issuecomment-1191633351
Test steps:
1. Try to get an arbitrary crate and execute `cargo vendor` command.
2. Configure the vendor directory in .cargo/config.toml.
3. Add `alter-registry` to the config.toml file.
```
[registries]
alter-registry= { index = "XXX" }
```
4. run the same `cargo add` command.
```
cargo add another-crate --registry alter-registry
```
2024-02-22 17:28:17 +00:00
LuuuX
640c0774da
Rename Fuzzy to Alternatives
2024-02-22 14:08:46 +08:00
LuuuX
a31184b9eb
Added QueryKind::Normalized, and used it in cargo-add
2024-02-22 13:36:28 +08:00
bors
cafbc12bd9
Auto merge of #13467 - ehuss:global-tracker-old-cargo, r=weihanglo
...
Add global_cache_tracker stability tests.
This adds some tests to ensure that the database used in the global cache tracker stays compatible across versions. These tests work by using rustup to run both the current cargo and the stable cargo, and verifying that when switching versions, everything works as expected.
These tests will be ignored on developer environments if they don't have rustup, or don't have the stable toolchain installed. It does assume that "stable" is at least 1.76. It is required for the tests to run in CI, but will be disabled in rust-lang/rust since it does not have rustup.
I'm not expecting too much trouble with these tests, but if they become too fiddly or broken, they can always be changed or removed.
The support code for running "cargo +stable" is very basic right now. If we expand to add similar tests in the future, then I think we could consider adding support functions (such as [`tc_process`](64ccff290f/tests/testsuite/old_cargos.rs (L21-L36)
)) to make it easier or more reliable.
2024-02-21 21:32:07 +00:00
Eric Huss
a82794ec4a
Fix path issues for running rustup wrapper on Windows.
...
Cargo likes to modify PATH, which circumvents the ability to choose the
correct "cargo" executable to run on Windows (because Windows uses PATH
for both binary and shared library searching).
2024-02-20 16:27:04 -08:00
Eric Huss
ccaa118d27
Add workaround for RUSTUP_WINDOWS_PATH_ADD_BIN.
...
On Windows, rustup has an issue with recursive cargo invocations. This
commit can be removed once
https://github.com/rust-lang/rustup/issues/3036 is resolved.
2024-02-20 13:24:50 -08:00
Eric Huss
8bb62310e5
cargo_test CI macro: add requires_rustup_stable
...
This adds the `requires_rustup_stable` option to the cargo_test macro to
require `rustup` to exist, and for the `stable` toolchain to be
installed.
It is required that stable be installed in Cargo's CI. On a developer
machine, the tests will be ignored if rustup is not installed. It will
also be ignored on rust-lang/rust's CI since it does not have rustup.
2024-02-20 12:36:03 -08:00
Eric Huss
f9ba89b0cd
Add Execs::args
...
This adds the `Execs::args` method which forwards to
`ProcessBuilder::args` to specify multiple command arguments at once.
2024-02-20 12:33:32 -08:00
bors
64ccff290f
Auto merge of #13465 - epage:delete, r=weihanglo
...
test: Remove empty snapshots
Inspired by #13461
2024-02-20 20:12:08 +00:00
Ed Page
2e878a4c38
test: Remove empty snapshots for help
2024-02-20 13:05:16 -06:00
Scott Schafer
305efa63cc
chore: Rename Config
to GlobalContext
2024-02-20 11:55:15 -07:00
Eric Huss
daa884169c
Fix redundant imports.
2024-02-20 09:57:03 -08:00
bors
e7ff7a6618
Auto merge of #12861 - weihanglo:msrv-aware-lockfile, r=ehuss
...
feat: respect `rust-version` when generating lockfile
2024-02-19 19:05:03 +00:00
Ed Page
9f31f8c675
chore: Update snapbox
2024-02-16 10:27:48 -06:00
Weihang Lo
cd7cca369e
refactor: don't derive Default for ResolveVersion
...
This prevents a misuse of it.
2024-02-16 10:06:32 -05:00
Weihang Lo
fb95ac4887
feat: respect rust-version
when generating lockfile
...
Respect `package.rust-version` when generating lockfile, so that
a package with an old MSRV will never get an incompatible lockfile,
even when using the latest Cargo.
Users are still able to edit the `version` field in the lockfile
manually, if they intend to switch to a specific lockfile version.
2024-02-16 10:06:00 -05:00
Weihang Lo
7b0919399d
feat(cargo-util-schemas): TryFrom<PartialVersion>
for RustVersion
2024-02-16 10:05:59 -05:00
bors
af08da6834
Auto merge of #13424 - weihanglo:fix-13016, r=epage
...
fix(test-support): remove special case for `$message_type`
2024-02-09 03:21:05 +00:00
Weihang Lo
c426fbe68d
fix(test-support): remove special case for $message_type
2024-02-08 22:05:03 -05:00
bors
99176cad92
Auto merge of #13420 - rust-lang:renovate/msrv, r=epage
...
chore(deps): update msrv (1 version) to v1.76.0
[](https://renovatebot.com )
This PR contains the following updates:
| Package | Update | Change |
|---|---|---|
| [MSRV:1](https://togithub.com/rust-lang/rust ) | minor | `1.75.0` -> `1.76.0` |
---
### Release Notes
<details>
<summary>rust-lang/rust (MSRV:1)</summary>
### [`v1.76.0`](https://togithub.com/rust-lang/rust/blob/HEAD/RELEASES.md#Version-1760-2024-02-08 )
[Compare Source](https://togithub.com/rust-lang/rust/compare/1.75.0...1.76.0 )
\==========================
<a id="1.76.0-Language"></a>
## Language
- [Document Rust ABI compatibility between various types](https://togithub.com/rust-lang/rust/pull/115476/ )
- [Also: guarantee that char and u32 are ABI-compatible](https://togithub.com/rust-lang/rust/pull/118032/ )
- [Warn against ambiguous wide pointer comparisons](https://togithub.com/rust-lang/rust/pull/117758/ )
<a id="1.76.0-Compiler"></a>
## Compiler
- [Lint pinned `#[must_use]` pointers (in particular, `Box<T>` where `T` is `#[must_use]`) in `unused_must_use`.](https://togithub.com/rust-lang/rust/pull/118054/ )
- [Soundness fix: fix computing the offset of an unsized field in a packed struct](https://togithub.com/rust-lang/rust/pull/118540/ )
- [Soundness fix: fix dynamic size/align computation logic for packed types with dyn Trait tail](https://togithub.com/rust-lang/rust/pull/118538/ )
- [Add `$message_type` field to distinguish json diagnostic outputs](https://togithub.com/rust-lang/rust/pull/115691/ )
- [Enable Rust to use the EHCont security feature of Windows](https://togithub.com/rust-lang/rust/pull/118013/ )
- [Add tier 3 {x86\_64,i686}-win7-windows-msvc targets](https://togithub.com/rust-lang/rust/pull/118150/ )
- [Add tier 3 aarch64-apple-watchos target](https://togithub.com/rust-lang/rust/pull/119074/ )
- [Add tier 3 arm64e-apple-ios & arm64e-apple-darwin targets](https://togithub.com/rust-lang/rust/pull/115526/ )
Refer to Rust's \[platform support page]\[platform-support-doc]
for more information on Rust's tiered platform support.
<a id="1.76.0-Libraries"></a>
## Libraries
- [Add a column number to `dbg!()`](https://togithub.com/rust-lang/rust/pull/114962/ )
- [Add `std:#️⃣ :{DefaultHasher, RandomState}` exports](https://togithub.com/rust-lang/rust/pull/115694/ )
- [Fix rounding issue with exponents in fmt](https://togithub.com/rust-lang/rust/pull/116301/ )
- [Add T: ?Sized to `RwLockReadGuard` and `RwLockWriteGuard`'s Debug impls.](https://togithub.com/rust-lang/rust/pull/117138/ )
- [Windows: Allow `File::create` to work on hidden files](https://togithub.com/rust-lang/rust/pull/116438/ )
<a id="1.76.0-Stabilized-APIs"></a>
## Stabilized APIs
- [`Arc::unwrap_or_clone`](https://doc.rust-lang.org/stable/std/sync/struct.Arc.html#method.unwrap_or_clone )
- [`Rc::unwrap_or_clone`](https://doc.rust-lang.org/stable/std/rc/struct.Rc.html#method.unwrap_or_clone )
- [`Result::inspect`](https://doc.rust-lang.org/stable/std/result/enum.Result.html#method.inspect )
- [`Result::inspect_err`](https://doc.rust-lang.org/stable/std/result/enum.Result.html#method.inspect_err )
- [`Option::inspect`](https://doc.rust-lang.org/stable/std/option/enum.Option.html#method.inspect )
- [`type_name_of_val`](https://doc.rust-lang.org/stable/std/any/fn.type_name_of_val.html )
- [`std:#️⃣ :{DefaultHasher, RandomState}`](https://doc.rust-lang.org/stable/std/hash/index.html#structs )
These were previously available only through `std::collections::hash_map`.
- [`ptr::{from_ref, from_mut}`](https://doc.rust-lang.org/stable/std/ptr/fn.from_ref.html )
- [`ptr::addr_eq`](https://doc.rust-lang.org/stable/std/ptr/fn.addr_eq.html )
<a id="1.76.0-Cargo"></a>
## Cargo
See [Cargo release notes](https://togithub.com/rust-lang/cargo/blob/master/CHANGELOG.md#cargo-176-2024-02-08 ).
<a id="1.76.0-Rustdoc"></a>
## Rustdoc
- [Don't merge cfg and doc(cfg) attributes for re-exports](https://togithub.com/rust-lang/rust/pull/113091/ )
- [rustdoc: allow resizing the sidebar / hiding the top bar](https://togithub.com/rust-lang/rust/pull/115660/ )
- [rustdoc-search: add support for traits and associated types](https://togithub.com/rust-lang/rust/pull/116085/ )
- [rustdoc: Add highlighting for comments in items declaration](https://togithub.com/rust-lang/rust/pull/117869/ )
<a id="1.76.0-Compatibility-Notes"></a>
## Compatibility Notes
- [Add allow-by-default lint for unit bindings](https://togithub.com/rust-lang/rust/pull/112380/ )
This is expected to be upgraded to a warning by default in a future Rust
release. Some macros emit bindings with type `()` with user-provided spans,
which means that this lint will warn for user code.
- [Remove x86\_64-sun-solaris target.](https://togithub.com/rust-lang/rust/pull/118091/ )
- [Remove asmjs-unknown-emscripten target](https://togithub.com/rust-lang/rust/pull/117338/ )
- [Report errors in jobserver inherited through environment variables](https://togithub.com/rust-lang/rust/pull/113730/ )
This [may warn](https://togithub.com/rust-lang/rust/issues/120515 ) on benign problems too.
- [Update the minimum external LLVM to 16.](https://togithub.com/rust-lang/rust/pull/117947/ )
- [Improve `print_tts`](https://togithub.com/rust-lang/rust/pull/114571/ )
This change can break some naive manual parsing of token trees in proc macro
code which expect a particular structure after `.to_string()`, rather than just arbitrary Rust code.
- [Make `IMPLIED_BOUNDS_ENTAILMENT` into a hard error from a lint](https://togithub.com/rust-lang/rust/pull/117984/ )
- [Vec's allocation behavior was changed when collecting some iterators](https://togithub.com/rust-lang/rust/pull/110353 )
Allocation behavior is currently not specified, nevertheless changes can be surprising.
See [`impl FromIterator for Vec`](https://doc.rust-lang.org/nightly/std/vec/struct.Vec.html#impl-FromIterator%3CT%3E-for-Vec%3CT%3E )
for more details.
- [Properly reject `default` on free const items](https://togithub.com/rust-lang/rust/pull/117818/ )
</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:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNzMuMCIsInVwZGF0ZWRJblZlciI6IjM3LjE3My4wIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIn0=-->
2024-02-08 17:02:30 +00:00
Weihang Lo
6072a0897a
chore(bump-check): include rustfix and cargo-util-schemas
2024-02-08 10:45:08 -05:00
renovate[bot]
5ea658df78
chore(deps): update msrv (1 version) to v1.76.0
2024-02-08 14:32:51 +00:00
Ed Page
c89ac1f234
feat(update): Summarize unchanged packages with updates
...
`--verbose` will show them.
This is prep for telling the user about `--breaking` and other flags.
2024-01-30 20:16:32 -06:00
Ed Page
db54c040ae
fix(new): Print a 'Creating', rather than 'Created' status
...
This has bothered me about `cargo new` and `cargo init` for a while that
the output is read backwards, for example:
```diff
--- i/tests/testsuite/cargo_init/path_contains_separator/stderr.log
+++ w/tests/testsuite/cargo_init/path_contains_separator/stderr.log
@@ -1,3 +1,3 @@
+ Creating binary (application) package
warning: the path `[ROOT]/case/test:ing/.` contains invalid PATH characters (usually `:`, `;`, or `"`)
It is recommended to use a different name to avoid problems.
- Created binary (application) package
```
2024-01-29 15:29:10 -06:00
Lin Yihai
41f7dc2b35
doc: Replace version with latest
for jobserver link
2024-01-29 15:22:57 +08:00
Ed Page
675224b3a0
test(config): Shift to config.toml
2024-01-26 13:40:46 -06:00
Eric Huss
3c414b5cf1
Fix static_mut_ref warning.
2024-01-19 15:12:37 -08:00
Ed Page
c6c1df4758
chore: Make N-2 the default MSRV
...
We likely don't want to release these packages every 6 months just for
an MSRV bump.
By moving the MSRV out of the package, `cargo bump-check` will ignore
the MSRV bump.
Inspired by #13266
2024-01-18 15:30:41 -06:00
Ed Page
b291f42dce
chore: Make N-0 MSRVs explicit
...
This will require a version bump every release but over-releasing these
packages is likely a lot better than over-releasing the N-3 packages,
which we won't have to do anymore after this.
My hope is the `auto` value will be approved and stabilized and then we
won't have to over-release anymore.
2024-01-18 15:28:04 -06:00
Ed Page
9438f80042
chore: Remove rust-version from private packages
...
I removed it from `cargo-test-support` and `cargo-test-macro`, despite
people depending on those (via git) because my long term plan is resting
on the `auto` value which won't affect git dependencies.
2024-01-18 15:24:25 -06:00
bors
187d4cf35e
Auto merge of #13273 - BD103:master, r=weihanglo
...
Document why `du` function uses mutex
### What does this PR try to resolve?
After closing #13253 , it [was suggested](https://github.com/rust-lang/cargo/pull/13253#issuecomment-1883286035 ) to document why the `du` function uses a `Mutex` instead of an `AtomicU64`. This will prevent others from making the same mistake I did. :)
### How should we test and review this PR?
N/A
### Additional information
N/A
2024-01-10 14:19:06 +00:00
BD103
c832cdf068
bump: cargo-util to 0.2.10
2024-01-10 08:01:47 -05:00
BD103
529130fe54
fix: missing word in comment
...
Co-authored-by: Weihang Lo <weihanglo@users.noreply.github.com>
2024-01-09 12:50:49 -05:00
Tobias Bieniek
6218d08504
crates-io: Bump version to v0.40.0
2024-01-09 18:03:21 +01:00
BD103
4da5444bb7
chore: document why du function uses mutex
2024-01-09 12:01:03 -05:00
Tobias Bieniek
2d1728088f
crates-io: Set Content-Type: application/json
only for requests with a body payload
2024-01-09 17:57:56 +01:00
bors
c0db7f9227
Auto merge of #13266 - rust-lang:renovate/msrv, r=epage
...
chore(deps): update msrv
[](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
renovate[bot]
03beda3a6e
chore(deps): update msrv
2024-01-08 22:17:07 +00: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
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
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
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
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
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
Eric Huss
e7eaa51909
cargo fix
: Call rustc fewer times.
...
This changes `cargo fix` so that it keeps track of the output so that it
doesn't need to run the final "show the output" step.
2024-01-02 15:03:06 -08:00
Lin Yihai
35d5fae5b6
test: support publish package with a public
field.
2024-01-03 04:08:59 +08:00
renovate[bot]
4deb34bd0b
chore(deps): update compatible
2024-01-02 10:21:24 +00:00
bors
61f07b2494
Auto merge of #13228 - rust-lang:renovate/alpine-3.x, r=epage
...
chore(deps): update alpine docker tag to v3.19
[](https://renovatebot.com )
This PR contains the following updates:
| Package | Type | Update | Change |
|---|---|---|---|
| alpine | final | minor | `3.18` -> `3.19` |
---
### 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 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:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjEwMy4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIn0=-->
2024-01-02 02:47:02 +00:00