Last active
January 3, 2020 14:16
-
-
Save hadronized/f1de73ae90d3e23321cf9358be2f6785 to your computer and use it in GitHub Desktop.
For Dylan Musk
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// A depends on B-0.1 and C-0.1 | |
// B depends on C-0.1 | |
// in C | |
struct Foo; | |
struct Bar; | |
// in A | |
fn foo(_: Foo, _: Bar); | |
// in B | |
fn zoo(_: Foo); | |
// NOW DYLAN, imagine that you update C to the following C-0.2, containing only: | |
struct Foo; | |
// Bar doesn’t exist anymore. B can update to C-0.2 so it’s not a breaking change for B (that we could release | |
// as B-0.1.1 for instance | |
// However, A is going to break and A’s devs don’t want to update yet. However, they would like to benefit from B-0.1.1 | |
// because it also has some bug fixes or whatever | |
// If you make B-0.1.1 by bumping its dependency to C-0.2, A is fucked, EVEN IF IT COULD HAVE UPDATED. | |
// The real solution is to use semver range on C in B: C = >= 0.1, < 0.3 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment