Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrades gradle wrapper to the latest version #2865

Merged
merged 29 commits into from
Jan 29, 2018
Merged

Conversation

gsheasby
Copy link
Contributor

@gsheasby gsheasby commented Jan 15, 2018

Started as a copy of #2824... became a massive hunt for broken and outdated dependencies.

Goals: eliminate dependency conflicts across the repo

Implementation description

  • Upgrade nebula and sls-packaging to their latest versions
  • Apply the correct force strategy to clear out the duplicated dependencies
  • Add timelock.props (and later qos.props) to make explicit the special dependencies used by Timelock and QoS
  • Fine-tune the dependency bumps to correct test failures

The root cause of the test failures was that Timelock and QoS each have a special set of dependencies. QoS was simply using Timelock's old, kind of janky dependency specification logic. QoS needs some of the same custom dependencies as Timelock, but not all. This is now made explicit via qos.props and timelock.props

Future work

  • There's still some special dependency logic in versions.gradle - we should unify this with the props files so that dependencies are specified in one place.
  • @iamdanfox suggested that we can/should get rid of the troublesome *.lock files entirely, but this is beyond the scope of this PR
  • Upgrade baseline/errorprone (we're on v13, v18 is available)
  • The baseline/errorprone upgrade flagged a couple of errors in PTExecutors.java; I'll open a separate PR for this after this merges, possibly as part of MMM next week.

This change is Reviewable

@gsheasby gsheasby added the small label Jan 15, 2018
@gsheasby gsheasby changed the title Upgrads gradle wrapper to the latest version Upgrades gradle wrapper to the latest version Jan 15, 2018
Copy link
Contributor

@jeremyk-91 jeremyk-91 left a comment

Choose a reason for hiding this comment

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

Hmm. The change looks alright (verified it is the same as the one excavator-bot tried to do), but it seems that something might have changed in gradle-sls-packaging or the nebula publishing plugin perhaps:

[00:00:17] FAILURE: Build failed with an exception.
[00:00:17] 
[00:00:17] * Where:
[00:00:17] Script '/home/ubuntu/atlasdb-internal-testing/gradle/publish-jars.gradle' line: 4
[00:00:17] 
[00:00:17] * What went wrong:
[00:00:17] A problem occurred evaluating script.
[00:00:17] > Failed to apply plugin [id 'com.jfrog.artifactory']
[00:00:17]    > Could not create task of type 'ArtifactoryTask'.
[00:00:17] 
[00:00:17] * Try:
[00:00:17] Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
[00:00:17] 
[00:00:17] BUILD FAILED
[00:00:17] 
[00:00:17] Total time: 17.151 secs

@gsheasby gsheasby assigned gsheasby and unassigned jeremyk-91 Jan 16, 2018
@gsheasby
Copy link
Contributor Author

@jeremyk-91 I'll own investigating what's going on here.

@gsheasby
Copy link
Contributor Author

There's a dependency conflict somewhere in the buildscript dependencies, relating to guava:

Caused by: java.lang.NoSuchMethodError: com.google.common.collect.ArrayListMultimap.create()Lcom/google/common/collect/ArrayListMultimap;

However, I can't run depencencyInsight because I hit the same roadblock!

@gsheasby gsheasby removed the small label Jan 19, 2018
@gsheasby gsheasby assigned jeremyk-91 and unassigned gsheasby Jan 25, 2018
@gsheasby
Copy link
Contributor Author

Reassigning to @jeremyk-91 for review. However, this PR has high potential for merge conflicts, and there's also the danger that someone will, in the meantime, introduce something that will make the new dependency-recommender version freak out.

Copy link
Contributor

@jeremyk-91 jeremyk-91 left a comment

Choose a reason for hiding this comment

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

I've sanity checked the changes - looks reasonable, and the new structure of dependencies for QoS and TimeLock is considerably more readable.

Agree that the points under 'future work' should indeed be future work - this is already a fairly large PR.

new GreaterOrEqual<>(lowerBoundInclusive),
new LessThan<>(upperBoundExclusive)
));
}
Copy link
Contributor

Choose a reason for hiding this comment

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

Nice.

static void sanityCheckTableName(TableReference tableRef) {
String tableName = tableRef.getQualifiedName();
Validate.isTrue(!(tableName.startsWith("_") && tableName.contains("."))
|| AtlasDbConstants.hiddenTables.contains(tableRef)
|| tableName.startsWith(AtlasDbConstants.NAMESPACE_PREFIX), "invalid tableName: " + tableName);
|| tableName.startsWith(AtlasDbConstants.NAMESPACE_PREFIX),
"invalid tableName: %s", tableName);
Copy link
Contributor

Choose a reason for hiding this comment

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

nice, no idea we used commons-lang for these

@gsheasby gsheasby merged commit a7c40bd into develop Jan 29, 2018
@gsheasby gsheasby deleted the deps/sls-packaging-2-7 branch January 29, 2018 13:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants