Change ivy resolve ordering to attempt load first and fall back to full resolve if load fails.

Review Request #3501 - Created Feb. 25, 2016 and submitted

Information
Nick Howard (Twitter)
pants
2967
Reviewers
pants-reviews
benjyw, gmalmquist, jsirois, patricklaw, stuhood, zundel

I've been working on splitting resolve into a resolve and fetch. This patch backports the structural approach I've ended up with. In it, we bias towards the faster, loading paths first, checking for their preconditions and falling through to the calling out to ivy paths if they aren't met.

The current implementation instead checks to see if work is needed, then falls through to loading if it is not. The problem with that approach is that if it turns out that the loaded resolve is incomplete, we can't complete it--we'll blow up somewhere later. This problem would become bigger with more potential loading and resolving paths. Moving to the new model makes adding more loading and resolving mechanisms easier.

  • Move ivy reports to resolve workdir after successful resolves.
  • Introduce class to encapsulate the result of a ivy resolve.
  • Fall back to a full resolve when any ivy symlink points to a missing file.
  • Bump the implementation version.
  • Make parsing an Ivy report via a path public.
  • Update docstrings for resolve and ivy_classpath.

Running jvm tests in a large subgraph locally. CI passed at https://travis-ci.org/pantsbuild/pants/builds/112160887

Issues

  • 0
  • 5
  • 0
  • 5
Description From Last Updated
Nick Howard (Twitter)
Nick Howard (Twitter)
Stu Hood
Eric Ayers
Eric Ayers
Benjy Weinberger
Benjy Weinberger
Benjy Weinberger
Nick Howard (Twitter)
Nick Howard (Twitter)
Review request changed

Status: Closed (submitted)

Change Summary:

https://github.com/pantsbuild/pants/commit/cf324bd1d703a69d616e48ea1936efee16e3105f

Nick Howard (Twitter)

Thanks folks! Submitted at https://github.com/pantsbuild/pants/commit/cf324bd1d703a69d616e48ea1936efee16e3105f

Loading...