-
Notifications
You must be signed in to change notification settings - Fork 785
Description
I notice that I get a lot of rebuilds of dependencies of my crate, that depend on ring.
In particular, an easily repeatable one is when I run "cargo test". It starts a rebuild of some dependencies starting with ring:
Compiling ring v0.17.14
Compiling rustls v0.23.35
Compiling rustls-webpki v0.103.8
Compiling tokio-rustls v0.26.4
Compiling iroh-quinn-proto v0.13.0
Compiling hyper-rustls v0.27.7
Compiling hickory-proto v0.25.2
Compiling tokio-websockets v0.12.3
Compiling rustls-platform-verifier v0.5.3
Compiling reqwest v0.12.25
Compiling iroh-quinn v0.14.0
Compiling pkarr v5.0.0
Compiling hickory-resolver v0.25.2
Compiling iroh-relay v0.95.1
Compiling iroh v0.95.1
These are the dependencies on ring:
cargo tree -i ring
ring v0.17.14
├── iroh-quinn-proto v0.13.0
│ ├── iroh v0.95.1
│ │ ├── pigglet v0.7.3 (/Users/amackenz/workspace/pigg/pigglet)
│ │ ├── piggui v0.7.3 (/Users/amackenz/workspace/pigg/piggui)
│ │ └── pignet v0.7.3 (/Users/amackenz/workspace/pigg/pignet)
│ │ └── piggui v0.7.3 (/Users/amackenz/workspace/pigg/piggui)
│ │ [dev-dependencies]
│ │ ├── pigglet v0.7.3 (/Users/amackenz/workspace/pigg/pigglet)
│ │ └── piggui v0.7.3 (/Users/amackenz/workspace/pigg/piggui)
│ ├── iroh-quinn v0.14.0
│ │ ├── iroh v0.95.1 (*)
│ │ └── iroh-relay v0.95.1
│ │ └── iroh v0.95.1 (*)
│ └── iroh-relay v0.95.1 (*)
├── rustls v0.23.35
│ ├── hickory-proto v0.25.2
│ │ └── hickory-resolver v0.25.2
│ │ ├── iroh v0.95.1 (*)
│ │ └── iroh-relay v0.95.1 (*)
│ ├── hickory-resolver v0.25.2 (*)
│ ├── hyper-rustls v0.27.7
│ │ └── reqwest v0.12.25
│ │ ├── iroh v0.95.1 (*)
│ │ ├── iroh-relay v0.95.1 (*)
│ │ └── pkarr v5.0.0
│ │ ├── iroh v0.95.1 (*)
│ │ └── iroh-relay v0.95.1 (*)
│ ├── iroh v0.95.1 (*)
│ ├── iroh-quinn v0.14.0 (*)
│ ├── iroh-quinn-proto v0.13.0 (*)
│ ├── iroh-relay v0.95.1 (*)
│ ├── reqwest v0.12.25 (*)
│ ├── rustls-platform-verifier v0.5.3
│ │ └── iroh v0.95.1 (*)
│ └── tokio-rustls v0.26.4
│ ├── hickory-proto v0.25.2 (*)
│ ├── hickory-resolver v0.25.2 (*)
│ ├── hyper-rustls v0.27.7 (*)
│ ├── iroh-relay v0.95.1 (*)
│ ├── reqwest v0.12.25 (*)
│ └── tokio-websockets v0.12.3
│ └── iroh-relay v0.95.1 (*)
├── rustls-webpki v0.103.8
│ ├── iroh v0.95.1 (*)
│ └── rustls v0.23.35 (*)
└── tokio-websockets v0.12.3 (*)
I took a quick look at ring's build.rs to see if I could see anything obvious.
One thing I noticed was that it seems to output the cargo instruction to rebuild if change for the "$OUTDIR" environment variable.
I didn't epect that and wonder if that is correct.
Other than that, what else could be triggering ring rebuild, when no other changes are made and I literally type "cargo test" twice in a row?
It doesn't happen with two invocations of "cargo build", but I do see rebuilds starting with ring without making changes to it's version or (AFAIK) other things that I would expect to trigger a rebuild.