Multiple dependency_managements with multiple ivy resolves.

Review Request #3367 - Created Jan. 23, 2016 and submitted

Information
Garrett Malmquist
pants
gmalmquist/dependency-management-pass-2
2830
Reviewers
pants-reviews
benjyw, nhoward_tw, patricklaw, stuhood, zundel

This is the second pass of implementing dependency management in
pants.

The first pass was reviewed here:

https://rbcommons.com/s/twitter/r/3336/

The design document is available here:

https://docs.google.com/document/d/1AM_0e1Az_NHtR150Zsuyaa6u7InzBQGLq8MrUT57Od8/edit#

This change allows managed_jar_dependencies targets to be chained
together; the set of pinned artifact is the union of all jar
coordinates specified by the transitive closure of the target
specified in a jar_library's managed_dependencies field.

When there are conflicts between dependencies in the transitive
closure, the default behavior is to raise an error. Optionally,
if using --no-jar-dependency-management-require-disjoint-sets,
the most direct version (the first version encountered in a BFS)
will be used, and a warning will be logged.

The change to make ivy do multiple resolves is fairly simple; see
ivy_task_mixin.py's resolve() method.

Added integration tests for running multiple resolves, and for the new managed_jar_libraries factory.

Added unit tests for transitive artifact set calculation.

CI went green here: https://travis-ci.org/pantsbuild/pants/builds/104711840
CI went green here: https://travis-ci.org/pantsbuild/pants/builds/104947421
CI went green here: https://travis-ci.org/pantsbuild/pants/builds/104985770

Issues

  • 0
  • 2
  • 0
  • 2
Description From Last Updated
Benjy Weinberger
Eric Ayers
Garrett Malmquist
Garrett Malmquist
Eric Ayers
Garrett Malmquist
Benjy Weinberger
Garrett Malmquist
Benjy Weinberger
Garrett Malmquist
Garrett Malmquist
Review request changed

Status: Closed (submitted)

Change Summary:

In commit 39223aba9c0b2494f8a0cdef753fdbf19956e11c, thanks Benjy, Eric, and Patrick

Loading...