sbt-revolver の 0.12.0 対応

で、現状MLの議論の内容を勝手に要約すると

  • version上げるだけで、0.12.0対応できるかな?
  • それだとエラーになったよ?
  • (作者が)あー今バケーション中だから、帰って来たら対応するつもりだからちょっと待って
  • おーけー

という感じだと思う。で、自分でいじってみたらこんなことになった

https://github.com/spray/sbt-revolver/pull/13


sbt 0.11.3 までは

javaOptions = SettingKey[Seq[String]]

だったのが、0.12.0 では

javaOptions = TaskKey[Seq[String]]

になってた。コミットログみる限り深い理由はなく
「scalacOptionsもTaskkeyだから、javaOptionsもTaskKeyのほうがいいんじゃね?」
という感じ?

それで、以下のように悩みつつ

これでいいのかどうかわからないけど、以前、eed3si9nさんが

といっていたように、なにはともあれ、pull request送ったほうが議論進むだろうから送ってみた

コメントとして

  • javaOptions っていうkeyの型がsbt 0.12.0から変わってた
  • なので、このpull requestは0.11.xとの互換性壊すよ
  • 互換性維持したかったけど、簡単にはできなそうだった
  • (互換性維持するための) いいアイデアはない?

的なこと書いておいた。まぁ意味伝わると思うけど、英語の文法ミスあったら誰か教えてください。

なにか進展あれば、追記すると思う。

とりあえず自分の送ったpull requestがmergeされて、さらに

ということになってました

http://scalasbt.artifactoryonline.com/scalasbt/sbt-plugin-releases/cc.spray/sbt-revolver/scala_2.9.2/sbt_0.12/0.6.1/jars/


ちなみに、sbt-revolverが0.12対応して、それに伴いsbt-appengineを0.12対応しようとした場合に、以下のように
https://github.com/sbt/sbt-appengine/blob/0.4.0/src/main/scala/AppenginePlugin.scala#L139

[error] /Users/user/sbt/sbt-appengine/src/main/scala/AppenginePlugin.scala:140: type mismatch;
[error]  found   : Seq[java.lang.String]
[error]  required: sbt.Task[Seq[String]]
[error]       Seq("-ea" , "-javaagent:" + a.getAbsolutePath, "-Xbootclasspath/p:" + o.getAbsolutePath) ++
[error]                                                                                                ^

javaOptions を使ってるので、同じ問題発生するみたい