[workspace] resolver = "2" members = [ "crates/*", "credential/*", "benches/benchsuite", "benches/capture", ] exclude = [ "target/", # exclude bench testing ] [workspace.package] rust-version = "1.75" # 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.1" anstream = "0.6.13" anstyle = "1.0.6" anyhow = "1.0.81" base64 = "0.22.0" bytesize = "1.3" cargo = { path = "" } cargo-credential = { version = "0.4.2", path = "credential/cargo-credential" } cargo-credential-libsecret = { version = "0.4.2", path = "credential/cargo-credential-libsecret" } cargo-credential-macos-keychain = { version = "0.4.2", path = "credential/cargo-credential-macos-keychain" } cargo-credential-wincred = { version = "0.4.2", path = "credential/cargo-credential-wincred" } cargo-platform = { path = "crates/cargo-platform", version = "0.1.5" } cargo-test-macro = { version = "0.2.0", path = "crates/cargo-test-macro" } cargo-test-support = { version = "0.2.0", path = "crates/cargo-test-support" } cargo-util = { version = "0.2.9", path = "crates/cargo-util" } cargo-util-schemas = { version = "0.4.0", path = "crates/cargo-util-schemas" } cargo_metadata = "0.18.1" clap = "4.5.4" color-print = "0.3.5" core-foundation = { version = "0.9.4", features = ["mac_os_10_7_support"] } crates-io = { version = "0.40.0", path = "crates/crates-io" } criterion = { version = "0.5.1", features = ["html_reports"] } curl = "0.4.46" curl-sys = "0.4.72" filetime = "0.2.23" flate2 = { version = "1.0.28", default-features = false, features = ["zlib"] } git2 = "0.18.3" git2-curl = "0.19.0" gix = { version = "0.62.0", default-features = false, features = ["blocking-http-transport-curl", "progress-tree", "revision", "parallel", "dirwalk"] } glob = "0.3.1" handlebars = { version = "5.1.2", features = ["dir_source"] } hex = "0.4.3" hmac = "0.12.1" home = "0.5.9" http-auth = { version = "0.1.9", default-features = false } humantime = "2.1.0" ignore = "0.4.22" im-rc = "15.1.0" indexmap = "2" itertools = "0.12.1" jobserver = "0.1.28" lazycell = "1.3.0" libc = "0.2.153" libgit2-sys = "0.16.2" libloading = "0.8.3" memchr = "2.7.2" miow = "0.6.0" opener = "0.7.0" openssl = "0.10.57" openssl-sys = "=0.9.92" # See rust-lang/cargo#13546 and openssl/openssl#23376 for pinning os_info = { version = "3.8.2", default-features = false } pasetors = { version = "0.6.8", features = ["v3", "paserk", "std", "serde"] } pathdiff = "0.2" percent-encoding = "2.3" pkg-config = "0.3.30" proptest = "1.4.0" pulldown-cmark = { version = "0.10.2", default-features = false, features = ["html"] } rand = "0.8.5" regex = "1.10.4" rusqlite = { version = "0.31.0", features = ["bundled"] } rustfix = { version = "0.8.2", path = "crates/rustfix" } same-file = "1.0.6" security-framework = "2.10.0" semver = { version = "1.0.22", features = ["serde"] } serde = "1.0.197" serde-untagged = "0.1.5" serde-value = "0.7.0" serde_ignored = "0.1.10" serde_json = "1.0.115" sha1 = "0.10.6" sha2 = "0.10.8" shell-escape = "0.1.5" supports-hyperlinks = "3.0.0" snapbox = { version = "0.5.9", features = ["diff", "path", "term-svg"] } tar = { version = "0.4.40", default-features = false } tempfile = "3.10.1" thiserror = "1.0.58" time = { version = "0.3", features = ["parsing", "formatting", "serde"] } toml = "0.8.12" toml_edit = { version = "0.22.11", features = ["serde"] } tracing = "0.1.40" # 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.18", features = ["env-filter"] } unicase = "2.7.0" unicode-width = "0.1.11" unicode-xid = "0.2.4" url = "2.5.0" varisat = "0.2.2" walkdir = "2.5.0" windows-sys = "0.52" [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 = -1 } dbg_macro = "warn" disallowed_methods = "warn" print_stderr = "warn" print_stdout = "warn" self_named_module_files = "warn" [package] name = "cargo" version = "0.81.0" edition.workspace = true license.workspace = true rust-version = "1.77" # 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 bytesize.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"] } 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 humantime.workspace = true ignore.workspace = true im-rc.workspace = true indexmap.workspace = true itertools.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 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 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 url.workspace = true walkdir.workspace = true supports-unicode = "3.0.0" [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-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', 'vendored-libgit2'] [lints] workspace = true