On 11 Dec 2013, at 15:03, Sam Berlin <[email protected]> wrote:

> Interesting.  That would certainly solve our "lambdas in java8" problem right 
> now -- folks can upgrade to ASM5-beta at their leisure.
> 
> Stuart -- any idea how hard it would be for the POMs to generate both a deps 
> & no-deps version?

It’s possible, the main issue would be what to do with the CGLIB and ASM 
dependencies in the POM - if we mark them as optional or provided then that’s 
fine for the "no-deps" flavour but anyone wanting to use the “deps" flavour 
would need to redeclare these two dependencies in their POM (as they wouldn’t 
then get them for free as transitive dependencies: 
http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html).
 On the other hand if we mark them as non-optional then they would always be 
pulled in transitively for the “no-deps” flavour even though they aren’t 
required, which could mess up peoples builds if they’re not expecting them to 
be pulled in.

The recommended way to solve this in Maven-land would be to have two POMs; 
where the second POM takes the artifact built by the first POM, does the 
jarjar’ing for the “no-deps” flavour, and hides the embedded dependencies. This 
does mean that the “deps” and “no-deps” flavours would need to have different 
artifactIds. So which flavour gets to use the current “com.google.inject:guice” 
coordinates? You could argue that the “no-deps” flavour should, for backwards 
compatibility reasons. In which case we could use 
“com.google.inject:guice-core” for the “deps” flavour. Other suggestions are 
welcome.

Another issue is which flavour should the extensions then build against and 
depend on - presumably the “no-deps” flavour for backwards compatibility?

I’ll try out various options and put together a patch for review.

> sam
> 
> On Wed, Dec 11, 2013 at 4:51 AM, Thomas Broyer <[email protected]> wrote:
> 
> 
> On Tuesday, December 10, 2013 7:24:56 PM UTC+1, Sam Berlin wrote:
> So far, it's pretty much unanimous that we should make Guava a real 
> dependency and bump to Java6.  So, we're going to do that.  If you don't want 
> us to do that, please speak up and explain why!
> 
> We're probably going to continue shading cglib & asm dependencies for now -- 
> the two of them just have too many versioning issues.  (For example, the 
> latest builds of Guice won't work with asm < 4.0, the earlier builds won't 
> work with asm >= 4.0... the latest build doesn't work with cglib < 3.0 if you 
> use an asm > 4.0, etc etc etc..)
> 
> AFAICT, ASM now guarantees forward/backward compatibility starting with 4.0, 
> so maybe Guice 4.0 could depend on ASM 4.0, as anyone using any previous 
> version of ASM should have shaded it. Now I might very well be wrong, as I 
> don't use ASM myself :-)
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "google-guice" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/google-guice.
> For more options, visit https://groups.google.com/groups/opt_out.
> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "google-guice" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/google-guice.
> For more options, visit https://groups.google.com/groups/opt_out.

-- 
You received this message because you are subscribed to the Google Groups 
"google-guice" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/google-guice.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to