Clone jars rather than mutating them during ivy resolve

Review Request #3203 - Created Dec. 2, 2015 and submitted

Stu Hood
jsirois, lahosken, nhoward_tw, zundel

The excludes (for 'provided'/round-trip deps) added to jars during ivy resolve are only useful in that scope, but because they remain in the graph, they can end up affecting the excludes written during ./pants publish (and probably also the runtime performance of classpath calculation).

  • Made JarDependency immutable by extending datatype
  • Switched mutators to the jar.copy(**replacements) API
  • Fixup the build dictionary to support namedtuple/datatype subclasses, which don't have __init__

While this is technically a breaking change, I think it's easy to make an argument for closing a loophole that allows for strange sideeffects in the build graph.


  • 0
  • 3
  • 1
  • 4
Description From Last Updated
Eric Ayers
John Sirois
Stu Hood
John Sirois
John Sirois
Stu Hood
Stu Hood
Stu Hood
Nick Howard (Twitter)
Stu Hood
Stu Hood
Review request changed

Status: Closed (submitted)

Change Summary:

Merged as 974772f89b4d601083bd98fecd020726490ffab6