-
Notifications
You must be signed in to change notification settings - Fork 40
Description
According to the docs on https://pubgrub-rs-guide.pages.dev/limitations/multiple_versions
Are buckets enought? Not quite, since once we introduce buckets, we also need a way to depend on multiple buckets alternatively. Indeed, most packages should have dependencies on a single bucket, because it doesn't make sense to depend on potentially incompatible versions at the same time. But rarely, dependencies are written such that they can depend on multiple buckets, such as if one write v >= 2.0. Then, any version from the 2.0 bucket would satisfy it, as well as any version from the 3.0 or any other later bucket. Thus, we cannot write "a depends on b in bucket 2.0". So how do we write dependencies of "a"? That's where we introduce the concept of proxies.
this part: doesn't make sense to depend on potentially incompatible versions at the same time
isnt entirely correct.
Some examples of this are: https://github.com/diesel-rs/diesel/blob/780a7211020a6a5af27c1258a666365588e632a5/diesel/Cargo.toml#L35
In this example diesel has checked their code and has confirmed that their code is compatible with uuid from versions 0.7.0
up to 2.0.0
.