|
1 | 1 | # Changelog
|
2 | 2 |
|
| 3 | +## Cargo 1.46 (2020-08-27) |
| 4 | +[9fcb8c1d...HEAD](https://github.com/rust-lang/cargo/compare/9fcb8c1d...HEAD) |
| 5 | + |
| 6 | +### Added |
| 7 | + |
| 8 | +### Changed |
| 9 | +- A warning is now displayed if a git dependency includes a `#` fragment in |
| 10 | + the URL. This was potentially confusing because Cargo itself displays git |
| 11 | + URLs with this syntax, but it does not have any meaning outside of the |
| 12 | + `Cargo.lock` file, and would not work properly. |
| 13 | + [#8297](https://github.com/rust-lang/cargo/pull/8297) |
| 14 | + |
| 15 | +### Fixed |
| 16 | +- Fixed a rare situation where an update to `Cargo.lock` failed once, but then |
| 17 | + subsequent runs allowed it proceed. |
| 18 | + [#8274](https://github.com/rust-lang/cargo/pull/8274) |
| 19 | +- Removed assertion that Windows dylibs must have a `.dll` extension. Some |
| 20 | + custom JSON spec targets may change the extension. |
| 21 | + [#8310](https://github.com/rust-lang/cargo/pull/8310) |
| 22 | +- Updated libgit2, which brings in a fix for zlib errors for some remote |
| 23 | + git servers like googlesource.com. |
| 24 | + [#8320](https://github.com/rust-lang/cargo/pull/8320) |
| 25 | + |
| 26 | +### Nightly only |
| 27 | +- Added `-Zrustdoc-map` feature which provides external mappings for rustdoc |
| 28 | + (such as https://docs.rs/ links). |
| 29 | + [docs](https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#rustdoc-map) |
| 30 | + [#8287](https://github.com/rust-lang/cargo/pull/8287) |
| 31 | +- Fixed feature calculation when a proc-macro is declared in `Cargo.toml` with |
| 32 | + an underscore (like `proc_macro = true`). |
| 33 | + [#8319](https://github.com/rust-lang/cargo/pull/8319) |
| 34 | + |
| 35 | + |
3 | 36 | ## Cargo 1.45 (2020-07-16)
|
4 |
| -[ebda5065e...HEAD](https://github.com/rust-lang/cargo/compare/ebda5065e...HEAD) |
| 37 | +[ebda5065e...rust-1.45.0](https://github.com/rust-lang/cargo/compare/ebda5065...rust-1.45.0) |
5 | 38 |
|
6 | 39 | ### Added
|
7 | 40 |
|
|
29 | 62 | directory. Some obscure scenarios can cause an old dylib to be referenced
|
30 | 63 | between builds, and this ensures that all the latest copies are used.
|
31 | 64 | [#8139](https://github.com/rust-lang/cargo/pull/8139)
|
| 65 | +- `package.exclude` can now match directory names. If a directory is |
| 66 | + specified, the entire directory will be excluded, and Cargo will not attempt |
| 67 | + to inspect it further. Previously Cargo would try to check every file in the |
| 68 | + directory which could cause problems if the directory contained unreadable |
| 69 | + files. |
| 70 | + [#8095](https://github.com/rust-lang/cargo/pull/8095) |
| 71 | +- When packaging with `cargo publish` or `cargo package`, Cargo can use git to |
| 72 | + guide its decision on which files to include. Previously this git-based |
| 73 | + logic required a `Cargo.toml` file to exist at the root of the repository. |
| 74 | + This is no longer required, so Cargo will now use git-based guidance even if |
| 75 | + there is not a `Cargo.toml` in the root of the repository. |
| 76 | + [#8095](https://github.com/rust-lang/cargo/pull/8095) |
| 77 | +- While unpacking a crate on Windows, if it fails to write a file because the |
| 78 | + file is a reserved Windows filename (like "aux.rs"), Cargo will display an |
| 79 | + extra message to explain why it failed. |
| 80 | + [#8136](https://github.com/rust-lang/cargo/pull/8136) |
| 81 | +- Failures to set mtime on files are now ignored. Some filesystems did not |
| 82 | + support this. |
| 83 | + [#8185](https://github.com/rust-lang/cargo/pull/8185) |
| 84 | +- Certain classes of git errors will now recommend enabling |
| 85 | + `net.git-fetch-with-cli`. |
| 86 | + [#8166](https://github.com/rust-lang/cargo/pull/8166) |
| 87 | +- When doing an LTO build, Cargo will now instruct rustc not to perform |
| 88 | + codegen when possible. This may result in a faster build and use less disk |
| 89 | + space. Additionally, for non-LTO builds, Cargo will instruct rustc to not |
| 90 | + embed LLVM bitcode in libraries, which should decrease their size. |
| 91 | + [#8192](https://github.com/rust-lang/cargo/pull/8192) |
| 92 | + [#8226](https://github.com/rust-lang/cargo/pull/8226) |
| 93 | + [#8254](https://github.com/rust-lang/cargo/pull/8254) |
| 94 | +- The implementation for `cargo clean -p` has been rewritten so that it can |
| 95 | + more accurately remove the files for a specific package. |
| 96 | + [#8210](https://github.com/rust-lang/cargo/pull/8210) |
| 97 | +- The way Cargo computes the outputs from a build has been rewritten to be |
| 98 | + more complete and accurate. Newly tracked files will be displayed in JSON |
| 99 | + messages, and may be uplifted to the output directory in some cases. Some of |
| 100 | + the changes from this are: |
| 101 | + |
| 102 | + - `.exp` export files on Windows MSVC dynamic libraries are now tracked. |
| 103 | + - Proc-macros on Windows track import/export files. |
| 104 | + - All targets (like tests, etc.) that generate separate debug files |
| 105 | + (pdb/dSYM) are tracked. |
| 106 | + - Added .map files for wasm32-unknown-emscripten. |
| 107 | + - macOS dSYM directories are tracked for all dynamic libraries |
| 108 | + (dylib/cdylib/proc-macro) and for build scripts. |
| 109 | + |
| 110 | + There are a variety of other changes as a consequence of this: |
| 111 | + |
| 112 | + - Binary examples on Windows MSVC with a hyphen will now show up twice in |
| 113 | + the examples directory (`foo_bar.exe` and `foo-bar.exe`). Previously Cargo |
| 114 | + just renamed the file instead of hard-linking it. |
| 115 | + - Example libraries now follow the same rules for hyphen/underscore |
| 116 | + translation as normal libs (they will now use underscores). |
| 117 | + |
| 118 | + [#8210](https://github.com/rust-lang/cargo/pull/8210) |
| 119 | +- Cargo attempts to scrub any secrets from the debug log for HTTP debugging. |
| 120 | + [#8222](https://github.com/rust-lang/cargo/pull/8222) |
| 121 | +- Context has been added to many of Cargo's filesystem operations, so that |
| 122 | + error messages now provide more information, such as the path that caused |
| 123 | + the problem. |
| 124 | + [#8232](https://github.com/rust-lang/cargo/pull/8232) |
| 125 | +- Several commands now ignore the error if stdout or stderr is closed while it |
| 126 | + is running. For example `cargo install --list | grep -q cargo-fuzz` would |
| 127 | + previously sometimes panic because `grep -q` may close stdout before the |
| 128 | + command finishes. Regular builds continue to fail if stdout or stderr is |
| 129 | + closed, matching the behavior of many other build systems. |
| 130 | + [#8236](https://github.com/rust-lang/cargo/pull/8236) |
| 131 | +- If `cargo install` is given an exact version, like `--version=1.2.3`, it |
| 132 | + will now avoid updating the index if that version is already installed, and |
| 133 | + exit quickly indicating it is already installed. |
| 134 | + [#8022](https://github.com/rust-lang/cargo/pull/8022) |
| 135 | +- Changes to the `[patch]` section will now attempt to automatically update |
| 136 | + `Cargo.lock` to the new version. It should now also provide better error |
| 137 | + messages for the rare cases where it is unable to automatically update. |
| 138 | + [#8248](https://github.com/rust-lang/cargo/pull/8248) |
32 | 139 |
|
33 | 140 | ### Fixed
|
34 | 141 | - Fixed copying Windows `.pdb` files to the output directory when the filename
|
35 | 142 | contained dashes.
|
36 | 143 | [#8123](https://github.com/rust-lang/cargo/pull/8123)
|
| 144 | +- Fixed error where Cargo would fail when scanning if a package is inside a |
| 145 | + git repository when any of its ancestor paths is a symlink. |
| 146 | + [#8186](https://github.com/rust-lang/cargo/pull/8186) |
| 147 | +- Fixed `cargo update` with an unused `[patch]` so that it does not get |
| 148 | + stuck and refuse to update. |
| 149 | + [#8243](https://github.com/rust-lang/cargo/pull/8243) |
| 150 | +- Fixed a situation where Cargo would hang if stderr is closed, and the |
| 151 | + compiler generated a large number of messages. |
| 152 | + [#8247](https://github.com/rust-lang/cargo/pull/8247) |
| 153 | +- Fixed backtraces on macOS not showing filenames or line numbers. As a |
| 154 | + consequence of this, binary executables on apple targets do not include a |
| 155 | + hash in the filename in Cargo's cache. This means Cargo can only track one |
| 156 | + copy, so if you switch features or rustc versions, Cargo will need to |
| 157 | + rebuild the executable. |
| 158 | + [#8329](https://github.com/rust-lang/cargo/pull/8329) |
| 159 | + [#8335](https://github.com/rust-lang/cargo/pull/8335) |
| 160 | +- Fixed fingerprinting when using lld on Windows with a dylib. Cargo was |
| 161 | + erroneously thinking the dylib was never fresh. |
| 162 | + [#8290](https://github.com/rust-lang/cargo/pull/8290) |
| 163 | + [#8335](https://github.com/rust-lang/cargo/pull/8335) |
37 | 164 |
|
38 | 165 | ### Nightly only
|
39 | 166 | - Fixed passing the full path for `--target` to `rustdoc` when using JSON spec
|
|
44 | 171 | - Added new `resolver` field to `Cargo.toml` to opt-in to the new feature
|
45 | 172 | resolver.
|
46 | 173 | [#8129](https://github.com/rust-lang/cargo/pull/8129)
|
| 174 | +- `-Zbuild-std` no longer treats std dependencies as "local". This means that |
| 175 | + it won't use incremental compilation for those dependencies, removes them |
| 176 | + from dep-info files, and caps lints at "allow". |
| 177 | + [#8177](https://github.com/rust-lang/cargo/pull/8177) |
| 178 | +- Added `-Zmultitarget` which allows multiple `--target` flags to build the |
| 179 | + same thing for multiple targets at once. |
| 180 | + [docs](https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#multitarget) |
| 181 | + [#8167](https://github.com/rust-lang/cargo/pull/8167) |
| 182 | +- Added `strip` option to the profile to remove symbols and debug information. |
| 183 | + [docs](https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#profile-strip-option) |
| 184 | + [#8246](https://github.com/rust-lang/cargo/pull/8246) |
| 185 | +- Fixed panic with `cargo tree --target=all -Zfeatures=all`. |
| 186 | + [#8269](https://github.com/rust-lang/cargo/pull/8269) |
47 | 187 |
|
48 | 188 | ## Cargo 1.44 (2020-06-04)
|
49 |
| -[bda50510...ebda5065e](https://github.com/rust-lang/cargo/compare/bda50510...ebda5065e) |
| 189 | +[bda50510...rust-1.44.0](https://github.com/rust-lang/cargo/compare/bda50510...rust-1.44.0) |
50 | 190 |
|
51 | 191 | ### Added
|
52 | 192 | - 🔥 Added the `cargo tree` command.
|
|
96 | 236 | [#8090](https://github.com/rust-lang/cargo/pull/8090)
|
97 | 237 | - Added a certain class of HTTP2 errors as "spurious" that will get retried.
|
98 | 238 | [#8102](https://github.com/rust-lang/cargo/pull/8102)
|
| 239 | +- Allow `cargo package --list` to succeed, even if there are other validation |
| 240 | + errors (such as `Cargo.lock` generation problem, or missing dependencies). |
| 241 | + [#8175](https://github.com/rust-lang/cargo/pull/8175) |
| 242 | + [#8215](https://github.com/rust-lang/cargo/pull/8215) |
99 | 243 |
|
100 | 244 | ### Fixed
|
101 | 245 | - Cargo no longer buffers excessive amounts of compiler output in memory.
|
|
115 | 259 | - Protect against some (unknown) situations where Cargo could panic when the
|
116 | 260 | system monotonic clock doesn't appear to be monotonic.
|
117 | 261 | [#8114](https://github.com/rust-lang/cargo/pull/8114)
|
| 262 | +- Fixed panic with `cargo clean -p` if the package has a build script. |
| 263 | + [#8216](https://github.com/rust-lang/cargo/pull/8216) |
118 | 264 |
|
119 | 265 | ### Nightly only
|
120 | 266 | - Fixed panic with new feature resolver and required-features.
|
|
0 commit comments