Conversation

ejona86

failOnVersionConflict has never been good for us. It is equivalent to
Maven dependencyConvergence which we discourage our users to use because
it is too tempermental and creates version skew issues over time.
However, we had no real alternative for determining if our deps would be
misinterpeted by Maven.

failOnVersionConflict has been a constant drain and makes it really hard
to do seemingly-trivial upgrades. As evidenced by protobuf/build.gradle,
in this change, it also caused us to introduce a version downgrade.

This introduces our own custom requireUpperBoundDeps implementation so
that we can get back to simple dependency upgrades and increase our
confidence in a consistent dependency tree.


The main build.gradle is where the real changes are, but the rest would
have been easy to introduce an accidental bug/change.

CC @elharo

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The buildscript change looks cool.

@ejona86

I'm going to wait until #8243 is in to resolve the build failure. I'll end up adding a direct dependency on error-prone from grpc-netty; right now it is getting error-prone transitively from Guava.

ejona86 added 4 commits June 8, 2021 15:26
failOnVersionConflict has never been good for us. It is equivalent to
Maven dependencyConvergence which we discourage our users to use because
it is too tempermental and _creates_ version skew issues over time.
However, we had no real alternative for determining if our deps would be
misinterpeted by Maven.

failOnVersionConflict has been a constant drain and makes it really hard
to do seemingly-trivial upgrades. As evidenced by protobuf/build.gradle
in this change, it also caused _us_ to introduce a version downgrade.

This introduces our own custom requireUpperBoundDeps implementation so
that we can get back to simple dependency upgrades _and_ increase our
confidence in a consistent dependency tree.
The changes didn't introduce a bug. It is just we previously excluded
and re-defined errorprone with guava such that it would be closer to the
root and ended up beating protobuf-java-util's dep.
@ejona86ejona86 force-pushed the requireUpperBoundDeps branch from 1052e18 to 1443ffc Compare June 8, 2021 22:27
@ejona86

Looks like #8243 did indeed solve the build failure.

@ejona86ejona86 merged commit 5642e01 into grpc:master Jun 11, 2021
@ejona86ejona86 deleted the requireUpperBoundDeps branch June 11, 2021 21:01
@ejona86ejona86 mentioned this pull request Jul 28, 2021
@github-actions-actions bot locked as resolved and limited conversation to collaborators Sep 10, 2021
Sign up for free to subscribe to this conversation on . Already have an account? Sign in.
None yet
None yet

Successfully merging this pull request may close these issues.