Skip to content

Eliminate multiple versions of the same crate within our transitive dependencies #433

Closed
@bstrie

Description

@bstrie

Low-priority successor to #387 which should wait for #140 to be addressed first. Currently our full crate graph contains several different copies of the same dependency, due to some of our dependencies requiring incompatible versions. We can see these by running git grep "name =" Cargo.lock | uniq -c | grep -v "1 Cargo.lock" | sort -r, which as of today gives me:

   3 Cargo.lock:name = "rand_core"
   3 Cargo.lock:name = "rand"
   2 Cargo.lock:name = "winapi"
   2 Cargo.lock:name = "url"
   2 Cargo.lock:name = "unicode-xid"
   2 Cargo.lock:name = "unicase"
   2 Cargo.lock:name = "syn"
   2 Cargo.lock:name = "serde_urlencoded"
   2 Cargo.lock:name = "rand_os"
   2 Cargo.lock:name = "rand_hc"
   2 Cargo.lock:name = "rand_chacha"
   2 Cargo.lock:name = "quote"
   2 Cargo.lock:name = "proc-macro2"
   2 Cargo.lock:name = "percent-encoding"
   2 Cargo.lock:name = "mime_guess"
   2 Cargo.lock:name = "mime"
   2 Cargo.lock:name = "log"
   2 Cargo.lock:name = "idna"

This could be partially addressed by pruning unnecessary dependencies from our crate graph (which is why this ought to wait for #140 first), but ultimately this might require manually patching dependencies who are slow to update.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions