[ 
https://issues.apache.org/jira/browse/KAFKA-139?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13135155#comment-13135155
 ] 

Joshua Hartman commented on KAFKA-139:
--------------------------------------

This is actually a very important issue that needs to be thought about and is 
closely related to mavenizing the project. First some background info:

Scala is not backwards compatible, except for bug fix releases like scala 2.8.0 
-> scala 2.8.1. Furthermore, the library jar needs to match the jar it was 
compiled against. Fortunately, source code has been forwards compatible since 
scala 2.8, which means that if you build against 2.8, you should be able to 
build against 2.9.

The standard way to handle this issue in the scala world is to publish separate 
artifacts for their jars. So for instance, we could publish kafka-core_2.8.0, 
kafka-core_2.8.1, kafka-core_2.9.0, and kafka-core_2.9.1. You can configure sbt 
to do this with one line of code. It's a bit gross, but it's the only way I 
know of to solve this problem. Without doing this, we'll force users of the 
library to depend on a specific version of scala. Please read 
https://github.com/harrah/xsbt/wiki/Cross-Build to learn a bit more.

I'd really appreciate input from the developer team about this. Kafka is on a 
really old version of scala and it will probably be an issue for non-linkedin 
users very soon. (Plus if I have artifacts built against 2.9.1 for all LinkedIn 
scala jars, I can upgrade LinkedIn to 2.9.1 in about a day).
                
> cross-compile multiple Scala versions
> -------------------------------------
>
>                 Key: KAFKA-139
>                 URL: https://issues.apache.org/jira/browse/KAFKA-139
>             Project: Kafka
>          Issue Type: Improvement
>          Components: packaging
>            Reporter: Chris Burroughs
>             Fix For: 0.8
>
>
> Since scala does not maintain binary compatibly between versions, 
> organizations tend to have to move all of there code at the same time.  It 
> would thus be very helpful if we could cross build multiple scala versions.
> http://code.google.com/p/simple-build-tool/wiki/CrossBuild
> Unclear if this would require KAFKA-134 or just work.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to