|
1 | 1 | # Changelog
|
2 | 2 |
|
3 | 3 | ## Cargo 1.86 (2025-04-03)
|
4 |
| -[d73d2caf...HEAD](https://github.com/rust-lang/cargo/compare/d73d2caf...HEAD) |
| 4 | +[d73d2caf...rust-1.86.0](https://github.com/rust-lang/cargo/compare/d73d2caf...rust-1.86.0) |
5 | 5 |
|
6 | 6 | ### Added
|
7 | 7 |
|
8 | 8 | ### Changed
|
9 | 9 |
|
| 10 | +- ❗️ When merging, replace rather than combine configuration keys that refer |
| 11 | + to a program path and its arguments. |
| 12 | + [#15066](https://github.com/rust-lang/cargo/pull/15066) |
| 13 | + These keys include: |
| 14 | + - `registry.credential-provider` |
| 15 | + - `registries.*.credential-provider` |
| 16 | + - `target.*.runner` |
| 17 | + - `host.runner` |
| 18 | + - `credential-alias.*` |
| 19 | + - `doc.browser` |
| 20 | +- ❗️ Error if both `--package` and `--workspace` are passed but the requested |
| 21 | + package is missing. This was previously silently ignored, which was considered |
| 22 | + a bug since missing packages should be reported. |
| 23 | + [#15071](https://github.com/rust-lang/cargo/pull/15071) |
| 24 | +- Added warning when failing to update index cache. |
| 25 | + [#15014](https://github.com/rust-lang/cargo/pull/15014) |
| 26 | +- Don't use "did you mean" in errors. Be upfront about what the suggestion is. |
| 27 | + [#15138](https://github.com/rust-lang/cargo/pull/15138) |
| 28 | +- Provide a better error message for invalid SSH URLs in dependency sources. |
| 29 | + [#15185](https://github.com/rust-lang/cargo/pull/15185) |
| 30 | +- Suggest similar feature names when the package doesn't have given features. |
| 31 | + [#15133](https://github.com/rust-lang/cargo/pull/15133) |
| 32 | +- Print globs when workspace members can't be found. |
| 33 | + [#15093](https://github.com/rust-lang/cargo/pull/15093) |
| 34 | +- cargo-fix: Make `--allow-dirty` imply `--allow-staged` |
| 35 | + [#15013](https://github.com/rust-lang/cargo/pull/15013) |
| 36 | +- cargo-login: hide the `token` argument from CLI help for the preparation of deprecation. |
| 37 | + [#15057](https://github.com/rust-lang/cargo/pull/15057) |
| 38 | +- cargo-login: Don't suggest `cargo login` when using incompatible credential providers. |
| 39 | + [#15124](https://github.com/rust-lang/cargo/pull/15124) |
| 40 | +- cargo-package: improve the performance of VCS status check by matching certain |
| 41 | + path prefixes with pathspec. |
| 42 | + [#14997](https://github.com/rust-lang/cargo/pull/14997) |
| 43 | + |
10 | 44 | ### Fixed
|
11 | 45 |
|
12 | 46 | - The `rerun-if-env-changed` build script instruction can now correctly detect
|
13 | 47 | changes in the `[env]` configuration table.
|
14 | 48 | [#14756](https://github.com/rust-lang/cargo/pull/14756)
|
| 49 | +- Force emitting warnings as warnings when learning Rust target info for an unsupported crate type. |
| 50 | + [#15036](https://github.com/rust-lang/cargo/pull/15036) |
15 | 51 | - cargo-package: Verify the VCS status of symlinks
|
16 | 52 | when they point to paths outside the current package root.
|
17 | 53 | [#14981](https://github.com/rust-lang/cargo/pull/14981)
|
18 | 54 |
|
19 | 55 | ### Nightly only
|
20 | 56 |
|
| 57 | +- 🔥 `-Z feature-unification`: This new unstable flag enables the |
| 58 | + `resolver.feature-unification` configuration option to control how features |
| 59 | + are unified across a workspace. |
| 60 | + ([RFC 3529](https://github.com/rust-lang/rfcs/blob/master/text/3692-feature-unification.md)) |
| 61 | + ([docs](https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#feature-unification)) |
| 62 | + [#15157](https://github.com/rust-lang/cargo/pull/15157) |
21 | 63 | - cargo-util-schemas: Correct and update the JSON Schema
|
22 | 64 | [#15000](https://github.com/rust-lang/cargo/pull/15000)
|
| 65 | +- cargo-util-schemas: Fix the `[lints]` JSON Schema |
| 66 | + [#15035](https://github.com/rust-lang/cargo/pull/15035) |
| 67 | +- cargo-util-schemas: Fix 'metadata' JSON Schema |
| 68 | + [#15033](https://github.com/rust-lang/cargo/pull/15033) |
| 69 | +- `cargo rustc --print`: Setup cargo environment for `cargo rustc --print`. |
| 70 | + [#15026](https://github.com/rust-lang/cargo/pull/15026) |
| 71 | +- `-Zbuild-std`: parse value as comma-separated list, also extends the behavior |
| 72 | + to `build-std-features`. |
| 73 | + [#15065](https://github.com/rust-lang/cargo/pull/15065) |
| 74 | +- `-Zgc`: Make cache tracking resilient to unexpected files. |
| 75 | + [#15147](https://github.com/rust-lang/cargo/pull/15147) |
| 76 | +- `-Zscript`: Consolidate creation of SourceId from manifest path |
| 77 | + [#15172](https://github.com/rust-lang/cargo/pull/15172) |
| 78 | +- `-Zscript`: Integrate cargo-script logic into main parser |
| 79 | + [#15168](https://github.com/rust-lang/cargo/pull/15168) |
| 80 | +- `-Zscript`: add `cargo pkgid` support for cargo-script |
| 81 | + [#14961](https://github.com/rust-lang/cargo/pull/14961) |
| 82 | +- `-Zpackage-workspace`: Report all unpublishable packages |
| 83 | + [#15070](https://github.com/rust-lang/cargo/pull/15070) |
23 | 84 |
|
24 | 85 | ### Documentation
|
25 | 86 |
|
| 87 | +- Document that Cargo automatically registers variables used in the `env!` |
| 88 | + macro to trigger rebuilds since 1.46. |
| 89 | + [#15062](https://github.com/rust-lang/cargo/pull/15062) |
| 90 | +- Move the changelog to The Cargo Book. |
| 91 | + [#15119](https://github.com/rust-lang/cargo/pull/15119) |
| 92 | + [#15123](https://github.com/rust-lang/cargo/pull/15123) |
| 93 | + [#15142](https://github.com/rust-lang/cargo/pull/15142) |
| 94 | +- Note `package.authors` is deprecated. |
| 95 | + [#15068](https://github.com/rust-lang/cargo/pull/15068) |
| 96 | +- Fix the wrong grammar of a Package Id Specification. |
| 97 | + [#15049](https://github.com/rust-lang/cargo/pull/15049) |
| 98 | +- Fix the inverted logic about MSRV |
| 99 | + [#15044](https://github.com/rust-lang/cargo/pull/15044) |
| 100 | +- cargo-metadata: Fix description of the `"root"` field. |
| 101 | + [#15182](https://github.com/rust-lang/cargo/pull/15182) |
| 102 | +- cargo-package: note the lock file is always included. |
| 103 | + [#15067](https://github.com/rust-lang/cargo/pull/15067) |
| 104 | +- contrib: Start guidelines for schema design. |
| 105 | + [#15037](https://github.com/rust-lang/cargo/pull/15037) |
| 106 | + |
26 | 107 | ### Internal
|
27 | 108 |
|
| 109 | +- Don't use `libc::LOCK_*` on Solaris. |
| 110 | + [#15143](https://github.com/rust-lang/cargo/pull/15143) |
| 111 | +- Clean up field -> env var handling. |
| 112 | + [#15008](https://github.com/rust-lang/cargo/pull/15008) |
| 113 | +- Simplify SourceID Ord/Eq. |
| 114 | + [#14980](https://github.com/rust-lang/cargo/pull/14980) |
| 115 | + [#15103](https://github.com/rust-lang/cargo/pull/15103) |
| 116 | +- Add manual Hash impl for SourceKind and document the reason. |
| 117 | + [#15029](https://github.com/rust-lang/cargo/pull/15029) |
| 118 | +- ci: allow Windows reserved names in CI |
| 119 | + [#15135](https://github.com/rust-lang/cargo/pull/15135) |
28 | 120 | - cargo-test-macro: Remove condition on `RUSTUP_WINDOWS_PATH_ADD_BIN`
|
29 | 121 | [#15017](https://github.com/rust-lang/cargo/pull/15017)
|
| 122 | +- resolver: Simplify backtrack |
| 123 | + [#15150](https://github.com/rust-lang/cargo/pull/15150) |
| 124 | +- resolver: Small cleanups |
| 125 | + [#15040](https://github.com/rust-lang/cargo/pull/15040) |
30 | 126 | - test: Clean up shallow fetch tests
|
31 | 127 | [#15002](https://github.com/rust-lang/cargo/pull/15002)
|
32 |
| -- test: Fix `https::self_signed_should_fail` for macos |
| 128 | +- test: Fix `https::self_signed_should_fail` for macOS |
33 | 129 | [#15016](https://github.com/rust-lang/cargo/pull/15016)
|
34 |
| -- Update to libgit2 1.9. |
35 |
| - [#15018](https://github.com/rust-lang/cargo/pull/15018) |
36 |
| -- Update dependencies: update rust crate itertools to 0.14.0 |
| 130 | +- test: Fix benchsuite issue with newer versions of git |
| 131 | + [#15069](https://github.com/rust-lang/cargo/pull/15069) |
| 132 | +- test: Fix shared_std_dependency_rebuild running on Windows |
| 133 | + [#15111](https://github.com/rust-lang/cargo/pull/15111) |
| 134 | +- test: Update tests to fix nightly errors |
| 135 | + [#15110](https://github.com/rust-lang/cargo/pull/15110) |
| 136 | +- test: Remove unused `-C link-arg=-fuse-ld=lld` |
| 137 | + [#15097](https://github.com/rust-lang/cargo/pull/15097) |
| 138 | +- test: Remove `unsafe` by using `LazyLock` |
| 139 | + [#15096](https://github.com/rust-lang/cargo/pull/15096) |
| 140 | +- test: Remove unnecessary into conversions |
| 141 | + [#15042](https://github.com/rust-lang/cargo/pull/15042) |
| 142 | +- test: Fix race condition in panic_abort_tests |
| 143 | + [#15169](https://github.com/rust-lang/cargo/pull/15169) |
| 144 | +- Update deny.toml |
| 145 | + [#15164](https://github.com/rust-lang/cargo/pull/15164) |
| 146 | +- Update dependencies. |
| 147 | + [#14995](https://github.com/rust-lang/cargo/pull/14995) |
37 | 148 | [#14996](https://github.com/rust-lang/cargo/pull/14996)
|
38 | 149 | [#14998](https://github.com/rust-lang/cargo/pull/14998)
|
39 | 150 | [#15012](https://github.com/rust-lang/cargo/pull/15012)
|
| 151 | + [#15018](https://github.com/rust-lang/cargo/pull/15018) |
| 152 | + [#15041](https://github.com/rust-lang/cargo/pull/15041) |
| 153 | + [#15050](https://github.com/rust-lang/cargo/pull/15050) |
| 154 | + [#15121](https://github.com/rust-lang/cargo/pull/15121) |
| 155 | + [#15128](https://github.com/rust-lang/cargo/pull/15128) |
| 156 | + [#15129](https://github.com/rust-lang/cargo/pull/15129) |
| 157 | + [#15162](https://github.com/rust-lang/cargo/pull/15162) |
| 158 | + [#15163](https://github.com/rust-lang/cargo/pull/15163) |
| 159 | + [#15165](https://github.com/rust-lang/cargo/pull/15165) |
| 160 | + [#15166](https://github.com/rust-lang/cargo/pull/15166) |
40 | 161 |
|
41 | 162 | ## Cargo 1.85 (2025-02-20)
|
42 | 163 | [66221abd...rust-1.85.0](https://github.com/rust-lang/cargo/compare/66221abd...rust-1.85.0)
|
|
0 commit comments