Skip to content

Instantly share code, notes, and snippets.

@hadronized
Last active January 3, 2020 14:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save hadronized/f1de73ae90d3e23321cf9358be2f6785 to your computer and use it in GitHub Desktop.
Save hadronized/f1de73ae90d3e23321cf9358be2f6785 to your computer and use it in GitHub Desktop.
For Dylan Musk
// 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