[slf4j-dev] Cross Building SLF4S against Scala versions

Heiko Seeberger heiko.seeberger at googlemail.com
Wed Sep 8 08:19:57 CEST 2010


Hi Ceki,

Different Scala versions are binary incompatible and I don't believe that
will change in the near future, even if Martin has said that once. IMHO
2.8.1 will not be binary compatible with 2.8.0. And 2.8.2 won't be with
2.8.1 nor with  2.8.0. And of course neither of these is compatible with
2.7.x. If you are interested in the reasons, you will find numerous
resources on the web, e.g. [1] or [2]. Maybe starting from 2.9 EPFL will
manage to solve that issue.

But that's not a reason to pack and go home. The solution is simple:
Cross-build your libraries and frameworks against all the versions you want
to support. If you look at an example of such a library deployed to a Maven
style repository you will see that the artifact ID is suffixed with _2.8.0
or whatever Scala version [3]. So there is not only the project version but
also the Scala version. SBT [4] makes that very easy, but I think I know a
solution for Maven, too.

Akka has not yet been released (only milestones) and therefore they can
target only one Scala version. But they already do it the style I described,
i.e. they are ready for multiple versions. Lift already does builds against
2.7.7 and 2.8.0. And there will be others.

For something as widespread as SLF4J there in NO WAY not supporting 2.7.7
plus 2.8.0 plus 2.8.x. It just must be cross-built.

So your (d) is not an option, but as I already mentioned I hope to find a
Maven based solution.

Heiko

[1]
http://stackoverflow.com/questions/2053265/scala-binary-incompatibility-between-releases
[2]
http://it-republik.de/jaxenter/news/Scala---Die-Reifepruefung-056248.html
[3]
http://scala-tools.org/repo-releases/com/weiglewilczek/scalamodules/scalamodules-core_2.8.0/2.0.0.RC2/
[4] http://code.google.com/p/simple-build-tool/

On 7 September 2010 22:59, Ceki Gülcü <ceki at qos.ch> wrote:

> On 07/09/2010 10:53 PM, Ceki Gülcü wrote:
>
>> On 07/09/2010 8:08 PM, Heiko Seeberger wrote:
>>
>
>  As we will probably see Scala 2.8.1 end of this year and milestones and
>>> release candidates even earlier, this is an important issue for SLF4S.
>>> How could we deal with that?
>>>
>>
>> There is no way 2.8.1 will be (or can be) incompatible with 2.8. The 2.7
>> to 2.8 binary incompatibility was a single fluke occurrence.
>>
>
> 2.8.1 will be binary compatible with 2.8.0. See http://bit.ly/93ie5V
>
> _______________________________________________
> slf4j-dev mailing list
> slf4j-dev at qos.ch
> http://qos.ch/mailman/listinfo/slf4j-dev
>



-- 
Heiko Seeberger

Company: weiglewilczek.com
Blog: heikoseeberger.name
Follow me: twitter.com/hseeberger
OSGi on Scala: scalamodules.org
Lift, the simply functional web framework: liftweb.net
Akka - Simpler Scalability, Fault-Tolerance, Concurrency & Remoting through
Actors: akkasource.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://qos.ch/pipermail/slf4j-dev/attachments/20100908/690dd045/attachment.html>


More information about the slf4j-dev mailing list