2016-06-28 19:17:47 +00:00
|
|
|
[package]
|
2014-07-16 00:51:49 +00:00
|
|
|
name = "cargo"
|
2018-09-18 01:42:51 +00:00
|
|
|
version = "0.32.0"
|
2014-07-16 00:51:49 +00:00
|
|
|
authors = ["Yehuda Katz <wycats@gmail.com>",
|
2014-11-13 23:08:17 +00:00
|
|
|
"Carl Lerche <me@carllerche.com>",
|
|
|
|
"Alex Crichton <alex@alexcrichton.com>"]
|
2018-02-26 18:19:26 +00:00
|
|
|
license = "MIT OR Apache-2.0"
|
2015-07-24 21:37:03 +00:00
|
|
|
homepage = "https://crates.io"
|
|
|
|
repository = "https://github.com/rust-lang/cargo"
|
2017-02-03 22:14:36 +00:00
|
|
|
documentation = "https://docs.rs/cargo"
|
2015-07-24 21:37:03 +00:00
|
|
|
description = """
|
|
|
|
Cargo, a package manager for Rust.
|
|
|
|
"""
|
2014-07-16 00:51:49 +00:00
|
|
|
|
2014-08-16 20:00:46 +00:00
|
|
|
[lib]
|
2014-07-16 00:51:49 +00:00
|
|
|
name = "cargo"
|
|
|
|
path = "src/cargo/lib.rs"
|
|
|
|
|
2014-12-19 03:01:37 +00:00
|
|
|
[dependencies]
|
2017-06-15 15:08:35 +00:00
|
|
|
atty = "0.2"
|
Update the progress bar for parallel downloads
This is actually a super tricky problem. We don't really have the capacity for
more than one line of update-able information in Cargo right now, so we need to
squeeze a lot of information into one line of output for Cargo. The main
constraints this tries to satisfy are:
* At all times it should be clear what's happening. Cargo shouldn't just hang
with no output when downloading a crate for a long time, a counter ideally
needs to be decreasing while the download progresses.
* If a progress bar is shown, it shouldn't jump around. This ends up just being
a surprising user experience for most. Progress bars should only ever
increase, but they may increase at different speeds.
* Cargo has, currently, at most one line of output (as mentioned above) to pack
information into. We haven't delved into fancier terminal features that
involve multiple lines of update-able output.
* When downloading crates as part of `cargo build` (the norm) we don't actually
know ahead of time how many crates are being downloaded. We rely on the
calculation of unit dependencies to naturally feed into downloading more
crates.
* Furthermore, once we decide to download a crate, we don't actually know how
big it is! We have to wait for the server to tell us how big it is.
There doesn't really seem to be a great solution that satisfies all of these
constraints unfortunately. As a result this commit implements a relatively
conservative solution which should hopefully get us most of the way there. There
isn't actually a progress bar but rather Cargo prints that it's got N crates
left to download, and if it takes awhile it prints out that there are M bytes
remaining.
Unfortunately the progress is pretty choppy and jerky, not providing a smooth
UI. This appears to largely be because Cargo will synchronously extract
tarballs, which for large crates can cause a noticeable pause. Cargo's not
really prepared internally to perform this work on helper threads, but ideally
if it could do so it would improve the output quite a bit! (making it much
smoother and also able to account for the time tarball extraction takes).
2018-09-13 03:57:01 +00:00
|
|
|
bytesize = "1.0"
|
2018-09-18 01:42:51 +00:00
|
|
|
crates-io = { path = "src/crates-io", version = "0.20" }
|
2018-07-26 05:30:17 +00:00
|
|
|
crossbeam-utils = "0.5"
|
2018-04-22 18:55:53 +00:00
|
|
|
crypto-hash = "0.3.1"
|
2018-09-17 18:44:48 +00:00
|
|
|
curl = { version = "0.4.17", features = ['http2'] }
|
2018-09-17 21:58:38 +00:00
|
|
|
env_logger = "0.5.11"
|
2018-08-01 14:20:04 +00:00
|
|
|
failure = "0.1.2"
|
2018-04-17 22:08:04 +00:00
|
|
|
filetime = "0.2"
|
2017-12-29 14:37:22 +00:00
|
|
|
flate2 = "1.0"
|
2017-02-07 17:39:09 +00:00
|
|
|
fs2 = "0.4"
|
2018-08-02 22:46:19 +00:00
|
|
|
git2 = "0.7.5"
|
2018-04-22 18:55:53 +00:00
|
|
|
git2-curl = "0.8.1"
|
|
|
|
glob = "0.2.11"
|
2018-01-02 19:35:32 +00:00
|
|
|
hex = "0.3"
|
2017-07-18 23:42:51 +00:00
|
|
|
home = "0.3"
|
2018-02-12 20:42:31 +00:00
|
|
|
ignore = "0.4"
|
2018-03-04 02:01:33 +00:00
|
|
|
lazy_static = "1.0.0"
|
2018-07-21 02:04:27 +00:00
|
|
|
jobserver = "0.1.11"
|
2018-07-06 20:11:14 +00:00
|
|
|
lazycell = "1.0"
|
2015-12-20 22:58:55 +00:00
|
|
|
libc = "0.2"
|
2018-01-03 20:16:16 +00:00
|
|
|
log = "0.4"
|
2018-07-24 14:41:10 +00:00
|
|
|
libgit2-sys = "0.7.5"
|
2016-08-07 08:15:15 +00:00
|
|
|
num_cpus = "1.0"
|
2018-08-20 05:27:11 +00:00
|
|
|
opener = "0.3.0"
|
2018-07-31 20:08:46 +00:00
|
|
|
rustfix = "0.4.2"
|
2018-01-02 11:08:44 +00:00
|
|
|
same-file = "1"
|
|
|
|
semver = { version = "0.9.0", features = ["serde"] }
|
2017-04-27 18:37:46 +00:00
|
|
|
serde = "1.0"
|
|
|
|
serde_derive = "1.0"
|
2017-09-05 22:29:07 +00:00
|
|
|
serde_ignored = "0.0.4"
|
2018-08-03 00:05:46 +00:00
|
|
|
serde_json = "1.0.24"
|
2018-08-02 20:15:11 +00:00
|
|
|
shell-escape = "0.1.4"
|
2018-04-22 18:55:53 +00:00
|
|
|
tar = { version = "0.4.15", default-features = false }
|
2018-03-26 10:42:30 +00:00
|
|
|
tempfile = "3.0"
|
2018-07-18 05:36:04 +00:00
|
|
|
termcolor = "1.0"
|
2018-04-22 18:55:53 +00:00
|
|
|
toml = "0.4.2"
|
2016-03-02 15:37:44 +00:00
|
|
|
url = "1.1"
|
2018-03-19 20:13:04 +00:00
|
|
|
clap = "2.31.2"
|
2018-06-29 17:39:35 +00:00
|
|
|
unicode-width = "0.1.5"
|
2018-08-05 06:02:57 +00:00
|
|
|
openssl = { version = '0.10.11', optional = true }
|
2015-01-20 16:01:52 +00:00
|
|
|
|
2018-08-02 04:28:47 +00:00
|
|
|
# A noop dependency that changes in the Rust repository, it's a bit of a hack.
|
|
|
|
# See the `src/tools/rustc-workspace-hack/README.md` file in `rust-lang/rust`
|
|
|
|
# for more information.
|
|
|
|
rustc-workspace-hack = "1.0.0"
|
2018-03-15 18:00:32 +00:00
|
|
|
|
2017-08-09 14:41:53 +00:00
|
|
|
[target.'cfg(target_os = "macos")'.dependencies]
|
2018-05-23 02:46:30 +00:00
|
|
|
core-foundation = { version = "0.6.0", features = ["mac_os_10_7_support"] }
|
2017-08-09 14:41:53 +00:00
|
|
|
|
2017-01-05 21:09:36 +00:00
|
|
|
[target.'cfg(windows)'.dependencies]
|
2018-07-21 02:04:27 +00:00
|
|
|
miow = "0.3.1"
|
2018-08-02 14:18:43 +00:00
|
|
|
fwdansi = "1"
|
2018-07-21 16:35:35 +00:00
|
|
|
|
2018-01-03 19:25:28 +00:00
|
|
|
[target.'cfg(windows)'.dependencies.winapi]
|
|
|
|
version = "0.3"
|
|
|
|
features = [
|
2018-07-05 23:05:12 +00:00
|
|
|
"basetsd",
|
2018-01-03 19:25:28 +00:00
|
|
|
"handleapi",
|
|
|
|
"jobapi",
|
|
|
|
"jobapi2",
|
2018-07-05 23:05:12 +00:00
|
|
|
"memoryapi",
|
2018-01-03 19:25:28 +00:00
|
|
|
"minwindef",
|
|
|
|
"ntdef",
|
2018-03-26 06:52:55 +00:00
|
|
|
"ntstatus",
|
2018-01-03 19:25:28 +00:00
|
|
|
"processenv",
|
|
|
|
"processthreadsapi",
|
|
|
|
"psapi",
|
|
|
|
"synchapi",
|
|
|
|
"winerror",
|
|
|
|
"winbase",
|
|
|
|
"wincon",
|
|
|
|
"winnt",
|
|
|
|
]
|
2017-01-05 21:09:36 +00:00
|
|
|
|
2015-03-09 19:07:35 +00:00
|
|
|
[dev-dependencies]
|
2015-05-13 04:22:14 +00:00
|
|
|
bufstream = "0.1"
|
2014-09-27 04:14:46 +00:00
|
|
|
|
2014-07-16 00:51:49 +00:00
|
|
|
[[bin]]
|
|
|
|
name = "cargo"
|
|
|
|
test = false
|
2014-08-14 21:54:56 +00:00
|
|
|
doc = false
|
2018-08-05 06:02:57 +00:00
|
|
|
|
|
|
|
[features]
|
|
|
|
vendored-openssl = ['openssl/vendored']
|