mirror of
https://github.com/rust-lang/cargo
synced 2024-07-17 11:08:08 +00:00
![Eric Huss](/assets/img/avatar_default.png)
This adds a garbage collector which will remove old files from cargo's global cache. A general overview of the changes here: - `cargo::core::global_cache_tracker` contains the `GlobalCacheTracker` which handles the interface to a sqlite database which stores timestamps of the last time a file was used. - `DeferredGlobalLastUse` is a type that implements an optimization for collecting last-use timestamps so that they can be flushed to disk all at once. - `cargo::core::gc` contains the `Gc` type which is the interface for performing garbage collection. It coordinates with the `GlobalCacheTracker` for determining what to delete. - Garbage collection can either be automatic or manual. The automatic garbage collection supports some config options for defining when it runs and how much it deletes. - Manual garbage collection can be performed via options to `cargo clean`. - `cargo clean` uses the new package cache locking system to coordinate access to the package cache to prevent interference with other cargo commands running concurrently.
237 lines
6.6 KiB
TOML
237 lines
6.6 KiB
TOML
[workspace]
|
|
resolver = "2"
|
|
members = [
|
|
"crates/*",
|
|
"credential/*",
|
|
"benches/benchsuite",
|
|
"benches/capture",
|
|
]
|
|
exclude = [
|
|
"target/", # exclude bench testing
|
|
]
|
|
|
|
[workspace.package]
|
|
rust-version = "1.73" # MSRV:1
|
|
edition = "2021"
|
|
license = "MIT OR Apache-2.0"
|
|
|
|
[workspace.dependencies]
|
|
anstream = "0.6.4"
|
|
anstyle = "1.0.4"
|
|
anyhow = "1.0.75"
|
|
base64 = "0.21.5"
|
|
bytesize = "1.3"
|
|
cargo = { path = "" }
|
|
cargo-credential = { version = "0.4.0", path = "credential/cargo-credential" }
|
|
cargo-credential-libsecret = { version = "0.3.1", path = "credential/cargo-credential-libsecret" }
|
|
cargo-credential-macos-keychain = { version = "0.3.0", path = "credential/cargo-credential-macos-keychain" }
|
|
cargo-credential-wincred = { version = "0.3.0", path = "credential/cargo-credential-wincred" }
|
|
cargo-platform = { path = "crates/cargo-platform", version = "0.1.4" }
|
|
cargo-test-macro = { path = "crates/cargo-test-macro" }
|
|
cargo-test-support = { path = "crates/cargo-test-support" }
|
|
cargo-util = { version = "0.2.6", path = "crates/cargo-util" }
|
|
cargo_metadata = "0.18.1"
|
|
clap = "4.4.7"
|
|
color-print = "0.3.5"
|
|
core-foundation = { version = "0.9.3", features = ["mac_os_10_7_support"] }
|
|
crates-io = { version = "0.39.0", path = "crates/crates-io" }
|
|
criterion = { version = "0.5.1", features = ["html_reports"] }
|
|
curl = "0.4.44"
|
|
curl-sys = "0.4.68"
|
|
filetime = "0.2.22"
|
|
flate2 = { version = "1.0.28", default-features = false, features = ["zlib"] }
|
|
git2 = "0.18.1"
|
|
git2-curl = "0.19.0"
|
|
gix = { version = "0.55.2", default-features = false, features = ["blocking-http-transport-curl", "progress-tree", "revision"] }
|
|
gix-features-for-configuration-only = { version = "0.35.0", package = "gix-features", features = [ "parallel" ] }
|
|
glob = "0.3.1"
|
|
handlebars = { version = "3.5.5", features = ["dir_source"] }
|
|
hex = "0.4.3"
|
|
hmac = "0.12.1"
|
|
home = "0.5.5"
|
|
http-auth = { version = "0.1.8", default-features = false }
|
|
humantime = "2.1.0"
|
|
ignore = "0.4.20"
|
|
im-rc = "15.1.0"
|
|
indexmap = "2"
|
|
itertools = "0.11.0"
|
|
jobserver = "0.1.27"
|
|
lazycell = "1.3.0"
|
|
libc = "0.2.149"
|
|
libgit2-sys = "0.16.1"
|
|
libloading = "0.8.1"
|
|
memchr = "2.6.4"
|
|
miow = "0.6.0"
|
|
opener = "0.6.1"
|
|
openssl ="0.10.57"
|
|
os_info = "3.7.0"
|
|
pasetors = { version = "0.6.7", features = ["v3", "paserk", "std", "serde"] }
|
|
pathdiff = "0.2"
|
|
percent-encoding = "2.3"
|
|
pkg-config = "0.3.27"
|
|
pretty_assertions = "1.4.0"
|
|
proptest = "1.3.1"
|
|
pulldown-cmark = { version = "0.9.3", default-features = false }
|
|
rand = "0.8.5"
|
|
regex = "1.9.3"
|
|
rusqlite = { version = "0.29.0", features = ["bundled"] }
|
|
rustfix = "0.6.1"
|
|
same-file = "1.0.6"
|
|
security-framework = "2.9.2"
|
|
semver = { version = "1.0.20", features = ["serde"] }
|
|
serde = "1.0.190"
|
|
serde-untagged = "0.1.1"
|
|
serde-value = "0.7.0"
|
|
serde_ignored = "0.1.9"
|
|
serde_json = "1.0.108"
|
|
sha1 = "0.10.6"
|
|
sha2 = "0.10.8"
|
|
shell-escape = "0.1.5"
|
|
supports-hyperlinks = "2.1.0"
|
|
snapbox = { version = "0.4.14", features = ["diff", "path"] }
|
|
syn = { version = "2.0.38", features = ["extra-traits", "full"] }
|
|
tar = { version = "0.4.40", default-features = false }
|
|
tempfile = "3.8.1"
|
|
thiserror = "1.0.50"
|
|
time = { version = "0.3", features = ["parsing", "formatting", "serde"] }
|
|
toml = "0.8.6"
|
|
toml_edit = { version = "0.20.7", features = ["serde"] }
|
|
tracing = "0.1.40"
|
|
tracing-subscriber = { version = "0.3.17", features = ["env-filter"] }
|
|
unicase = "2.7.0"
|
|
unicode-width = "0.1.11"
|
|
unicode-xid = "0.2.4"
|
|
url = "2.4.1"
|
|
varisat = "0.2.2"
|
|
walkdir = "2.4.0"
|
|
windows-sys = "0.48"
|
|
|
|
[package]
|
|
name = "cargo"
|
|
version = "0.76.0"
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
rust-version.workspace = true
|
|
homepage = "https://crates.io"
|
|
repository = "https://github.com/rust-lang/cargo"
|
|
documentation = "https://docs.rs/cargo"
|
|
description = """
|
|
Cargo, a package manager for Rust.
|
|
"""
|
|
|
|
[lib]
|
|
name = "cargo"
|
|
path = "src/cargo/lib.rs"
|
|
|
|
[dependencies]
|
|
anstream.workspace = true
|
|
anstyle.workspace = true
|
|
anyhow.workspace = true
|
|
base64.workspace = true
|
|
bytesize.workspace = true
|
|
cargo-credential.workspace = true
|
|
cargo-platform.workspace = true
|
|
cargo-util.workspace = true
|
|
clap = { workspace = true, features = ["wrap_help"] }
|
|
color-print.workspace = true
|
|
crates-io.workspace = true
|
|
curl = { workspace = true, features = ["http2"] }
|
|
curl-sys.workspace = true
|
|
filetime.workspace = true
|
|
flate2.workspace = true
|
|
git2.workspace = true
|
|
git2-curl.workspace = true
|
|
gix.workspace = true
|
|
gix-features-for-configuration-only.workspace = true
|
|
glob.workspace = true
|
|
hex.workspace = true
|
|
hmac.workspace = true
|
|
home.workspace = true
|
|
http-auth.workspace = true
|
|
humantime.workspace = true
|
|
ignore.workspace = true
|
|
im-rc.workspace = true
|
|
indexmap.workspace = true
|
|
itertools.workspace = true
|
|
jobserver.workspace = true
|
|
lazycell.workspace = true
|
|
libc.workspace = true
|
|
libgit2-sys.workspace = true
|
|
memchr.workspace = true
|
|
opener.workspace = true
|
|
os_info.workspace = true
|
|
pasetors.workspace = true
|
|
pathdiff.workspace = true
|
|
pulldown-cmark.workspace = true
|
|
rand.workspace = true
|
|
regex.workspace = true
|
|
rusqlite.workspace = true
|
|
rustfix.workspace = true
|
|
semver.workspace = true
|
|
serde = { workspace = true, features = ["derive"] }
|
|
serde-untagged.workspace = true
|
|
serde-value.workspace = true
|
|
serde_ignored.workspace = true
|
|
serde_json = { workspace = true, features = ["raw_value"] }
|
|
sha1.workspace = true
|
|
shell-escape.workspace = true
|
|
supports-hyperlinks.workspace = true
|
|
syn.workspace = true
|
|
tar.workspace = true
|
|
tempfile.workspace = true
|
|
time.workspace = true
|
|
toml.workspace = true
|
|
toml_edit.workspace = true
|
|
tracing.workspace = true
|
|
tracing-subscriber.workspace = true
|
|
unicase.workspace = true
|
|
unicode-width.workspace = true
|
|
unicode-xid.workspace = true
|
|
url.workspace = true
|
|
walkdir.workspace = true
|
|
|
|
[target.'cfg(target_os = "linux")'.dependencies]
|
|
cargo-credential-libsecret.workspace = true
|
|
|
|
[target.'cfg(target_os = "macos")'.dependencies]
|
|
cargo-credential-macos-keychain.workspace = true
|
|
|
|
[target.'cfg(not(windows))'.dependencies]
|
|
openssl = { workspace = true, optional = true }
|
|
|
|
[target.'cfg(windows)'.dependencies]
|
|
cargo-credential-wincred.workspace = true
|
|
|
|
[target.'cfg(windows)'.dependencies.windows-sys]
|
|
workspace = true
|
|
features = [
|
|
"Win32_Foundation",
|
|
"Win32_Security",
|
|
"Win32_Storage_FileSystem",
|
|
"Win32_System_IO",
|
|
"Win32_System_Console",
|
|
"Win32_System_JobObjects",
|
|
"Win32_System_Threading",
|
|
]
|
|
|
|
[dev-dependencies]
|
|
cargo-test-macro.workspace = true
|
|
cargo-test-support.workspace = true
|
|
same-file.workspace = true
|
|
snapbox.workspace = true
|
|
|
|
[build-dependencies]
|
|
flate2.workspace = true
|
|
tar.workspace = true
|
|
|
|
[[bin]]
|
|
name = "cargo"
|
|
test = false
|
|
doc = false
|
|
|
|
[features]
|
|
vendored-openssl = ["openssl/vendored"]
|
|
vendored-libgit2 = ["libgit2-sys/vendored"]
|
|
# 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']
|