Open kvtb opened 3 years ago
Although the file is optional, some Linux packages managers depend on it to build deterministically (https://github.com/NixOS/nixpkgs/pull/107557)
I think this also existed in 0.10 too, maybe not for tracing
but for other crates for sure.
It's duplicated because different packages require different versions of crates:
$ cargo tree -p tracing:0.1.19 -i
tracing v0.1.19 (https://github.com/tokio-rs/tracing?rev=f470db1b0354b368f62f9ee4d763595d16373231#f470db1b)
├── tracing-futures v0.2.6 (https://github.com/tokio-rs/tracing?rev=f470db1b0354b368f62f9ee4d763595d16373231#f470db1b)
│ └── tracing-tower v0.1.0 (https://github.com/tokio-rs/tracing?rev=f470db1b0354b368f62f9ee4d763595d16373231#f470db1b)
│ └── vector v0.12.0 (/home/kirill/projects/vector)
└── tracing-tower v0.1.0 (https://github.com/tokio-rs/tracing?rev=f470db1b0354b368f62f9ee4d763595d16373231#f470db1b) (*)
and
$ cargo tree -p tracing:0.1.22 -i
tracing v0.1.22
├── async-graphql v2.2.0
│ ├── async-graphql-warp v2.2.0
│ │ └── vector v0.12.0 (/home/kirill/projects/vector)
│ └── vector v0.12.0 (/home/kirill/projects/vector)
├── codec v0.1.0 (/home/kirill/projects/vector/lib/codec)
│ └── vector v0.12.0 (/home/kirill/projects/vector)
├── file-source v0.1.0 (/home/kirill/projects/vector/lib/file-source)
│ └── vector v0.12.0 (/home/kirill/projects/vector)
├── h2 v0.2.7
│ └── hyper v0.13.9 (https://github.com/hyperium/hyper?rev=a00cc20afc597cb55cbc62c70b0b25b46c82a0a6#a00cc20a)
│ ├── bollard v0.9.0
│ │ └── vector v0.12.0 (/home/kirill/projects/vector)
│ ├── hyper-openssl v0.8.1
│ │ └── vector v0.12.0 (/home/kirill/projects/vector)
│ ├── hyper-rustls v0.21.0
│ │ ├── bollard v0.9.0 (*)
│ │ └── reqwest v0.10.10
│ │ ├── goauth v0.8.1
│ │ │ └── vector v0.12.0 (/home/kirill/projects/vector)
│ │ ├── mongodb v1.1.1
│ │ │ └── vector v0.12.0 (/home/kirill/projects/vector)
│ │ └── vector-api-client v0.1.1 (/home/kirill/projects/vector/lib/vector-api-client)
│ │ └── vector v0.12.0 (/home/kirill/projects/vector)
│ │ [dev-dependencies]
│ │ └── vector v0.12.0 (/home/kirill/projects/vector)
│ ├── hyper-tls v0.4.3
│ │ ├── reqwest v0.10.10 (*)
│ │ └── rusoto_core v0.45.0
│ │ ├── rusoto_cloudwatch v0.45.0
│ │ │ └── vector v0.12.0 (/home/kirill/projects/vector)
│ │ ├── rusoto_firehose v0.45.0
│ │ │ └── vector v0.12.0 (/home/kirill/projects/vector)
│ │ ├── rusoto_kinesis v0.45.0
│ │ │ └── vector v0.12.0 (/home/kirill/projects/vector)
│ │ ├── rusoto_logs v0.45.0
│ │ │ └── vector v0.12.0 (/home/kirill/projects/vector)
│ │ ├── rusoto_s3 v0.45.0
│ │ │ └── vector v0.12.0 (/home/kirill/projects/vector)
│ │ ├── rusoto_sqs v0.45.0
│ │ │ └── vector v0.12.0 (/home/kirill/projects/vector)
│ │ ├── rusoto_sts v0.45.0
│ │ │ └── vector v0.12.0 (/home/kirill/projects/vector)
│ │ └── vector v0.12.0 (/home/kirill/projects/vector)
│ ├── hyper-unix-connector v0.1.5
│ │ └── bollard v0.9.0 (*)
│ ├── reqwest v0.10.10 (*)
│ ├── rusoto_core v0.45.0 (*)
│ ├── rusoto_credential v0.45.0
│ │ ├── rusoto_core v0.45.0 (*)
│ │ ├── rusoto_signature v0.45.0
│ │ │ ├── rusoto_core v0.45.0 (*)
│ │ │ └── vector v0.12.0 (/home/kirill/projects/vector)
│ │ └── vector v0.12.0 (/home/kirill/projects/vector)
│ ├── rusoto_signature v0.45.0 (*)
│ ├── vector v0.12.0 (/home/kirill/projects/vector)
│ └── warp v0.2.5
│ ├── async-graphql-warp v2.2.0 (*)
│ └── vector v0.12.0 (/home/kirill/projects/vector)
├── hyper v0.13.9 (https://github.com/hyperium/hyper?rev=a00cc20afc597cb55cbc62c70b0b25b46c82a0a6#a00cc20a) (*)
├── metrics-tracing-context v0.1.0-alpha.5
│ └── vector v0.12.0 (/home/kirill/projects/vector)
├── remap-functions v0.1.0 (/home/kirill/projects/vector/lib/remap-functions)
│ └── vector v0.12.0 (/home/kirill/projects/vector)
├── shared v0.1.0 (/home/kirill/projects/vector/lib/shared)
│ ├── remap-functions v0.1.0 (/home/kirill/projects/vector/lib/remap-functions) (*)
│ └── vector v0.12.0 (/home/kirill/projects/vector)
├── tower v0.3.1 (https://github.com/tower-rs/tower?rev=43168944220ed32dab83cb4f11f7b97abc5818d5#43168944)
│ └── vector v0.12.0 (/home/kirill/projects/vector)
├── tracing-futures v0.2.4
│ ├── h2 v0.2.7 (*)
│ ├── vector v0.12.0 (/home/kirill/projects/vector)
│ └── warp v0.2.5 (*)
├── tracing-subscriber v0.2.15
│ ├── metrics-tracing-context v0.1.0-alpha.5 (*)
│ ├── tracing-limit v0.1.0 (/home/kirill/projects/vector/lib/tracing-limit)
│ │ └── vector v0.12.0 (/home/kirill/projects/vector)
│ └── vector v0.12.0 (/home/kirill/projects/vector)
├── vector v0.12.0 (/home/kirill/projects/vector)
└── warp v0.2.5 (*)
Duplicates might be OK, but cargo vendor
does fail processing lock-file with duplicates.
It looks like an inconsistency in cargo
: they should either let cargo vendor
download all versions or (if the minor is ignored) not to write both versions to Cargo.lock
cargo build
does download tracing 0.1.22
but not tracing 0.1.19
.
cargo vendor
downloads both and discovers the conflict
I just checked tracing
related crates and think that cargo vendor
will be ok when we switch tracing-tower
from git
to crates.io
. Not sure when this happens, maybe on 0.1.0
release?
yes
-tracing-tower = { git = "https://github.com/tokio-rs/tracing", rev = "f470db1b0354b368f62f9ee4d763595d16373231" }
+tracing-tower = "0.0.0"
makes cargo vendor
happy
but it removes version pinning
Blocked on tracing-tower version update and crate release.
tracing-tower
still appears to be unreleased, see https://github.com/tokio-rs/tracing/issues/238
Cargo.lock has duplicate packages since 0.11.0, namely
tracing-*
family https://github.com/timberio/vector/blob/aa4de87a15368fd0eb85ba68e03fbe1cc77ee88c/Cargo.lock#L6716-L6728 Could you regenerate it ?