]>
Commit | Line | Data |
---|---|---|
2cbb701b EH |
1 | # Changelog |
2 | ||
57020a5d EH |
3 | ## Cargo 1.42 (2020-03-12) |
4 | [0bf7aafe...HEAD](https://github.com/rust-lang/cargo/compare/0bf7aafe...HEAD) | |
1df81ee0 EH |
5 | |
6 | ### Added | |
57020a5d EH |
7 | - Added documentation on git authentication. |
8 | [#7658](https://github.com/rust-lang/cargo/pull/7658) | |
9 | - Bitbucket Pipeline badges are now supported on crates.io. | |
10 | [#7663](https://github.com/rust-lang/cargo/pull/7663) | |
11 | ||
1df81ee0 | 12 | ### Changed |
57020a5d EH |
13 | - Emit a warning if `debug_assertions`, `test`, `proc_macro`, or `feature=` is |
14 | used in a `cfg()` expression. | |
15 | [#7660](https://github.com/rust-lang/cargo/pull/7660) | |
16 | ||
1df81ee0 | 17 | ### Fixed |
57020a5d EH |
18 | - Removed `--offline` empty index check, which was a false positive in some cases. |
19 | [#7655](https://github.com/rust-lang/cargo/pull/7655) | |
20 | ||
21 | ### Nightly only | |
22 | ||
23 | ||
24 | ## Cargo 1.41 (2020-01-30) | |
25 | [5da4b4d4...rust-1.41.0](https://github.com/rust-lang/cargo/compare/5da4b4d4...rust-1.41.0) | |
26 | ||
27 | ### Added | |
28 | - 🔥 Cargo now uses a new `Cargo.lock` file format. This new format should | |
29 | support easier merges in source control systems. Projects using the old | |
30 | format will continue to use the old format, only new `Cargo.lock` files will | |
31 | use the new format. | |
32 | [#7579](https://github.com/rust-lang/cargo/pull/7579) | |
33 | - 🔥 `cargo install` will now upgrade already installed packages instead of | |
34 | failing. | |
35 | [#7560](https://github.com/rust-lang/cargo/pull/7560) | |
36 | - 🔥 Profile overrides have been added. This allows overriding profiles for | |
37 | individual dependencies or build scripts. See [the | |
38 | documentation](https://doc.rust-lang.org/nightly/cargo/reference/profiles.html#overrides) | |
39 | for more. | |
40 | [#7591](https://github.com/rust-lang/cargo/pull/7591) | |
41 | - Added new documentation for build scripts. | |
42 | [#7565](https://github.com/rust-lang/cargo/pull/7565) | |
43 | - Added documentation for Cargo's JSON output. | |
44 | [#7595](https://github.com/rust-lang/cargo/pull/7595) | |
45 | - Significant expansion of config and environment variable documentation. | |
46 | [#7650](https://github.com/rust-lang/cargo/pull/7650) | |
47 | - Add back support for `BROWSER` environment variable for `cargo doc --open`. | |
48 | [#7576](https://github.com/rust-lang/cargo/pull/7576) | |
49 | - Added `kind` and `platform` for dependencies in `cargo metadata`. | |
50 | [#7132](https://github.com/rust-lang/cargo/pull/7132) | |
51 | - The `OUT_DIR` value is now included in the `build-script-executed` JSON message. | |
52 | [#7622](https://github.com/rust-lang/cargo/pull/7622) | |
53 | ||
54 | ### Changed | |
55 | - `cargo doc` will now document private items in binaries by default. | |
56 | [#7593](https://github.com/rust-lang/cargo/pull/7593) | |
57 | - Subcommand typo suggestions now include aliases. | |
58 | [#7486](https://github.com/rust-lang/cargo/pull/7486) | |
59 | - Tweak how the "already existing..." comment is added to `.gitignore`. | |
60 | [#7570](https://github.com/rust-lang/cargo/pull/7570) | |
61 | - Ignore `cargo login` text from copy/paste in token. | |
62 | [#7588](https://github.com/rust-lang/cargo/pull/7588) | |
63 | - Windows: Ignore errors for locking files when not supported by the filesystem. | |
64 | [#7602](https://github.com/rust-lang/cargo/pull/7602) | |
65 | - Remove `**/*.rs.bk` from `.gitignore`. | |
66 | [#7647](https://github.com/rust-lang/cargo/pull/7647) | |
67 | ||
68 | ### Fixed | |
69 | - Fix unused warnings for some keys in the `build` config section. | |
70 | [#7575](https://github.com/rust-lang/cargo/pull/7575) | |
71 | - Linux: Don't panic when parsing `/proc/stat`. | |
72 | [#7580](https://github.com/rust-lang/cargo/pull/7580) | |
73 | - Don't show canonical path in `cargo vendor`. | |
74 | [#7629](https://github.com/rust-lang/cargo/pull/7629) | |
75 | ||
76 | ### Nightly only | |
77 | ||
1df81ee0 | 78 | |
8ad031b5 | 79 | ## Cargo 1.40 (2019-12-19) |
57020a5d | 80 | [1c6ec66d...5da4b4d4](https://github.com/rust-lang/cargo/compare/1c6ec66d...5da4b4d4) |
8ad031b5 EH |
81 | |
82 | ### Added | |
1df81ee0 EH |
83 | - Added `http.ssl-version` config option to control the version of TLS, |
84 | along with min/max versions. | |
85 | [#7308](https://github.com/rust-lang/cargo/pull/7308) | |
1df81ee0 EH |
86 | - 🔥 Compiler warnings are now cached on disk. If a build generates warnings, |
87 | re-running the build will now re-display the warnings. | |
88 | [#7450](https://github.com/rust-lang/cargo/pull/7450) | |
1df81ee0 EH |
89 | - Added `--filter-platform` option to `cargo metadata` to narrow the nodes |
90 | shown in the resolver graph to only packages included for the given target | |
91 | triple. | |
92 | [#7376](https://github.com/rust-lang/cargo/pull/7376) | |
8ad031b5 EH |
93 | |
94 | ### Changed | |
95 | - Cargo's "platform" `cfg` parsing has been extracted into a separate crate | |
96 | named `cargo-platform`. | |
97 | [#7375](https://github.com/rust-lang/cargo/pull/7375) | |
1df81ee0 EH |
98 | - Dependencies extracted into Cargo's cache no longer preserve mtimes to |
99 | reduce syscall overhead. | |
100 | [#7465](https://github.com/rust-lang/cargo/pull/7465) | |
101 | - Windows: EXE files no longer include a metadata hash in the filename. | |
102 | This helps with debuggers correlating the filename with the PDB file. | |
103 | [#7400](https://github.com/rust-lang/cargo/pull/7400) | |
104 | - Wasm32: `.wasm` files are no longer treated as an "executable", allowing | |
105 | `cargo test` and `cargo run` to work properly with the generated `.js` file. | |
106 | [#7476](https://github.com/rust-lang/cargo/pull/7476) | |
107 | - crates.io now supports SPDX 3.6 licenses. | |
108 | [#7481](https://github.com/rust-lang/cargo/pull/7481) | |
109 | - Improved cyclic dependency error message. | |
110 | [#7470](https://github.com/rust-lang/cargo/pull/7470) | |
111 | - Bare `cargo clean` no longer locks the package cache. | |
112 | [#7502](https://github.com/rust-lang/cargo/pull/7502) | |
113 | - `cargo publish` now allows dev-dependencies without a version key to be | |
114 | published. A git or path-only dev-dependency will be removed from the | |
115 | package manifest before uploading. | |
116 | [#7333](https://github.com/rust-lang/cargo/pull/7333) | |
1df81ee0 EH |
117 | - `--features` and `--no-default-features` in the root of a virtual workspace |
118 | will now generate an error instead of being ignored. | |
119 | [#7507](https://github.com/rust-lang/cargo/pull/7507) | |
120 | - Generated files (like `Cargo.toml` and `Cargo.lock`) in a package archive | |
121 | now have their timestamp set to the current time instead of the epoch. | |
122 | [#7523](https://github.com/rust-lang/cargo/pull/7523) | |
123 | - The `-Z` flag parser is now more strict, rejecting more invalid syntax. | |
124 | [#7531](https://github.com/rust-lang/cargo/pull/7531) | |
8ad031b5 EH |
125 | |
126 | ### Fixed | |
127 | - Fixed an issue where if a package had an `include` field, and `Cargo.lock` | |
128 | in `.gitignore`, and a binary or example target, and the `Cargo.lock` exists | |
129 | in the current project, it would fail to publish complaining the | |
130 | `Cargo.lock` was dirty. | |
131 | [#7448](https://github.com/rust-lang/cargo/pull/7448) | |
132 | - Fixed a panic in a particular combination of `[patch]` entries. | |
133 | [#7452](https://github.com/rust-lang/cargo/pull/7452) | |
1df81ee0 EH |
134 | - Windows: Better error message when `cargo test` or `rustc` crashes in an |
135 | abnormal way, such as a signal or seg fault. | |
136 | [#7535](https://github.com/rust-lang/cargo/pull/7535) | |
e77351a5 EH |
137 | |
138 | ### Nightly only | |
139 | - The `mtime-on-use` feature may now be enabled via the | |
140 | `unstable.mtime_on_use` config option. | |
141 | [#7411](https://github.com/rust-lang/cargo/pull/7411) | |
142 | - Added support for named profiles. | |
143 | [#6989](https://github.com/rust-lang/cargo/pull/6989) | |
144 | - Added `-Zpanic-abort-tests` to allow building and running tests with the | |
145 | "abort" panic strategy. | |
146 | [#7460](https://github.com/rust-lang/cargo/pull/7460) | |
147 | - Changed `build-std` to use `--sysroot`. | |
148 | [#7421](https://github.com/rust-lang/cargo/pull/7421) | |
149 | - Various fixes and enhancements to `-Ztimings`. | |
150 | [#7395](https://github.com/rust-lang/cargo/pull/7395) | |
151 | [#7398](https://github.com/rust-lang/cargo/pull/7398) | |
152 | [#7397](https://github.com/rust-lang/cargo/pull/7397) | |
153 | [#7403](https://github.com/rust-lang/cargo/pull/7403) | |
154 | [#7428](https://github.com/rust-lang/cargo/pull/7428) | |
155 | [#7429](https://github.com/rust-lang/cargo/pull/7429) | |
156 | - Profile overrides have renamed the syntax to be | |
157 | `[profile.dev.package.NAME]`. | |
158 | [#7504](https://github.com/rust-lang/cargo/pull/7504) | |
159 | - Fixed warnings for unused profile overrides in a workspace. | |
1df81ee0 | 160 | [#7536](https://github.com/rust-lang/cargo/pull/7536) |
8ad031b5 | 161 | |
5c7875d2 | 162 | ## Cargo 1.39 (2019-11-07) |
1df81ee0 | 163 | [e853aa97...1c6ec66d](https://github.com/rust-lang/cargo/compare/e853aa97...1c6ec66d) |
5c7875d2 EH |
164 | |
165 | ### Added | |
8ad031b5 EH |
166 | - Config files may now use the `.toml` filename extension. |
167 | [#7295](https://github.com/rust-lang/cargo/pull/7295) | |
8ad031b5 EH |
168 | - The `--workspace` flag has been added as an alias for `--all` to help avoid |
169 | confusion about the meaning of "all". | |
170 | [#7241](https://github.com/rust-lang/cargo/pull/7241) | |
171 | - The `publish` field has been added to `cargo metadata`. | |
172 | [#7354](https://github.com/rust-lang/cargo/pull/7354) | |
5c7875d2 EH |
173 | |
174 | ### Changed | |
175 | - Display more information if parsing the output from `rustc` fails. | |
176 | [#7236](https://github.com/rust-lang/cargo/pull/7236) | |
177 | - TOML errors now show the column number. | |
178 | [#7248](https://github.com/rust-lang/cargo/pull/7248) | |
179 | - `cargo vendor` no longer deletes files in the `vendor` directory that starts | |
180 | with a `.`. | |
181 | [#7242](https://github.com/rust-lang/cargo/pull/7242) | |
182 | - `cargo fetch` will now show manifest warnings. | |
183 | [#7243](https://github.com/rust-lang/cargo/pull/7243) | |
184 | - `cargo publish` will now check git submodules if they contain any | |
185 | uncommitted changes. | |
186 | [#7245](https://github.com/rust-lang/cargo/pull/7245) | |
187 | - In a build script, `cargo:rustc-flags` now allows `-l` and `-L` flags | |
188 | without spaces. | |
189 | [#7257](https://github.com/rust-lang/cargo/pull/7257) | |
190 | - When `cargo install` replaces an older version of a package it will now | |
191 | delete any installed binaries that are no longer present in the newly | |
192 | installed version. | |
193 | [#7246](https://github.com/rust-lang/cargo/pull/7246) | |
194 | - A git dependency may now also specify a `version` key when published. The | |
195 | `git` value will be stripped from the uploaded crate, matching the behavior | |
196 | of `path` dependencies. | |
197 | [#7237](https://github.com/rust-lang/cargo/pull/7237) | |
8ad031b5 EH |
198 | - The behavior of workspace default-members has changed. The default-members |
199 | now only applies when running Cargo in the root of the workspace. Previously | |
200 | it would always apply regardless of which directory Cargo is running in. | |
201 | [#7270](https://github.com/rust-lang/cargo/pull/7270) | |
202 | - libgit2 updated pulling in all upstream changes. | |
203 | [#7275](https://github.com/rust-lang/cargo/pull/7275) | |
204 | - Bump `home` dependency for locating home directories. | |
205 | [#7277](https://github.com/rust-lang/cargo/pull/7277) | |
206 | - zsh completions have been updated. | |
207 | [#7296](https://github.com/rust-lang/cargo/pull/7296) | |
208 | - SSL connect errors are now retried. | |
209 | [#7318](https://github.com/rust-lang/cargo/pull/7318) | |
210 | - The jobserver has been changed to acquire N tokens (instead of N-1), and | |
211 | then immediately acquires the extra token. This was changed to accommodate | |
212 | the `cc` crate on Windows to allow it to release its implicit token. | |
213 | [#7344](https://github.com/rust-lang/cargo/pull/7344) | |
214 | - The scheduling algorithm for choosing which crate to build next has been | |
215 | changed. It now chooses the crate with the greatest number of transitive | |
216 | crates waiting on it. Previously it used a maximum topological depth. | |
217 | [#7390](https://github.com/rust-lang/cargo/pull/7390) | |
1df81ee0 EH |
218 | - RUSTFLAGS are no longer incorporated in the metadata and filename hash, |
219 | reversing the change from 1.33 that added it. This means that any change to | |
220 | RUSTFLAGS will cause a recompile, and will not affect symbol munging. | |
221 | [#7459](https://github.com/rust-lang/cargo/pull/7459) | |
5c7875d2 EH |
222 | |
223 | ### Fixed | |
224 | - Git dependencies with submodules with shorthand SSH URLs (like | |
225 | `git@github.com/user/repo.git`) should now work. | |
226 | [#7238](https://github.com/rust-lang/cargo/pull/7238) | |
8ad031b5 EH |
227 | - Handle broken symlinks when creating `.dSYM` symlinks on macOS. |
228 | [#7268](https://github.com/rust-lang/cargo/pull/7268) | |
229 | - Fixed issues with multiple versions of the same crate in a `[patch]` table. | |
230 | [#7303](https://github.com/rust-lang/cargo/pull/7303) | |
231 | - Fixed issue with custom target `.json` files where a substring of the name | |
232 | matches an unsupported crate type (like "bin"). | |
233 | [#7363](https://github.com/rust-lang/cargo/issues/7363) | |
234 | - Fixed issues with generating documentation for proc-macro crate types. | |
235 | [#7159](https://github.com/rust-lang/cargo/pull/7159) | |
236 | - Fixed hang if Cargo panics within a build thread. | |
237 | [#7366](https://github.com/rust-lang/cargo/pull/7366) | |
238 | - Fixed rebuild detection if a `build.rs` script issues different `rerun-if` | |
239 | directives between builds. Cargo was erroneously causing a rebuild after the | |
240 | change. | |
241 | [#7373](https://github.com/rust-lang/cargo/pull/7373) | |
242 | - Properly handle canonical URLs for `[patch]` table entries, preventing | |
243 | the patch from working after the first time it is used. | |
244 | [#7368](https://github.com/rust-lang/cargo/pull/7368) | |
245 | - Fixed an issue where integration tests were waiting for the package binary | |
246 | to finish building before starting their own build. They now may build | |
247 | concurrently. | |
248 | [#7394](https://github.com/rust-lang/cargo/pull/7394) | |
249 | - Fixed accidental change in the previous release on how `--features a b` flag | |
250 | is interpreted, restoring the original behavior where this is interpreted as | |
251 | `--features a` along with the argument `b` passed to the command. To pass | |
252 | multiple features, use quotes around the features to pass multiple features | |
253 | like `--features "a b"`, or use commas, or use multiple `--features` flags. | |
254 | [#7419](https://github.com/rust-lang/cargo/pull/7419) | |
5c7875d2 | 255 | |
e77351a5 EH |
256 | ### Nightly only |
257 | - Basic support for building the standard library directly from Cargo has been | |
258 | added. | |
259 | ([docs](https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#build-std)) | |
260 | [#7216](https://github.com/rust-lang/cargo/pull/7216) | |
261 | - Added `-Ztimings` feature to generate an HTML report on the time spent on | |
262 | individual compilation steps. This also may output completion steps on the | |
263 | console and JSON data. | |
264 | ([docs](https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#timings)) | |
265 | [#7311](https://github.com/rust-lang/cargo/pull/7311) | |
266 | - Added ability to cross-compile doctests. | |
267 | ([docs](https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#doctest-xcompile)) | |
268 | [#6892](https://github.com/rust-lang/cargo/pull/6892) | |
269 | ||
1707d37f | 270 | ## Cargo 1.38 (2019-09-26) |
8ad031b5 | 271 | [4c1fa54d...23ef9a4e](https://github.com/rust-lang/cargo/compare/4c1fa54d...23ef9a4e) |
9e9c5868 EH |
272 | |
273 | ### Added | |
5c7875d2 | 274 | - 🔥 Cargo build pipelining has been enabled by default to leverage more idle CPU |
45699e9f AC |
275 | parallelism during builds. |
276 | [#7143](https://github.com/rust-lang/cargo/pull/7143) | |
277 | - The `--message-format` option to Cargo can now be specified multiple times and | |
278 | accepts a comma-separated list of values. In addition to the previous values | |
279 | it also now accepts `json-diagnostic-short` and | |
280 | `json-diagnostic-rendered-ansi` which configures the output coming from rustc | |
281 | in `json` message mode. | |
282 | [#7214](https://github.com/rust-lang/cargo/pull/7214) | |
5c7875d2 EH |
283 | - Cirrus CI badges are now supported on crates.io. |
284 | [#7119](https://github.com/rust-lang/cargo/pull/7119) | |
5c7875d2 EH |
285 | - A new format for `Cargo.lock` has been introduced. This new format is |
286 | intended to avoid source-control merge conflicts more often, and to | |
287 | generally make it safer to merge changes. This new format is *not* enabled | |
288 | at this time, though Cargo will use it if it sees it. At some point in the | |
289 | future, it is intended that this will become the default. | |
290 | [#7070](https://github.com/rust-lang/cargo/pull/7070) | |
291 | - Progress bar support added for FreeBSD. | |
292 | [#7222](https://github.com/rust-lang/cargo/pull/7222) | |
45699e9f | 293 | |
9e9c5868 | 294 | ### Changed |
5c7875d2 EH |
295 | - The `-q` flag will no longer suppress the root error message for an error |
296 | from Cargo itself. | |
297 | [#7116](https://github.com/rust-lang/cargo/pull/7116) | |
298 | - The Cargo Book is now published with mdbook 0.3 providing a number of | |
299 | formatting fixes and improvements. | |
300 | [#7140](https://github.com/rust-lang/cargo/pull/7140) | |
301 | - The `--features` command-line flag can now be specified multiple times. | |
302 | The list of features from all the flags are joined together. | |
303 | [#7084](https://github.com/rust-lang/cargo/pull/7084) | |
5c7875d2 EH |
304 | - Package include/exclude glob-vs-gitignore warnings have been removed. |
305 | Packages may now use gitignore-style matching without producing any | |
306 | warnings. | |
307 | [#7170](https://github.com/rust-lang/cargo/pull/7170) | |
308 | - Cargo now shows the command and output when parsing `rustc` output fails | |
309 | when querying `rustc` for information like `cfg` values. | |
310 | [#7185](https://github.com/rust-lang/cargo/pull/7185) | |
311 | - `cargo package`/`cargo publish` now allows a symbolic link to a git | |
312 | submodule to include that submodule. | |
313 | [#6817](https://github.com/rust-lang/cargo/pull/6817) | |
314 | - Improved the error message when a version requirement does not | |
315 | match any versions, but there are pre-release versions available. | |
316 | [#7191](https://github.com/rust-lang/cargo/pull/7191) | |
9e9c5868 EH |
317 | |
318 | ### Fixed | |
9e9c5868 EH |
319 | - Fixed using the wrong directory when updating git repositories when using |
320 | the `git-fetch-with-cli` config option, and the `GIT_DIR` environment | |
321 | variable is set. This may happen when running cargo from git callbacks. | |
322 | [#7082](https://github.com/rust-lang/cargo/pull/7082) | |
5c7875d2 EH |
323 | - Fixed dep-info files being overwritten for targets that have separate debug |
324 | outputs. For example, binaries on `-apple-` targets with `.dSYM` directories | |
325 | would overwrite the `.d` file. | |
326 | [#7057](https://github.com/rust-lang/cargo/pull/7057) | |
327 | - Fix `[patch]` table not preserving "one major version per source" rule. | |
328 | [#7118](https://github.com/rust-lang/cargo/pull/7118) | |
329 | - Ignore `--remap-path-prefix` flags for the metadata hash in the `cargo | |
330 | rustc` command. This was causing the remap settings to inadvertently affect | |
331 | symbol names. | |
332 | [#7134](https://github.com/rust-lang/cargo/pull/7134) | |
333 | - Fixed cycle detection in `[patch]` dependencies. | |
334 | [#7174](https://github.com/rust-lang/cargo/pull/7174) | |
335 | - Fixed `cargo new` leaving behind a symlink on Windows when `core.symlinks` | |
336 | git config is true. Also adds a number of fixes and updates from upstream | |
337 | libgit2. | |
338 | [#7176](https://github.com/rust-lang/cargo/pull/7176) | |
339 | - macOS: Fixed setting the flag to mark the `target` directory to be excluded | |
340 | from backups. | |
341 | [#7192](https://github.com/rust-lang/cargo/pull/7192) | |
342 | - Fixed `cargo fix` panicking under some situations involving multi-byte | |
343 | characters. | |
344 | [#7221](https://github.com/rust-lang/cargo/pull/7221) | |
e77351a5 EH |
345 | |
346 | ### Nightly only | |
347 | - Added `cargo fix --clippy` which will apply machine-applicable fixes from | |
348 | Clippy. | |
349 | [#7069](https://github.com/rust-lang/cargo/pull/7069) | |
350 | - Added `-Z binary-dep-depinfo` flag to add change tracking for binary | |
351 | dependencies like the standard library. | |
352 | [#7137](https://github.com/rust-lang/cargo/pull/7137) | |
353 | [#7219](https://github.com/rust-lang/cargo/pull/7219) | |
354 | - `cargo clippy-preview` will always run, even if no changes have been made. | |
355 | [#7157](https://github.com/rust-lang/cargo/pull/7157) | |
356 | - Fixed exponential blowup when using `CARGO_BUILD_PIPELINING`. | |
357 | [#7062](https://github.com/rust-lang/cargo/pull/7062) | |
358 | - Fixed passing args to clippy in `cargo clippy-preview`. | |
5c7875d2 | 359 | [#7162](https://github.com/rust-lang/cargo/pull/7162) |
9e9c5868 | 360 | |
114e20b3 | 361 | ## Cargo 1.37 (2019-08-15) |
8ad031b5 | 362 | [c4fcfb72...9edd0891](https://github.com/rust-lang/cargo/compare/c4fcfb72...9edd0891) |
114e20b3 EH |
363 | |
364 | ### Added | |
9e9c5868 EH |
365 | - Added `doctest` field to `cargo metadata` to determine if a target's |
366 | documentation is tested. | |
114e20b3 EH |
367 | [#6953](https://github.com/rust-lang/cargo/pull/6953) |
368 | [#6965](https://github.com/rust-lang/cargo/pull/6965) | |
9e9c5868 EH |
369 | - 🔥 The [`cargo |
370 | vendor`](https://doc.rust-lang.org/nightly/cargo/commands/cargo-vendor.html) | |
371 | command is now built-in to Cargo. This command may be used to create a local | |
372 | copy of the sources of all dependencies. | |
373 | [#6869](https://github.com/rust-lang/cargo/pull/6869) | |
374 | - 🔥 The "publish lockfile" feature is now stable. This feature will | |
375 | automatically include the `Cargo.lock` file when a package is published if | |
376 | it contains a binary executable target. By default, Cargo will ignore | |
377 | `Cargo.lock` when installing a package. To force Cargo to use the | |
378 | `Cargo.lock` file included in the published package, use `cargo install | |
379 | --locked`. This may be useful to ensure that `cargo install` consistently | |
380 | reproduces the same result. It may also be useful when a semver-incompatible | |
381 | change is accidentally published to a dependency, providing a way to fall | |
382 | back to a version that is known to work. | |
383 | [#7026](https://github.com/rust-lang/cargo/pull/7026) | |
384 | - 🔥 The `default-run` feature has been stabilized. This feature allows you to | |
385 | specify which binary executable to run by default with `cargo run` when a | |
386 | package includes multiple binaries. Set the `default-run` key in the | |
387 | `[package]` table in `Cargo.toml` to the name of the binary to use by | |
388 | default. | |
389 | [#7056](https://github.com/rust-lang/cargo/pull/7056) | |
114e20b3 EH |
390 | |
391 | ### Changed | |
392 | - `cargo package` now verifies that build scripts do not create empty | |
393 | directories. | |
394 | [#6973](https://github.com/rust-lang/cargo/pull/6973) | |
9e9c5868 EH |
395 | - A warning is now issued if `cargo doc` generates duplicate outputs, which |
396 | causes files to be randomly stomped on. This may happen for a variety of | |
397 | reasons (renamed dependencies, multiple versions of the same package, | |
398 | packages with renamed libraries, etc.). This is a known bug, which needs | |
399 | more work to handle correctly. | |
400 | [#6998](https://github.com/rust-lang/cargo/pull/6998) | |
401 | - Enabling a dependency's feature with `--features foo/bar` will no longer | |
402 | compile the current crate with the `foo` feature if `foo` is not an optional | |
403 | dependency. | |
404 | [#7010](https://github.com/rust-lang/cargo/pull/7010) | |
405 | - If `--remap-path-prefix` is passed via RUSTFLAGS, it will no longer affect | |
406 | the filename metadata hash. | |
407 | [#6966](https://github.com/rust-lang/cargo/pull/6966) | |
408 | - libgit2 has been updated to 0.28.2, which Cargo uses to access git | |
409 | repositories. This brings in hundreds of changes and fixes since it was last | |
410 | updated in November. | |
411 | [#7018](https://github.com/rust-lang/cargo/pull/7018) | |
412 | - Cargo now supports absolute paths in the dep-info files generated by rustc. | |
413 | This is laying the groundwork for [tracking | |
414 | binaries](https://github.com/rust-lang/rust/pull/61727), such as libstd, for | |
415 | rebuild detection. (Note: this contains a known bug.) | |
416 | [#7030](https://github.com/rust-lang/cargo/pull/7030) | |
114e20b3 EH |
417 | |
418 | ### Fixed | |
419 | - Fixed how zsh completions fetch the list of commands. | |
420 | [#6956](https://github.com/rust-lang/cargo/pull/6956) | |
421 | - "+ debuginfo" is no longer printed in the build summary when `debug` is set | |
422 | to 0. | |
423 | [#6971](https://github.com/rust-lang/cargo/pull/6971) | |
9e9c5868 EH |
424 | - Fixed `cargo doc` with an example configured with `doc = true` to document |
425 | correctly. | |
426 | [#7023](https://github.com/rust-lang/cargo/pull/7023) | |
5c7875d2 EH |
427 | - Don't fail if a read-only lock cannot be acquired in CARGO_HOME. This helps |
428 | when CARGO_HOME doesn't exist, but `--locked` is used which means CARGO_HOME | |
429 | is not needed. | |
430 | [#7149](https://github.com/rust-lang/cargo/pull/7149) | |
431 | - Reverted a change in 1.35 which released jobserver tokens when Cargo blocked | |
432 | on a lock file. It caused a deadlock in some situations. | |
433 | [#7204](https://github.com/rust-lang/cargo/pull/7204) | |
114e20b3 | 434 | |
e77351a5 EH |
435 | ### Nightly only |
436 | - Added [compiler message | |
437 | caching](https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#cache-messages). | |
438 | The `-Z cache-messages` flag makes cargo cache the compiler output so that | |
439 | future runs can redisplay previous warnings. | |
440 | [#6933](https://github.com/rust-lang/cargo/pull/6933) | |
441 | - `-Z mtime-on-use` no longer touches intermediate artifacts. | |
442 | [#7050](https://github.com/rust-lang/cargo/pull/7050) | |
443 | ||
2cbb701b | 444 | ## Cargo 1.36 (2019-07-04) |
114e20b3 | 445 | [6f3e9c36...c4fcfb72](https://github.com/rust-lang/cargo/compare/6f3e9c36...c4fcfb72) |
2cbb701b EH |
446 | |
447 | ### Added | |
114e20b3 EH |
448 | - Added more detailed documentation on target auto-discovery. |
449 | [#6898](https://github.com/rust-lang/cargo/pull/6898) | |
114e20b3 EH |
450 | - 🔥 Stabilize the `--offline` flag which allows using cargo without a network |
451 | connection. | |
452 | [#6934](https://github.com/rust-lang/cargo/pull/6934) | |
453 | [#6871](https://github.com/rust-lang/cargo/pull/6871) | |
2cbb701b EH |
454 | |
455 | ### Changed | |
456 | - `publish = ["crates-io"]` may be added to the manifest to restrict | |
457 | publishing to crates.io only. | |
458 | [#6838](https://github.com/rust-lang/cargo/pull/6838) | |
459 | - macOS: Only include the default paths if `DYLD_FALLBACK_LIBRARY_PATH` is not | |
460 | set. Also, remove `/lib` from the default set. | |
461 | [#6856](https://github.com/rust-lang/cargo/pull/6856) | |
462 | - `cargo publish` will now exit early if the login token is not available. | |
463 | [#6854](https://github.com/rust-lang/cargo/pull/6854) | |
464 | - HTTP/2 stream errors are now considered "spurious" and will cause a retry. | |
465 | [#6861](https://github.com/rust-lang/cargo/pull/6861) | |
2cbb701b EH |
466 | - Setting a feature on a dependency where that feature points to a *required* |
467 | dependency is now an error. Previously it was a warning. | |
468 | [#6860](https://github.com/rust-lang/cargo/pull/6860) | |
114e20b3 EH |
469 | - The `registry.index` config value now supports relative `file:` URLs. |
470 | [#6873](https://github.com/rust-lang/cargo/pull/6873) | |
471 | - macOS: The `.dSYM` directory is now symbolically linked next to example | |
472 | binaries without the metadata hash so that debuggers can find it. | |
473 | [#6891](https://github.com/rust-lang/cargo/pull/6891) | |
474 | - The default `Cargo.toml` template for now projects now includes a comment | |
475 | providing a link to the documentation. | |
476 | [#6881](https://github.com/rust-lang/cargo/pull/6881) | |
477 | - Some improvements to the wording of the crate download summary. | |
478 | [#6916](https://github.com/rust-lang/cargo/pull/6916) | |
479 | [#6920](https://github.com/rust-lang/cargo/pull/6920) | |
480 | - ✨ Changed `RUST_LOG` environment variable to `CARGO_LOG` so that user code | |
481 | that uses the `log` crate will not display cargo's debug output. | |
482 | [#6918](https://github.com/rust-lang/cargo/pull/6918) | |
483 | - `Cargo.toml` is now always included when packaging, even if it is not listed | |
484 | in `package.include`. | |
485 | [#6925](https://github.com/rust-lang/cargo/pull/6925) | |
486 | - Package include/exclude values now use gitignore patterns instead of glob | |
487 | patterns. [#6924](https://github.com/rust-lang/cargo/pull/6924) | |
488 | - Provide a better error message when crates.io times out. Also improve error | |
489 | messages with other HTTP response codes. | |
490 | [#6936](https://github.com/rust-lang/cargo/pull/6936) | |
491 | ||
492 | ### Performance | |
2cbb701b EH |
493 | - Resolver performance improvements for some cases. |
494 | [#6853](https://github.com/rust-lang/cargo/pull/6853) | |
114e20b3 EH |
495 | - Optimized how cargo reads the index JSON files by caching the results. |
496 | [#6880](https://github.com/rust-lang/cargo/pull/6880) | |
497 | [#6912](https://github.com/rust-lang/cargo/pull/6912) | |
498 | [#6940](https://github.com/rust-lang/cargo/pull/6940) | |
499 | - Various performance improvements. | |
500 | [#6867](https://github.com/rust-lang/cargo/pull/6867) | |
2cbb701b EH |
501 | |
502 | ### Fixed | |
503 | - More carefully track the on-disk fingerprint information for dependencies. | |
504 | This can help in some rare cases where the build is interrupted and | |
505 | restarted. [#6832](https://github.com/rust-lang/cargo/pull/6832) | |
506 | - `cargo run` now correctly passes non-UTF8 arguments to the child process. | |
507 | [#6849](https://github.com/rust-lang/cargo/pull/6849) | |
114e20b3 EH |
508 | - Fixed bash completion to run on bash 3.2, the stock version in macOS. |
509 | [#6905](https://github.com/rust-lang/cargo/pull/6905) | |
510 | - Various fixes and improvements to zsh completion. | |
511 | [#6926](https://github.com/rust-lang/cargo/pull/6926) | |
512 | [#6929](https://github.com/rust-lang/cargo/pull/6929) | |
513 | - Fix `cargo update` ignoring `-p` arguments if the `Cargo.lock` file was | |
514 | missing. | |
515 | [#6904](https://github.com/rust-lang/cargo/pull/6904) | |
2cbb701b | 516 | |
e77351a5 EH |
517 | ### Nightly only |
518 | - Added [`-Z install-upgrade` | |
519 | feature](https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#install-upgrade) | |
520 | to track details about installed crates and to update them if they are | |
521 | out-of-date. [#6798](https://github.com/rust-lang/cargo/pull/6798) | |
522 | - Added the [`public-dependency` | |
523 | feature](https://doc.rust-lang.org/nightly/cargo/reference/unstable.html#public-dependency) | |
524 | which allows tracking public versus private dependencies. | |
525 | [#6772](https://github.com/rust-lang/cargo/pull/6772) | |
526 | - Added build pipelining via the `build.pipelining` config | |
527 | option (`CARGO_BUILD_PIPELINING` env var). | |
528 | [#6883](https://github.com/rust-lang/cargo/pull/6883) | |
529 | - The `publish-lockfile` feature has had some significant changes. The default | |
530 | is now `true`, the `Cargo.lock` will always be published for binary crates. | |
531 | The `Cargo.lock` is now regenerated during publishing. `cargo install` now | |
532 | ignores the `Cargo.lock` file by default, and requires `--locked` to use the | |
533 | lock file. Warnings have been added if yanked dependencies are detected. | |
534 | [#6840](https://github.com/rust-lang/cargo/pull/6840) | |
535 | ||
2cbb701b EH |
536 | ## Cargo 1.35 (2019-05-23) |
537 | [6789d8a0...6f3e9c36](https://github.com/rust-lang/cargo/compare/6789d8a0...6f3e9c36) | |
538 | ||
539 | ### Added | |
540 | - Added the `rustc-cdylib-link-arg` key for build scripts to specify linker | |
541 | arguments for cdylib crates. | |
542 | [#6298](https://github.com/rust-lang/cargo/pull/6298) | |
2cbb701b EH |
543 | |
544 | ### Changed | |
545 | - When passing a test filter, such as `cargo test foo`, don't build examples | |
546 | (unless they set `test = true`). | |
547 | [#6683](https://github.com/rust-lang/cargo/pull/6683) | |
548 | - Forward the `--quiet` flag from `cargo test` to the libtest harness so that | |
549 | tests are actually quiet. | |
550 | [#6358](https://github.com/rust-lang/cargo/pull/6358) | |
551 | - The verification step in `cargo package` that checks if any files are | |
552 | modified is now stricter. It uses a hash of the contents instead of checking | |
553 | filesystem mtimes. It also checks *all* files in the package. | |
554 | [#6740](https://github.com/rust-lang/cargo/pull/6740) | |
555 | - Jobserver tokens are now released whenever Cargo blocks on a file lock. | |
556 | [#6748](https://github.com/rust-lang/cargo/pull/6748) | |
557 | - Issue a warning for a previous bug in the TOML parser that allowed multiple | |
558 | table headers with the same name. | |
559 | [#6761](https://github.com/rust-lang/cargo/pull/6761) | |
560 | - Removed the `CARGO_PKG_*` environment variables from the metadata hash and | |
561 | added them to the fingerprint instead. This means that when these values | |
562 | change, stale artifacts are not left behind. Also added the "repository" | |
563 | value to the fingerprint. | |
564 | [#6785](https://github.com/rust-lang/cargo/pull/6785) | |
565 | - `cargo metadata` no longer shows a `null` field for a dependency without a | |
566 | library in `resolve.nodes.deps`. The dependency is no longer shown. | |
567 | [#6534](https://github.com/rust-lang/cargo/pull/6534) | |
568 | - `cargo new` will no longer include an email address in the `authors` field | |
569 | if it is set to the empty string. | |
570 | [#6802](https://github.com/rust-lang/cargo/pull/6802) | |
571 | - `cargo doc --open` now works when documenting multiple packages. | |
572 | [#6803](https://github.com/rust-lang/cargo/pull/6803) | |
573 | - `cargo install --path P` now loads the `.cargo/config` file from the | |
574 | directory P. [#6805](https://github.com/rust-lang/cargo/pull/6805) | |
575 | - Using semver metadata in a version requirement (such as `1.0.0+1234`) now | |
576 | issues a warning that it is ignored. | |
577 | [#6806](https://github.com/rust-lang/cargo/pull/6806) | |
578 | - `cargo install` now rejects certain combinations of flags where some flags | |
579 | would have been ignored. | |
580 | [#6801](https://github.com/rust-lang/cargo/pull/6801) | |
2cbb701b EH |
581 | - Resolver performance improvements for some cases. |
582 | [#6776](https://github.com/rust-lang/cargo/pull/6776) | |
2cbb701b EH |
583 | |
584 | ### Fixed | |
585 | - Fixed running separate commands (such as `cargo build` then `cargo test`) | |
586 | where the second command could use stale results from a build script. | |
587 | [#6720](https://github.com/rust-lang/cargo/pull/6720) | |
588 | - Fixed `cargo fix` not working properly if a `.gitignore` file that matched | |
589 | the root package directory. | |
590 | [#6767](https://github.com/rust-lang/cargo/pull/6767) | |
591 | - Fixed accidentally compiling a lib multiple times if `panic=unwind` was set | |
592 | in a profile. [#6781](https://github.com/rust-lang/cargo/pull/6781) | |
593 | - Paths to JSON files in `build.target` config value are now canonicalized to | |
594 | fix building dependencies. | |
595 | [#6778](https://github.com/rust-lang/cargo/pull/6778) | |
596 | - Fixed re-running a build script if its compilation was interrupted (such as | |
597 | if it is killed). [#6782](https://github.com/rust-lang/cargo/pull/6782) | |
598 | - Fixed `cargo new` initializing a fossil repo. | |
599 | [#6792](https://github.com/rust-lang/cargo/pull/6792) | |
600 | - Fixed supporting updating a git repo that has a force push when using the | |
601 | `git-fetch-with-cli` feature. `git-fetch-with-cli` also shows more error | |
602 | information now when it fails. | |
603 | [#6800](https://github.com/rust-lang/cargo/pull/6800) | |
604 | - `--example` binaries built for the WASM target are fixed to no longer | |
605 | include a metadata hash in the filename, and are correctly emitted in the | |
606 | `compiler-artifact` JSON message. | |
607 | [#6812](https://github.com/rust-lang/cargo/pull/6812) | |
608 | ||
e77351a5 EH |
609 | ### Nightly only |
610 | - `cargo clippy-preview` is now a built-in cargo command. | |
611 | [#6759](https://github.com/rust-lang/cargo/pull/6759) | |
612 | - The `build-override` profile setting now includes proc-macros and their | |
613 | dependencies. | |
614 | [#6811](https://github.com/rust-lang/cargo/pull/6811) | |
615 | - Optional and target dependencies now work better with `-Z offline`. | |
616 | [#6814](https://github.com/rust-lang/cargo/pull/6814) | |
617 | ||
2cbb701b EH |
618 | ## Cargo 1.34 (2019-04-11) |
619 | [f099fe94...6789d8a0](https://github.com/rust-lang/cargo/compare/f099fe94...6789d8a0) | |
620 | ||
621 | ### Added | |
622 | - 🔥 Stabilized support for [alternate | |
623 | registries](https://doc.rust-lang.org/1.34.0/cargo/reference/registries.html). | |
624 | [#6654](https://github.com/rust-lang/cargo/pull/6654) | |
2cbb701b EH |
625 | - Added documentation on using builds.sr.ht Continuous Integration with Cargo. |
626 | [#6565](https://github.com/rust-lang/cargo/pull/6565) | |
627 | - `Cargo.lock` now includes a comment at the top that it is `@generated`. | |
628 | [#6548](https://github.com/rust-lang/cargo/pull/6548) | |
629 | - Azure DevOps badges are now supported. | |
630 | [#6264](https://github.com/rust-lang/cargo/pull/6264) | |
2cbb701b EH |
631 | - Added a warning if `--exclude` flag specifies an unknown package. |
632 | [#6679](https://github.com/rust-lang/cargo/pull/6679) | |
633 | ||
634 | ### Changed | |
635 | - `cargo test --doc --no-run` doesn't do anything, so it now displays an error | |
636 | to that effect. [#6628](https://github.com/rust-lang/cargo/pull/6628) | |
637 | - Various updates to bash completion: add missing options and commands, | |
638 | support libtest completions, use rustup for `--target` completion, fallback | |
639 | to filename completion, fix editing the command line. | |
640 | [#6644](https://github.com/rust-lang/cargo/pull/6644) | |
641 | - Publishing a crate with a `[patch]` section no longer generates an error. | |
642 | The `[patch]` section is removed from the manifest before publishing. | |
643 | [#6535](https://github.com/rust-lang/cargo/pull/6535) | |
644 | - `build.incremental = true` config value is now treated the same as | |
645 | `CARGO_INCREMENTAL=1`, previously it was ignored. | |
646 | [#6688](https://github.com/rust-lang/cargo/pull/6688) | |
647 | - Errors from a registry are now always displayed regardless of the HTTP | |
648 | response code. [#6771](https://github.com/rust-lang/cargo/pull/6771) | |
649 | ||
650 | ### Fixed | |
651 | - Fixed bash completion for `cargo run --example`. | |
652 | [#6578](https://github.com/rust-lang/cargo/pull/6578) | |
653 | - Fixed a race condition when using a *local* registry and running multiple | |
654 | cargo commands at the same time that build the same crate. | |
655 | [#6591](https://github.com/rust-lang/cargo/pull/6591) | |
656 | - Fixed some flickering and excessive updates of the progress bar. | |
657 | [#6615](https://github.com/rust-lang/cargo/pull/6615) | |
658 | - Fixed a hang when using a git credential helper that returns incorrect | |
659 | credentials. [#6681](https://github.com/rust-lang/cargo/pull/6681) | |
660 | - Fixed resolving yanked crates with a local registry. | |
661 | [#6750](https://github.com/rust-lang/cargo/pull/6750) | |
662 | ||
e77351a5 EH |
663 | ### Nightly only |
664 | - Added `-Z mtime-on-use` flag to cause the mtime to be updated on the | |
665 | filesystem when a crate is used. This is intended to be able to track stale | |
666 | artifacts in the future for cleaning up unused files. | |
667 | [#6477](https://github.com/rust-lang/cargo/pull/6477) | |
668 | [#6573](https://github.com/rust-lang/cargo/pull/6573) | |
669 | - Added experimental `-Z dual-proc-macros` to build proc macros for both the | |
670 | host and the target. | |
671 | [#6547](https://github.com/rust-lang/cargo/pull/6547) | |
672 | ||
2cbb701b EH |
673 | ## Cargo 1.33 (2019-02-28) |
674 | [8610973a...f099fe94](https://github.com/rust-lang/cargo/compare/8610973a...f099fe94) | |
675 | ||
676 | ### Added | |
677 | - `compiler-artifact` JSON messages now include an `"executable"` key which | |
678 | includes the path to the executable that was built. | |
679 | [#6363](https://github.com/rust-lang/cargo/pull/6363) | |
680 | - The man pages have been rewritten, and are now published with the web | |
681 | documentation. [#6405](https://github.com/rust-lang/cargo/pull/6405) | |
2cbb701b EH |
682 | - `cargo login` now displays a confirmation after saving the token. |
683 | [#6466](https://github.com/rust-lang/cargo/pull/6466) | |
684 | - A warning is now emitted if a `[patch]` entry does not match any package. | |
685 | [#6470](https://github.com/rust-lang/cargo/pull/6470) | |
686 | - `cargo metadata` now includes the `links` key for a package. | |
687 | [#6480](https://github.com/rust-lang/cargo/pull/6480) | |
2cbb701b EH |
688 | - "Very verbose" output with `-vv` now displays the environment variables that |
689 | cargo sets when it runs a process. | |
690 | [#6492](https://github.com/rust-lang/cargo/pull/6492) | |
691 | - `--example`, `--bin`, `--bench`, or `--test` without an argument now lists | |
692 | the available targets for those options. | |
693 | [#6505](https://github.com/rust-lang/cargo/pull/6505) | |
694 | - Windows: If a process fails with an extended status exit code, a | |
695 | human-readable name for the code is now displayed. | |
696 | [#6532](https://github.com/rust-lang/cargo/pull/6532) | |
697 | - Added `--features`, `--no-default-features`, and `--all-features` flags to | |
698 | the `cargo package` and `cargo publish` commands to use the given features | |
699 | when verifying the package. | |
700 | [#6453](https://github.com/rust-lang/cargo/pull/6453) | |
701 | ||
702 | ### Changed | |
703 | - If `cargo fix` fails to compile the fixed code, the rustc errors are now | |
704 | displayed on the console. | |
705 | [#6419](https://github.com/rust-lang/cargo/pull/6419) | |
2cbb701b EH |
706 | - Hide the `--host` flag from `cargo login`, it is unused. |
707 | [#6466](https://github.com/rust-lang/cargo/pull/6466) | |
2cbb701b EH |
708 | - Build script fingerprints now include the rustc version. |
709 | [#6473](https://github.com/rust-lang/cargo/pull/6473) | |
710 | - macOS: Switched to setting `DYLD_FALLBACK_LIBRARY_PATH` instead of | |
711 | `DYLD_LIBRARY_PATH`. [#6355](https://github.com/rust-lang/cargo/pull/6355) | |
712 | - `RUSTFLAGS` is now included in the metadata hash, meaning that changing | |
713 | the flags will not overwrite previously built files. | |
714 | [#6503](https://github.com/rust-lang/cargo/pull/6503) | |
715 | - When updating the crate graph, unrelated yanked crates were erroneously | |
716 | removed. They are now kept at their original version if possible. This was | |
717 | causing unrelated packages to be downgraded during `cargo update -p | |
718 | somecrate`. [#5702](https://github.com/rust-lang/cargo/issues/5702) | |
719 | - TOML files now support the [0.5 TOML | |
720 | syntax](https://github.com/toml-lang/toml/blob/master/CHANGELOG.md#050--2018-07-11). | |
721 | ||
722 | ### Fixed | |
723 | - `cargo fix` will now ignore suggestions that modify multiple files. | |
724 | [#6402](https://github.com/rust-lang/cargo/pull/6402) | |
725 | - `cargo fix` will now only fix one target at a time, to deal with targets | |
726 | which share the same source files. | |
727 | [#6434](https://github.com/rust-lang/cargo/pull/6434) | |
2cbb701b EH |
728 | - Fixed bash completion showing the list of cargo commands. |
729 | [#6461](https://github.com/rust-lang/cargo/issues/6461) | |
730 | - `cargo init` will now avoid creating duplicate entries in `.gitignore` | |
731 | files. [#6521](https://github.com/rust-lang/cargo/pull/6521) | |
2cbb701b EH |
732 | - Builds now attempt to detect if a file is modified in the middle of a |
733 | compilation, allowing you to build again and pick up the new changes. This | |
734 | is done by keeping track of when the compilation *starts* not when it | |
735 | finishes. Also, [#5919](https://github.com/rust-lang/cargo/pull/5919) was | |
736 | reverted, meaning that cargo does *not* treat equal filesystem mtimes as | |
737 | requiring a rebuild. [#6484](https://github.com/rust-lang/cargo/pull/6484) | |
738 | ||
e77351a5 EH |
739 | ### Nightly only |
740 | - Allow using registry *names* in `[patch]` tables instead of just URLs. | |
741 | [#6456](https://github.com/rust-lang/cargo/pull/6456) | |
742 | - `cargo metadata` added the `registry` key for dependencies. | |
743 | [#6500](https://github.com/rust-lang/cargo/pull/6500) | |
744 | - Registry names are now restricted to the same style as | |
745 | package names (alphanumeric, `-` and `_` characters). | |
746 | [#6469](https://github.com/rust-lang/cargo/pull/6469) | |
747 | - `cargo login` now displays the `/me` URL from the registry config. | |
748 | [#6466](https://github.com/rust-lang/cargo/pull/6466) | |
749 | - `cargo login --registry=NAME` now supports interactive input for the token. | |
750 | [#6466](https://github.com/rust-lang/cargo/pull/6466) | |
751 | - Registries may now elide the `api` key from `config.json` to indicate they | |
752 | do not support API access. | |
753 | [#6466](https://github.com/rust-lang/cargo/pull/6466) | |
754 | - Fixed panic when using `--message-format=json` with metabuild. | |
755 | [#6432](https://github.com/rust-lang/cargo/pull/6432) | |
756 | - Fixed detection of publishing to crates.io when using alternate registries. | |
757 | [#6525](https://github.com/rust-lang/cargo/pull/6525) | |
758 | ||
2cbb701b EH |
759 | ## Cargo 1.32 (2019-01-17) |
760 | [339d9f9c...8610973a](https://github.com/rust-lang/cargo/compare/339d9f9c...8610973a) | |
761 | ||
762 | ### Added | |
2cbb701b EH |
763 | - Registries may now display warnings after a successful publish. |
764 | [#6303](https://github.com/rust-lang/cargo/pull/6303) | |
765 | - Added a [glossary](https://doc.rust-lang.org/cargo/appendix/glossary.html) | |
766 | to the documentation. [#6321](https://github.com/rust-lang/cargo/pull/6321) | |
767 | - Added the alias `c` for `cargo check`. | |
768 | [#6218](https://github.com/rust-lang/cargo/pull/6218) | |
2cbb701b EH |
769 | |
770 | ### Changed | |
771 | - 🔥 HTTP/2 multiplexing is now enabled by default. The `http.multiplexing` | |
772 | config value may be used to disable it. | |
773 | [#6271](https://github.com/rust-lang/cargo/pull/6271) | |
774 | - Use ANSI escape sequences to clear lines instead of spaces. | |
775 | [#6233](https://github.com/rust-lang/cargo/pull/6233) | |
776 | - Disable git templates when checking out git dependencies, which can cause | |
777 | problems. [#6252](https://github.com/rust-lang/cargo/pull/6252) | |
778 | - Include the `--update-head-ok` git flag when using the | |
779 | `net.git-fetch-with-cli` option. This can help prevent failures when | |
780 | fetching some repositories. | |
781 | [#6250](https://github.com/rust-lang/cargo/pull/6250) | |
782 | - When extracting a crate during the verification step of `cargo package`, the | |
783 | filesystem mtimes are no longer set, which was failing on some rare | |
784 | filesystems. [#6257](https://github.com/rust-lang/cargo/pull/6257) | |
785 | - `crate-type = ["proc-macro"]` is now treated the same as `proc-macro = true` | |
786 | in `Cargo.toml`. [#6256](https://github.com/rust-lang/cargo/pull/6256) | |
787 | - An error is raised if `dependencies`, `features`, `target`, or `badges` is | |
788 | set in a virtual workspace. Warnings are displayed if `replace` or `patch` | |
789 | is used in a workspace member. | |
790 | [#6276](https://github.com/rust-lang/cargo/pull/6276) | |
791 | - Improved performance of the resolver in some cases. | |
792 | [#6283](https://github.com/rust-lang/cargo/pull/6283) | |
793 | [#6366](https://github.com/rust-lang/cargo/pull/6366) | |
794 | - `.rmeta` files are no longer hard-linked into the base target directory | |
795 | (`target/debug`). [#6292](https://github.com/rust-lang/cargo/pull/6292) | |
796 | - A warning is issued if multiple targets are built with the same output | |
797 | filenames. [#6308](https://github.com/rust-lang/cargo/pull/6308) | |
798 | - When using `cargo build` (without `--release`) benchmarks are now built | |
799 | using the "test" profile instead of "bench". This makes it easier to debug | |
800 | benchmarks, and avoids confusing behavior. | |
801 | [#6309](https://github.com/rust-lang/cargo/pull/6309) | |
802 | - User aliases may now override built-in aliases (`b`, `r`, `t`, and `c`). | |
803 | [#6259](https://github.com/rust-lang/cargo/pull/6259) | |
804 | - Setting `autobins=false` now disables auto-discovery of inferred targets. | |
805 | [#6329](https://github.com/rust-lang/cargo/pull/6329) | |
806 | - `cargo verify-project` will now fail on stable if the project uses unstable | |
807 | features. [#6326](https://github.com/rust-lang/cargo/pull/6326) | |
808 | - Platform targets with an internal `.` within the name are now allowed. | |
809 | [#6255](https://github.com/rust-lang/cargo/pull/6255) | |
810 | - `cargo clean --release` now only deletes the release directory. | |
811 | [#6349](https://github.com/rust-lang/cargo/pull/6349) | |
812 | ||
813 | ### Fixed | |
814 | - Avoid adding extra angle brackets in email address for `cargo new`. | |
815 | [#6243](https://github.com/rust-lang/cargo/pull/6243) | |
816 | - The progress bar is disabled if the CI environment variable is set. | |
817 | [#6281](https://github.com/rust-lang/cargo/pull/6281) | |
818 | - Avoid retaining all rustc output in memory. | |
819 | [#6289](https://github.com/rust-lang/cargo/pull/6289) | |
820 | - If JSON parsing fails, and rustc exits nonzero, don't lose the parse failure | |
821 | message. [#6290](https://github.com/rust-lang/cargo/pull/6290) | |
2cbb701b EH |
822 | - Fixed renaming a project directory with build scripts. |
823 | [#6328](https://github.com/rust-lang/cargo/pull/6328) | |
824 | - Fixed `cargo run --example NAME` to work correctly if the example sets | |
825 | `crate_type = ["bin"]`. | |
826 | [#6330](https://github.com/rust-lang/cargo/pull/6330) | |
827 | - Fixed issue with `cargo package` git discovery being too aggressive. The | |
828 | `--allow-dirty` now completely disables the git repo checks. | |
829 | [#6280](https://github.com/rust-lang/cargo/pull/6280) | |
830 | - Fixed build change tracking for `[patch]` deps which resulted in `cargo | |
831 | build` rebuilding when it shouldn't. | |
832 | [#6493](https://github.com/rust-lang/cargo/pull/6493) | |
833 | ||
e77351a5 EH |
834 | ### Nightly only |
835 | - Allow usernames in registry URLs. | |
836 | [#6242](https://github.com/rust-lang/cargo/pull/6242) | |
837 | - Added `"compile_mode"` key to the build-plan JSON structure to be able to | |
838 | distinguish running a custom build script versus compiling the build script. | |
839 | [#6331](https://github.com/rust-lang/cargo/pull/6331) | |
840 | - `--out-dir` no longer copies over build scripts. | |
841 | [#6300](https://github.com/rust-lang/cargo/pull/6300) | |
842 | ||
30125600 | 843 | ## Cargo 1.31 (2018-12-06) |
2cbb701b EH |
844 | [36d96825...339d9f9c](https://github.com/rust-lang/cargo/compare/36d96825...339d9f9c) |
845 | ||
846 | ### Added | |
847 | - 🔥 Stabilized support for the 2018 edition. | |
848 | [#5984](https://github.com/rust-lang/cargo/pull/5984) | |
849 | [#5989](https://github.com/rust-lang/cargo/pull/5989) | |
850 | - 🔥 Added the ability to [rename | |
851 | dependencies](https://doc.rust-lang.org/1.31.0/cargo/reference/specifying-dependencies.html#renaming-dependencies-in-cargotoml) | |
852 | in Cargo.toml. [#6319](https://github.com/rust-lang/cargo/pull/6319) | |
853 | - 🔥 Added support for HTTP/2 pipelining and multiplexing. Set the | |
854 | `http.multiplexing` config value to enable. | |
855 | [#6005](https://github.com/rust-lang/cargo/pull/6005) | |
2cbb701b EH |
856 | - Added `http.debug` configuration value to debug HTTP connections. Use |
857 | `CARGO_HTTP_DEBUG=true RUST_LOG=cargo::ops::registry cargo build` to display | |
858 | the debug information. [#6166](https://github.com/rust-lang/cargo/pull/6166) | |
859 | - `CARGO_PKG_REPOSITORY` environment variable is set with the repository value | |
860 | from `Cargo.toml` when building . | |
861 | [#6096](https://github.com/rust-lang/cargo/pull/6096) | |
862 | ||
863 | ### Changed | |
864 | - `cargo test --doc` now rejects other flags instead of ignoring them. | |
865 | [#6037](https://github.com/rust-lang/cargo/pull/6037) | |
866 | - `cargo install` ignores `~/.cargo/config`. | |
867 | [#6026](https://github.com/rust-lang/cargo/pull/6026) | |
868 | - `cargo version --verbose` is now the same as `cargo -vV`. | |
869 | [#6076](https://github.com/rust-lang/cargo/pull/6076) | |
870 | - Comments at the top of `Cargo.lock` are now preserved. | |
871 | [#6181](https://github.com/rust-lang/cargo/pull/6181) | |
872 | - When building in "very verbose" mode (`cargo build -vv`), build script | |
873 | output is prefixed with the package name and version, such as `[foo 0.0.1]`. | |
874 | [#6164](https://github.com/rust-lang/cargo/pull/6164) | |
875 | - If `cargo fix --broken-code` fails to compile after fixes have been applied, | |
876 | the files are no longer reverted and are left in their broken state. | |
877 | [#6316](https://github.com/rust-lang/cargo/pull/6316) | |
878 | ||
879 | ### Fixed | |
880 | - Windows: Pass Ctrl-C to the process with `cargo run`. | |
881 | [#6004](https://github.com/rust-lang/cargo/pull/6004) | |
882 | - macOS: Fix bash completion. | |
883 | [#6038](https://github.com/rust-lang/cargo/pull/6038) | |
884 | - Support arbitrary toolchain names when completing `+toolchain` in bash | |
885 | completion. [#6038](https://github.com/rust-lang/cargo/pull/6038) | |
886 | - Fixed edge cases in the resolver, when backtracking on failed dependencies. | |
887 | [#5988](https://github.com/rust-lang/cargo/pull/5988) | |
888 | - Fixed `cargo test --all-targets` running lib tests three times. | |
889 | [#6039](https://github.com/rust-lang/cargo/pull/6039) | |
890 | - Fixed publishing renamed dependencies to crates.io. | |
891 | [#5993](https://github.com/rust-lang/cargo/pull/5993) | |
892 | - Fixed `cargo install` on a git repo with multiple binaries. | |
893 | [#6060](https://github.com/rust-lang/cargo/pull/6060) | |
894 | - Fixed deeply nested JSON emitted by rustc being lost. | |
895 | [#6081](https://github.com/rust-lang/cargo/pull/6081) | |
896 | - Windows: Fix locking msys terminals to 60 characters. | |
897 | [#6122](https://github.com/rust-lang/cargo/pull/6122) | |
898 | - Fixed renamed dependencies with dashes. | |
899 | [#6140](https://github.com/rust-lang/cargo/pull/6140) | |
900 | - Fixed linking against the wrong dylib when the dylib existed in both | |
901 | `target/debug` and `target/debug/deps`. | |
902 | [#6167](https://github.com/rust-lang/cargo/pull/6167) | |
903 | - Fixed some unnecessary recompiles when `panic=abort` is used. | |
904 | [#6170](https://github.com/rust-lang/cargo/pull/6170) | |
905 | ||
e77351a5 EH |
906 | ### Nightly only |
907 | - Added `--registry` flag to `cargo install`. | |
908 | [#6128](https://github.com/rust-lang/cargo/pull/6128) | |
909 | - Added `registry.default` configuration value to specify the | |
910 | default registry to use if `--registry` flag is not passed. | |
911 | [#6135](https://github.com/rust-lang/cargo/pull/6135) | |
912 | - Added `--registry` flag to `cargo new` and `cargo init`. | |
913 | [#6135](https://github.com/rust-lang/cargo/pull/6135) | |
914 | ||
30125600 | 915 | ## Cargo 1.30 (2018-10-25) |
2cbb701b EH |
916 | [524a578d...36d96825](https://github.com/rust-lang/cargo/compare/524a578d...36d96825) |
917 | ||
918 | ### Added | |
919 | - 🔥 Added an animated progress bar shows progress during building. | |
920 | [#5995](https://github.com/rust-lang/cargo/pull/5995/) | |
921 | - Added `resolve.nodes.deps` key to `cargo metadata`, which includes more | |
922 | information about resolved dependencies, and properly handles renamed | |
923 | dependencies. [#5871](https://github.com/rust-lang/cargo/pull/5871) | |
924 | - When creating a package, provide more detail with `-v` when failing to | |
925 | discover if files are dirty in a git repository. Also fix a problem with | |
926 | discovery on Windows. [#5858](https://github.com/rust-lang/cargo/pull/5858) | |
927 | - Filters like `--bin`, `--test`, `--example`, `--bench`, or `--lib` can be | |
928 | used in a workspace without selecting a specific package. | |
929 | [#5873](https://github.com/rust-lang/cargo/pull/5873) | |
930 | - `cargo run` can be used in a workspace without selecting a specific package. | |
931 | [#5877](https://github.com/rust-lang/cargo/pull/5877) | |
932 | - `cargo doc --message-format=json` now outputs JSON messages from rustdoc. | |
933 | [#5878](https://github.com/rust-lang/cargo/pull/5878) | |
934 | - Added `--message-format=short` to show one-line messages. | |
935 | [#5879](https://github.com/rust-lang/cargo/pull/5879) | |
936 | - Added `.cargo_vcs_info.json` file to `.crate` packages that captures the | |
937 | current git hash. [#5886](https://github.com/rust-lang/cargo/pull/5886) | |
938 | - Added `net.git-fetch-with-cli` configuration option to use the `git` | |
939 | executable to fetch repositories instead of using the built-in libgit2 | |
940 | library. [#5914](https://github.com/rust-lang/cargo/pull/5914) | |
941 | - Added `required-features` to `cargo metadata`. | |
942 | [#5902](https://github.com/rust-lang/cargo/pull/5902) | |
943 | - `cargo uninstall` within a package will now uninstall that package. | |
944 | [#5927](https://github.com/rust-lang/cargo/pull/5927) | |
2cbb701b EH |
945 | - Added `--allow-staged` flag to `cargo fix` to allow it to run if files are |
946 | staged in git. [#5943](https://github.com/rust-lang/cargo/pull/5943) | |
947 | - Added `net.low-speed-limit` config value, and also honor `net.timeout` for | |
948 | http operations. [#5957](https://github.com/rust-lang/cargo/pull/5957) | |
949 | - Added `--edition` flag to `cargo new`. | |
950 | [#5984](https://github.com/rust-lang/cargo/pull/5984) | |
951 | - Temporarily stabilized 2018 edition support for the duration of the beta. | |
952 | [#5984](https://github.com/rust-lang/cargo/pull/5984) | |
953 | [#5989](https://github.com/rust-lang/cargo/pull/5989) | |
954 | - Added support for `target.'cfg(…)'.runner` config value to specify the | |
955 | run/test/bench runner for config-expressioned targets. | |
956 | [#5959](https://github.com/rust-lang/cargo/pull/5959) | |
957 | ||
958 | ### Changed | |
959 | - Windows: `cargo run` will not kill child processes when the main process | |
960 | exits. [#5887](https://github.com/rust-lang/cargo/pull/5887) | |
961 | - Switched to the `opener` crate to open a web browser with `cargo doc | |
962 | --open`. This should more reliably select the system-preferred browser on | |
963 | all platforms. [#5888](https://github.com/rust-lang/cargo/pull/5888) | |
964 | - Equal file mtimes now cause a target to be rebuilt. Previously only if files | |
965 | were strictly *newer* than the last build would it cause a rebuild. | |
966 | [#5919](https://github.com/rust-lang/cargo/pull/5919) | |
967 | - Ignore `build.target` config value when running `cargo install`. | |
968 | [#5874](https://github.com/rust-lang/cargo/pull/5874) | |
969 | - Ignore `RUSTC_WRAPPER` for `cargo fix`. | |
970 | [#5983](https://github.com/rust-lang/cargo/pull/5983) | |
971 | - Ignore empty `RUSTC_WRAPPER`. | |
972 | [#5985](https://github.com/rust-lang/cargo/pull/5985) | |
973 | ||
974 | ### Fixed | |
975 | - Fixed error when creating a package with an edition field in `Cargo.toml`. | |
976 | [#5908](https://github.com/rust-lang/cargo/pull/5908) | |
977 | - More consistently use relative paths for path dependencies in a workspace. | |
978 | [#5935](https://github.com/rust-lang/cargo/pull/5935) | |
979 | - `cargo fix` now always runs, even if it was run previously. | |
980 | [#5944](https://github.com/rust-lang/cargo/pull/5944) | |
981 | - Windows: Attempt to more reliably detect terminal width. msys-based | |
982 | terminals are forced to 60 characters wide. | |
983 | [#6010](https://github.com/rust-lang/cargo/pull/6010) | |
984 | - Allow multiple target flags with `cargo doc --document-private-items`. | |
985 | [6022](https://github.com/rust-lang/cargo/pull/6022) | |
e77351a5 EH |
986 | |
987 | ### Nightly only | |
988 | - Added | |
989 | [metabuild](https://doc.rust-lang.org/1.30.0/cargo/reference/unstable.html#metabuild). | |
990 | [#5628](https://github.com/rust-lang/cargo/pull/5628) |