cargo/Cargo.toml

131 lines
3.5 KiB
TOML
Raw Normal View History

[workspace]
resolver = "2"
members = [
"crates/*",
"credential/*",
"benches/benchsuite",
"benches/capture",
]
exclude = [
"target/", # exclude bench testing
]
[package]
2014-07-16 00:51:49 +00:00
name = "cargo"
2023-04-20 18:14:19 +00:00
version = "0.72.0"
edition = "2021"
license = "MIT OR Apache-2.0"
homepage = "https://crates.io"
repository = "https://github.com/rust-lang/cargo"
documentation = "https://docs.rs/cargo"
readme = "README.md"
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]
anyhow = "1.0.47"
base64 = "0.21.0"
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"
2023-04-23 18:51:43 +00:00
cargo-platform = { path = "crates/cargo-platform", version = "0.1.3" }
2023-03-07 12:42:18 +00:00
cargo-util = { path = "crates/cargo-util", version = "0.2.4" }
2023-04-21 03:25:09 +00:00
clap = { version = "4.2.0", features = ["wrap_help"] }
2023-04-23 18:51:43 +00:00
crates-io = { path = "crates/crates-io", version = "0.36.1" }
2022-10-28 00:20:09 +00:00
curl = { version = "0.4.44", features = ["http2"] }
2023-03-20 18:54:02 +00:00
curl-sys = "0.4.61"
env_logger = "0.10.0"
filetime = "0.2.9"
flate2 = { version = "1.0.3", default-features = false, features = ["zlib"] }
2023-04-02 22:32:48 +00:00
git2 = "0.17.0"
git2-curl = "0.18.0"
gix = { version = "0.44.1", default-features = false, features = ["blocking-http-transport-curl", "progress-tree"] }
gix-features-for-configuration-only = { version = "0.29.0", package = "gix-features", features = [ "parallel" ] }
glob = "0.3.0"
hex = "0.4"
hmac = "0.12.1"
2023-04-25 18:38:52 +00:00
home = "0.5.5"
http-auth = { version = "0.1.6", default-features = false }
humantime = "2.0.0"
ignore = "0.4.7"
im-rc = "15.0.0"
indexmap = "1"
is-terminal = "0.4.4"
itertools = "0.10.0"
jobserver = "0.1.26"
lazy_static = "1.2.0"
lazycell = "1.2.0"
libc = "0.2"
2023-04-02 22:32:48 +00:00
libgit2-sys = "0.15.0"
log = "0.4.6"
memchr = "2.1.3"
opener = "0.5"
os_info = "3.5.0"
2022-12-12 17:49:22 +00:00
pasetors = { version = "0.6.4", features = ["v3", "paserk", "std", "serde"] }
pathdiff = "0.2"
pretty_env_logger = { version = "0.4", optional = true }
2023-03-23 12:33:20 +00:00
rand = "0.8.5"
2021-06-10 01:13:56 +00:00
rustfix = "0.6.0"
2021-06-04 16:19:11 +00:00
semver = { version = "1.0.3", features = ["serde"] }
serde = { version = "1.0.123", features = ["derive"] }
serde-value = "0.7.0"
serde_ignored = "0.1.0"
serde_json = { version = "1.0.30", features = ["raw_value"] }
sha1 = "0.10.5"
2021-03-25 19:56:24 +00:00
shell-escape = "0.1.4"
2019-05-12 00:35:25 +00:00
strip-ansi-escapes = "0.1.0"
2022-06-01 10:17:15 +00:00
tar = { version = "0.4.38", default-features = false }
tempfile = "3.0"
termcolor = "1.1"
time = { version = "0.3", features = ["parsing", "formatting"]}
toml = "0.7.0"
toml_edit = "0.19.0"
unicode-width = "0.1.5"
unicode-xid = "0.2.0"
url = "2.2.2"
2019-03-13 03:33:45 +00:00
walkdir = "2.2"
[target.'cfg(not(windows))'.dependencies]
openssl = { version = "0.10.50", optional = true }
[target.'cfg(windows)'.dependencies]
2020-07-25 11:43:19 +00:00
fwdansi = "1.1.0"
2018-07-21 16:35:35 +00:00
2023-01-31 10:02:57 +00:00
[target.'cfg(windows)'.dependencies.windows-sys]
2023-04-23 19:39:27 +00:00
version = "0.48"
2018-01-03 19:25:28 +00:00
features = [
2023-01-31 10:02:57 +00:00
"Win32_Foundation",
"Win32_Storage_FileSystem",
"Win32_System_Console",
2023-01-31 10:02:57 +00:00
"Win32_System_IO",
"Win32_System_Threading",
"Win32_System_JobObjects",
"Win32_Security",
"Win32_System_SystemServices"
2018-01-03 19:25:28 +00:00
]
[dev-dependencies]
cargo-test-macro = { path = "crates/cargo-test-macro" }
cargo-test-support = { path = "crates/cargo-test-support" }
same-file = "1.0.6"
2022-11-03 04:15:48 +00:00
snapbox = { version = "0.4.0", features = ["diff", "path"] }
[build-dependencies]
flate2 = { version = "1.0.3", default-features = false, features = ["zlib"] }
2022-06-01 10:17:15 +00:00
tar = { version = "0.4.38", default-features = false }
2014-07-16 00:51:49 +00:00
[[bin]]
name = "cargo"
test = false
2014-08-14 21:54:56 +00:00
doc = false
[features]
2019-10-01 07:39:57 +00:00
vendored-openssl = ["openssl/vendored"]
vendored-libgit2 = ["libgit2-sys/vendored"]
2019-10-01 07:39:57 +00:00
pretty-env-logger = ["pretty_env_logger"]
# This is primarily used by rust-lang/rust distributing cargo the executable.
all-static = ['vendored-openssl', 'curl/static-curl', 'curl/force-system-lib-on-osx']