|
1 | 1 | # Changelog
|
2 | 2 |
|
3 |
| -## Cargo 1.79 (2024-06-13) |
4 |
| -[2fe739fc...HEAD](https://github.com/rust-lang/cargo/compare/2fe739fc...HEAD) |
| 3 | +## Cargo 1.80 (2024-07-25) |
| 4 | +[b60a1555...HEAD](https://github.com/rust-lang/cargo/compare/b60a1555...HEAD) |
5 | 5 |
|
6 | 6 | ### Added
|
7 | 7 |
|
8 | 8 | ### Changed
|
9 | 9 |
|
10 | 10 | ### Fixed
|
11 | 11 |
|
12 |
| -- Replace dashes with underscores also if `lib.name` is inferred from `package.name`. |
| 12 | +### Nightly only |
| 13 | + |
| 14 | +- `-Zcargo-lints`: Don't always inherit workspace lints. |
| 15 | + [#13812](https://github.com/rust-lang/cargo/pull/13812) |
| 16 | + |
| 17 | +### Documentation |
| 18 | + |
| 19 | +### Internal |
| 20 | + |
| 21 | +## Cargo 1.79 (2024-06-13) |
| 22 | +[2fe739fc...rust-1.79.0](https://github.com/rust-lang/cargo/compare/2fe739fc...rust-1.79.0) |
| 23 | + |
| 24 | +### Added |
| 25 | + |
| 26 | +- 🎉 `cargo add` respects `package.rust-version` a.k.a. MSRV when adding new |
| 27 | + dependencies. The behavior can be overridden by specifying a version requirement, |
| 28 | + or passing the `--ignore-rust-version` flag. |
| 29 | + ([RFC 3537](https://github.com/rust-lang/rfcs/blob/master/text/3537-msrv-resolver.md)) |
| 30 | + [#13608](https://github.com/rust-lang/cargo/pull/13608) |
| 31 | +- A new `Locking` status message shows dependency changes on any command. |
| 32 | + For `cargo update`, it also tells you if any dependency version is outdated. |
| 33 | + [#13561](https://github.com/rust-lang/cargo/pull/13561) |
| 34 | + [#13647](https://github.com/rust-lang/cargo/pull/13647) |
| 35 | + [#13651](https://github.com/rust-lang/cargo/pull/13651) |
| 36 | + [#13657](https://github.com/rust-lang/cargo/pull/13657) |
| 37 | + [#13759](https://github.com/rust-lang/cargo/pull/13759) |
| 38 | + [#13764](https://github.com/rust-lang/cargo/pull/13764) |
| 39 | + |
| 40 | +### Changed |
| 41 | + |
| 42 | +- ❗️ `RUSTC_WRAPPER`, `RUSTC_WORKSPACE_WRAPPER`, and variables from the `[env]` |
| 43 | + table now also apply to the initial `rustc -vV` invocation Cargo uses for |
| 44 | + probing rustc information. |
| 45 | + [#13659](https://github.com/rust-lang/cargo/pull/13659) |
| 46 | +- ❗️ Turns dependencies like `foo = { optional = true }` from `version="*"` |
| 47 | + dependencies with a warning into errors. |
| 48 | + This behavior has been considered a bug from the beginning. |
| 49 | + [#13775](https://github.com/rust-lang/cargo/pull/13775) |
| 50 | +- ❗️ Replace dashes with underscores also if `lib.name` is inferred from `package.name`. |
| 51 | + This change aligns to the documented behavior. One caveat is that |
| 52 | + `cargo metadata` starts reporting underscore lib names. |
13 | 53 | [#12783](https://github.com/rust-lang/cargo/pull/12783)
|
| 54 | +- Switch to `gitoxide` for listing files. This improves the performance of |
| 55 | + build script and `cargo doc` for computing cache freshness, |
| 56 | + as well as fixes some subtle bugs for `cargo publish`. |
| 57 | + [#13592](https://github.com/rust-lang/cargo/pull/13592) |
| 58 | + [#13696](https://github.com/rust-lang/cargo/pull/13696) |
| 59 | + [#13704](https://github.com/rust-lang/cargo/pull/13704) |
| 60 | + [#13777](https://github.com/rust-lang/cargo/pull/13777) |
| 61 | +- Warn on `-Zlints` being passed and no longer necessary. |
| 62 | + [#13632](https://github.com/rust-lang/cargo/pull/13632) |
| 63 | +- Warn on unused `workspace.dependencies` keys on virtual workspaces. |
| 64 | + [#13664](https://github.com/rust-lang/cargo/pull/13664) |
| 65 | +- cargo-init: don't assign `target.name` in Cargo.toml if the value can be inferred. |
| 66 | + [#13606](https://github.com/rust-lang/cargo/pull/13606) |
| 67 | +- carog-package: normalize paths in `Cargo.toml`, including replacing `\` with `/`. |
| 68 | + [#13729](https://github.com/rust-lang/cargo/pull/13729) |
| 69 | +- cargo-test: recategorize cargo test's `--doc` flag under “Target Selection”. |
| 70 | + [#13756](https://github.com/rust-lang/cargo/pull/13756) |
| 71 | +- Emit 1.77 build script syntax error only when msrv is incompatible. |
| 72 | + [#13808](https://github.com/rust-lang/cargo/pull/13808) |
| 73 | + |
| 74 | +### Fixed |
| 75 | + |
| 76 | +- Dont panic when resolving an empty alias. |
| 77 | + [#13613](https://github.com/rust-lang/cargo/pull/13613) |
| 78 | +- When using `--target`, the default debuginfo strip rule also applies. |
| 79 | + Note that on Windows MSVC Cargo no longer strips by default. |
| 80 | + [#13618](https://github.com/rust-lang/cargo/pull/13618) |
| 81 | +- Don't crash on Cargo.toml parse errors that point to multi-byte character |
| 82 | + [#13780](https://github.com/rust-lang/cargo/pull/13780) |
| 83 | +- cargo-add: Maintain sorting of dependency features. |
| 84 | + [#13682](https://github.com/rust-lang/cargo/pull/13682) |
| 85 | +- cargo-add: Preserve comments when updating simple deps |
| 86 | + [#13655](https://github.com/rust-lang/cargo/pull/13655) |
| 87 | +- cargo-fix: dont apply same suggestion twice. |
| 88 | + [#13728](https://github.com/rust-lang/cargo/pull/13728) |
| 89 | +- cargo-package: error when the package specified via `--package` cannot be found |
| 90 | + [#13735](https://github.com/rust-lang/cargo/pull/13735) |
| 91 | +- credential-provider: trim newlines in tokens from stdin. |
| 92 | + [#13770](https://github.com/rust-lang/cargo/pull/13770) |
| 93 | +- Don't emit deprecation warning if one of `.cargo/{config,config.toml}` is |
| 94 | + a symlink to the other. |
| 95 | + [#13793](https://github.com/rust-lang/cargo/pull/13793) |
| 96 | +- Follow HTTP redirections when checking if a repo on GitHub is up-to-date. |
| 97 | + [#13718](https://github.com/rust-lang/cargo/pull/13718) |
| 98 | +- Bash completion fallback in `nounset` mode. |
| 99 | + [#13686](https://github.com/rust-lang/cargo/pull/13686) |
| 100 | +- Rerun build script when rustflags changed and `--target` was passed. |
| 101 | + [#13560](https://github.com/rust-lang/cargo/pull/13560) |
| 102 | +- Fix doc collision for lib/bin with a dash in the inferred name. |
| 103 | + [#13640](https://github.com/rust-lang/cargo/pull/13640) |
14 | 104 |
|
15 | 105 | ### Nightly only
|
16 | 106 |
|
| 107 | +- 🔥 cargo-update: allows `--precise` to specify a pre-release version of a package |
| 108 | + ([RFC 3493](https://github.com/rust-lang/rfcs/blob/master/text/3493-precise-pre-release-cargo-update.md)) |
| 109 | + ([docs](https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#precise-pre-release)) |
| 110 | + [#13626](https://github.com/rust-lang/cargo/pull/13626) |
| 111 | +- RFC 3491: Unused dependencies cleanup |
| 112 | + [#13778](https://github.com/rust-lang/cargo/pull/13778) |
| 113 | +- `-Zcargo-lints`: Add a basic linting system for Cargo. |
| 114 | + This is still under development and not available for general use. |
| 115 | + [#13621](https://github.com/rust-lang/cargo/pull/13621) |
| 116 | + [#13635](https://github.com/rust-lang/cargo/pull/13635) |
| 117 | + [#13797](https://github.com/rust-lang/cargo/pull/13797) |
| 118 | + [#13740](https://github.com/rust-lang/cargo/pull/13740) |
| 119 | + [#13801](https://github.com/rust-lang/cargo/pull/13801) |
| 120 | +- 🔥 `edition2024`: Add default Edition2024 to resolver v3 (MSRV-aware resolver). |
| 121 | + [#13785](https://github.com/rust-lang/cargo/pull/13785) |
| 122 | +- `edition2024`: Remove underscore field support in 2024. |
| 123 | + [#13783](https://github.com/rust-lang/cargo/pull/13783) |
| 124 | + [#13798](https://github.com/rust-lang/cargo/pull/13798) |
| 125 | + [#13800](https://github.com/rust-lang/cargo/pull/13800) |
| 126 | + [#13804](https://github.com/rust-lang/cargo/pull/13804) |
| 127 | +- `edition2024`: Error on `[project]` in Edition 2024 |
| 128 | + [#13747](https://github.com/rust-lang/cargo/pull/13747) |
| 129 | +- `-Zmsrv-policy`: Respect '--ignore-rust-version' |
| 130 | + [#13738](https://github.com/rust-lang/cargo/pull/13738) |
| 131 | +- `-Zmsrv-policy`: Add `--ignore-rust-version` to update/generate-lockfile |
| 132 | + [#13741](https://github.com/rust-lang/cargo/pull/13741) |
| 133 | + [#13742](https://github.com/rust-lang/cargo/pull/13742) |
| 134 | +- `-Zmsrv-policy`: Put MSRV-aware resolver behind a config |
| 135 | + [#13769](https://github.com/rust-lang/cargo/pull/13769) |
| 136 | +- `-Zmsrv-policy`: Error, rather than panic, on rust-version 'x' |
| 137 | + [#13771](https://github.com/rust-lang/cargo/pull/13771) |
| 138 | +- `-Zmsrv-policy`: Fallback to 'rustc -V' for MSRV resolving. |
| 139 | + [#13743](https://github.com/rust-lang/cargo/pull/13743) |
| 140 | +- `-Zmsrv-policy`: Add v3 resolver for MSRV-aware resolving |
| 141 | + [#13776](https://github.com/rust-lang/cargo/pull/13776) |
| 142 | +- `-Zmsrv-policy`: Don't respect MSRV for non-local installs |
| 143 | + [#13790](https://github.com/rust-lang/cargo/pull/13790) |
| 144 | +- `-Zmsrv-policy`: Track when MSRV is explicitly set, either way |
| 145 | + [#13732](https://github.com/rust-lang/cargo/pull/13732) |
| 146 | +- test: don't compress test registry crates. |
| 147 | + [#13744](https://github.com/rust-lang/cargo/pull/13744) |
| 148 | + |
| 149 | +### Documentation |
| 150 | + |
| 151 | +- Clarify `--locked` ensuring that Cargo uses dependency versions in lockfile |
| 152 | + [#13665](https://github.com/rust-lang/cargo/pull/13665) |
| 153 | +- Clarify the precedence of `RUSTC_WORKSPACE_WRAPPER` and `RUSTC_WRAPPER`. |
| 154 | + [#13648](https://github.com/rust-lang/cargo/pull/13648) |
| 155 | +- Clarify only in the root Cargo.toml the `[workspace]` section is allowed. |
| 156 | + [#13753](https://github.com/rust-lang/cargo/pull/13753) |
| 157 | +- Clarify the differences between virtual and real manifests. |
| 158 | + [#13794](https://github.com/rust-lang/cargo/pull/13794) |
| 159 | + |
| 160 | +### Internal |
| 161 | + |
| 162 | +- 🎉 New member crates [`cargo-test-support`](https://crates.io/crates/cargo-test-support) |
| 163 | + and [`cargo-test-macro`](https://crates.io/crates/cargo-test-macro)! |
| 164 | + They are designed for testing Cargo itself, |
| 165 | + so no guarantee on any stability across versions. |
| 166 | + The crates.io publish of this crate is the same as other members crates. |
| 167 | + They follow Rust's [6-week release process](https://doc.crates.io/contrib/process/release.html#cratesio-publishing). |
| 168 | + [#13418](https://github.com/rust-lang/cargo/pull/13418) |
| 169 | +- Fix publish script due to crates.io CDN change |
| 170 | + [#13614](https://github.com/rust-lang/cargo/pull/13614) |
| 171 | +- Push diagnostic complexity on annotate-snippets |
| 172 | + [#13619](https://github.com/rust-lang/cargo/pull/13619) |
| 173 | +- cargo-package: Simplify getting of published Manifest |
| 174 | + [#13666](https://github.com/rust-lang/cargo/pull/13666) |
| 175 | +- ci: update macos images to macos-13 |
| 176 | + [#13685](https://github.com/rust-lang/cargo/pull/13685) |
| 177 | +- manifest: Split out an explicit step to resolve `Cargo.toml` |
| 178 | + [#13693](https://github.com/rust-lang/cargo/pull/13693) |
| 179 | +- manifest: Decouple target discovery from Target creation |
| 180 | + [#13701](https://github.com/rust-lang/cargo/pull/13701) |
| 181 | +- manifest: Expose surce/spans for VirtualManifests |
| 182 | + [#13603](https://github.com/rust-lang/cargo/pull/13603) |
| 183 | +- Update dependencies |
| 184 | + [#13609](https://github.com/rust-lang/cargo/pull/13609) |
| 185 | + [#13674](https://github.com/rust-lang/cargo/pull/13674) |
| 186 | + [#13675](https://github.com/rust-lang/cargo/pull/13675) |
| 187 | + [#13679](https://github.com/rust-lang/cargo/pull/13679) |
| 188 | + [#13680](https://github.com/rust-lang/cargo/pull/13680) |
| 189 | + [#13692](https://github.com/rust-lang/cargo/pull/13692) |
| 190 | + [#13731](https://github.com/rust-lang/cargo/pull/13731) |
| 191 | + [#13760](https://github.com/rust-lang/cargo/pull/13760) |
| 192 | + |
17 | 193 | ## Cargo 1.78 (2024-05-02)
|
18 | 194 | [7bb7b539...rust-1.78.0](https://github.com/rust-lang/cargo/compare/7bb7b539...rust-1.78.0)
|
19 | 195 |
|
|
0 commit comments