Github user srowen commented on the pull request:

    https://github.com/apache/spark/pull/1813#issuecomment-51602338
  
    @pwendell This is complicated, so let me summarize what I think I 
understand and then give an opinion.
    
    The plan at hand concerned changes to the assembly JARs, pretty much 
exclusively. Spark continues to depend on Guava in order to compile, and so 
that consumers of Spark also see this dependency in their builds.
    
    (You can see the discussion with @vanzin about whether to alter how 
downstream consumers of the Maven build see the Guava dependency -- `provided` 
vs `compile` vs `optional` -- but this doesn't affect the assembly, and only 
affects whether Guava automatically becomes a part of the downstream consumer's 
classpath. I still have a minor issue with `provided`, but unless @pwendell has 
any opinion on this, consider me outvoted.)
    
    So I think the proposal was already to continue showing a dependency on 
Guava, but, to alter the assembly to include only `Optional`, and shaded copies 
of all else. And maybe to tweak the dependency to hide it by default for 
downstream consumers.
    
    Inlining the shaded JARs is all but like removing use of Guava, as far as 
the world is concerned. That certainly takes it out of the picture. The little 
snag is Optional. It will now inevitably collide with any other app that builds 
Guava in too. And downstream consumers can't manage away the conflict normally. 
It may either be a harmless warning or cause a real problem if Optional changes 
later. In general I don't like pushing the shading into the compile-time world. 
Remember the `hive-exec` awfulness? This would not be my first choice, versus:
    
    I think your second paragraph is basically the same thing proposed already, 
with one difference. Yes, the build still continues to say it depends on Guava. 
The concrete assembly is put together differently. I think you *can* use 
Guava's Optional rather than embedding a source copy of it and compiling that. 
Right @vanzin? with some shading cleverness?



---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to