[workspace] resolver = "2" members = [ "crates/*", "credential/*", "benches/benchsuite", "benches/capture", ] exclude = [ "target/", # exclude bench testing ] [workspace.package] rust-version = "1.86" # MSRV:3 edition = "2021" license = "MIT OR Apache-2.0" homepage = "https://github.com/rust-lang/cargo" repository = "https://github.com/rust-lang/cargo" [workspace.dependencies] annotate-snippets = "0.11.5" anstream = "0.6.19" anstyle = "1.0.11" anyhow = "1.0.98" base64 = "0.22.1" blake3 = "1.8.2" build-rs = { version = "0.3.1", path = "crates/build-rs" } cargo = { path = "" } cargo-credential = { version = "0.4.2", path = "credential/cargo-credential" } cargo-credential-libsecret = { version = "0.5.0", path = "credential/cargo-credential-libsecret" } cargo-credential-macos-keychain = { version = "0.4.15", path = "credential/cargo-credential-macos-keychain" } cargo-credential-wincred = { version = "0.4.15", path = "credential/cargo-credential-wincred" } cargo-platform = { path = "crates/cargo-platform", version = "0.3.0" } cargo-test-macro = { version = "0.4.4", path = "crates/cargo-test-macro" } cargo-test-support = { version = "0.8.0", path = "crates/cargo-test-support" } cargo-util = { version = "0.2.22", path = "crates/cargo-util" } cargo-util-schemas = { version = "0.9.0", path = "crates/cargo-util-schemas" } cargo_metadata = "0.20.0" clap = "4.5.40" clap_complete = { version = "4.5.54", features = ["unstable-dynamic"] } color-print = "0.3.7" core-foundation = { version = "0.10.1", features = ["mac_os_10_7_support"] } crates-io = { version = "0.40.12", path = "crates/crates-io" } criterion = { version = "0.6.0", features = ["html_reports"] } curl = "0.4.48" curl-sys = "0.4.82" filetime = "0.2.25" flate2 = { version = "1.1.2", default-features = false, features = ["zlib-rs"] } git2 = "0.20.2" git2-curl = "0.21.0" # When updating this, also see if `gix-transport` further down needs updating or some auth-related tests will fail. gix = { version = "0.72.1", default-features = false, features = ["blocking-http-transport-curl", "progress-tree", "parallel", "dirwalk"] } glob = "0.3.2" # Pinned due to https://github.com/sunng87/handlebars-rust/issues/711 handlebars = { version = "=6.3.1", features = ["dir_source"] } hex = "0.4.3" hmac = "0.12.1" home = "0.5.11" http-auth = { version = "0.1.10", default-features = false } ignore = "0.4.23" im-rc = "15.1.0" indexmap = "2.10.0" itertools = "0.14.0" jiff = { version = "0.2.15", default-features = false, features = [ "std" ] } jobserver = "0.1.33" lazycell = "1.3.0" libc = "0.2.174" libgit2-sys = "0.18.2" libloading = "0.8.8" memchr = "2.7.5" miow = "0.6.0" opener = "0.8.2" openssl = "0.10.73" openssl-sys = "0.9.109" os_info = { version = "3.12.0", default-features = false } pasetors = { version = "0.7.6", features = ["v3", "paserk", "std", "serde"] } pathdiff = "0.2.3" percent-encoding = "2.3.1" pkg-config = "0.3.32" proptest = "1.7.0" pulldown-cmark = { version = "0.13.0", default-features = false, features = ["html"] } rand = "0.9.1" regex = "1.11.1" rusqlite = { version = "0.36.0", features = ["bundled"] } rustc-hash = "2.1.1" rustc-stable-hash = "0.1.2" rustfix = { version = "0.9.2", path = "crates/rustfix" } same-file = "1.0.6" schemars = "1.0.3" security-framework = "3.2.0" semver = { version = "1.0.26", features = ["serde"] } serde = "1.0.219" serde-untagged = "0.1.7" serde-value = "0.7.0" serde_ignored = "0.1.12" serde_json = "1.0.140" sha1 = "0.10.6" sha2 = "0.10.9" shell-escape = "0.1.5" similar = "2.7.0" supports-hyperlinks = "3.1.0" supports-unicode = "3.0.0" snapbox = { version = "0.6.21", features = ["diff", "dir", "term-svg", "regex", "json"] } tar = { version = "0.4.44", default-features = false } tempfile = "3.20.0" thiserror = "2.0.12" time = { version = "0.3.41", features = ["parsing", "formatting", "serde"] } toml = { version = "0.8.23", default-features = false } toml_edit = { version = "0.22.27", features = ["serde"] } tracing = { version = "0.1.41", default-features = false, features = ["std"] } # be compatible with rustc_log: https://github.com/rust-lang/rust/blob/e51e98dde6a/compiler/rustc_log/Cargo.toml#L9 tracing-chrome = "0.7.2" tracing-subscriber = { version = "0.3.19", features = ["env-filter"] } unicase = "2.8.1" unicode-ident = "1.0.18" unicode-width = "0.2.1" unicode-xid = "0.2.6" url = "2.5.4" varisat = "0.2.2" walkdir = "2.5.0" windows-sys = "0.60" [workspace.lints.rust] rust_2018_idioms = "warn" # TODO: could this be removed? [workspace.lints.rustdoc] private_intra_doc_links = "allow" [workspace.lints.clippy] all = { level = "allow", priority = -2 } correctness = { level = "warn", priority = -1 } dbg_macro = "warn" disallowed_methods = "warn" print_stderr = "warn" print_stdout = "warn" self_named_module_files = "warn" [package] name = "cargo" version = "0.91.0" edition.workspace = true license.workspace = true rust-version = "1.88" # MSRV:1 homepage = "https://doc.rust-lang.org/cargo/index.html" repository.workspace = true documentation = "https://docs.rs/cargo" description = """ Cargo, a package manager for Rust. """ [lib] name = "cargo" path = "src/cargo/lib.rs" [dependencies] annotate-snippets.workspace = true anstream.workspace = true anstyle.workspace = true anyhow.workspace = true base64.workspace = true blake3.workspace = true cargo-credential.workspace = true cargo-platform.workspace = true cargo-util-schemas.workspace = true cargo-util.workspace = true clap = { workspace = true, features = ["wrap_help"] } clap_complete.workspace = true 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 glob.workspace = true hex.workspace = true hmac.workspace = true home.workspace = true http-auth.workspace = true ignore.workspace = true im-rc.workspace = true indexmap.workspace = true itertools.workspace = true jiff.workspace = true jobserver.workspace = true lazycell.workspace = true libgit2-sys.workspace = true memchr.workspace = true opener.workspace = true os_info.workspace = true pasetors.workspace = true pathdiff.workspace = true rand.workspace = true regex.workspace = true rusqlite.workspace = true rustc-hash.workspace = true rustc-stable-hash.workspace = true rustfix.workspace = true same-file.workspace = true semver.workspace = true serde = { workspace = true, features = ["derive"] } serde-untagged.workspace = true serde_ignored.workspace = true serde_json = { workspace = true, features = ["raw_value"] } sha1.workspace = true shell-escape.workspace = true supports-hyperlinks.workspace = true supports-unicode.workspace = true tar.workspace = true tempfile.workspace = true thiserror.workspace = true time.workspace = true toml = { workspace = true, features = ["display", "parse"] } toml_edit.workspace = true tracing = { workspace = true, features = ["attributes"] } tracing-subscriber.workspace = true unicase.workspace = true unicode-width.workspace = true unicode-xid.workspace = true url.workspace = true walkdir.workspace = true [target.'cfg(target_has_atomic = "64")'.dependencies] tracing-chrome.workspace = true [target.'cfg(unix)'.dependencies] libc.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] annotate-snippets = { workspace = true, features = ["testing-colors"] } cargo-test-support.workspace = true gix = { workspace = true, features = ["revision"] } # When building Cargo for tests, a safety-measure in `gix` needs to be disabled # to allow sending credentials over HTTP connections. gix-transport = { version = "0.47.0", features = ["http-client-insecure-credentials"] } 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', 'vendored-libgit2'] [lints] workspace = true