On Fri, Jul 24, 2015 at 8:19 PM, Reynold Xin <r...@databricks.com> wrote:
Jenkins only run Scala 2.10. I'm actually not sure what the behavior is > with 2.11 for that patch. > > iulian - can you take a look into it and see if it is working as expected? > It is, in the sense that warnings fail the build. Unfortunately there are warnings in 2.11 that were not there in 2.10, and that fail the build. For instance: [error] /Users/dragos/workspace/git/spark/core/src/main/scala/org/apache/spark/rdd/BinaryFileRDD.scala:31: no valid targets for annotation on value conf - it is discarded unused. You may specify targets with meta-annotations, e.g. @(transient @param) [error] @transient conf: Configuration, [error] Currently the 2.11 build is broken. I don’t think fixing these is too hard, but it requires these parameters to become vals. I haven’t looked at all warnings, but I think this is the most common one (if not the only one). iulian > > On Fri, Jul 24, 2015 at 10:24 AM, Iulian Dragoș < > iulian.dra...@typesafe.com> wrote: > >> On Thu, Jul 23, 2015 at 6:08 AM, Reynold Xin <r...@databricks.com> wrote: >> >> Hi all, >>> >>> FYI, we just merged a patch that fails a build if there is a scala >>> compiler warning (if it is not deprecation warning). >>> >> I’m a bit confused, since I see quite a lot of warnings in >> semi-legitimate code. >> >> For instance, @transient (plenty of instances like this in >> spark-streaming) might generate warnings like: >> >> abstract class ReceiverInputDStream[T: ClassTag](@transient ssc_ : >> StreamingContext) >> extends InputDStream[T](ssc_) { >> >> // and the warning is: >> no valid targets for annotation on value ssc_ - it is discarded unused. You >> may specify targets with meta-annotations, e.g. @(transient @param) >> >> At least that’s what happens if I build with Scala 2.11, not sure if this >> setting is only for 2.10, or something really weird is happening on my >> machine that doesn’t happen on others. >> >> iulian >> >> >>> In the past, many compiler warnings are actually caused by legitimate >>> bugs that we need to address. However, if we don't fail the build with >>> warnings, people don't pay attention at all to the warnings (it is also >>> tough to pay attention since there are a lot of deprecated warnings due to >>> unit tests testing deprecated APIs and reliance on Hadoop on deprecated >>> APIs). >>> >>> Note that ideally we should be able to mark deprecation warnings as >>> errors as well. However, due to the lack of ability to suppress individual >>> warning messages in the Scala compiler, we cannot do that (since we do need >>> to access deprecated APIs in Hadoop). >>> >>> >>> >> -- >> >> -- >> Iulian Dragos >> >> ------ >> Reactive Apps on the JVM >> www.typesafe.com >> >> > -- -- Iulian Dragos ------ Reactive Apps on the JVM www.typesafe.com