https://groups.google.com/d/msg/scalaz/79x3Frhe0Hs/tcGACPaXND8J
この前のScalaz勉強会で、6、7.0.x、7.1.x、7.2.xについての説明はそれなりに詳しくやりましたが、
http://xuwei-k.github.io/slides/scalaz-overview/#0
予定通り、7.1.0 finalがリリースされて、7.2系の開発が始まりました。7.0.0のfinalがでたのが2013年4月なので、1年4ヶ月ぶりの、重要なメジャーリリースです。
7.0系と7.1系の細かい違い知りたい人は、これ
https://github.com/scalaz/scalaz/wiki/7.1.0
読むか、わからないことあれば直接自分に聞いてもらえばほぼ答えられると思います。7.1.0のリリースのメールで
There have been a total of 1066 commits from around 70 contributors, with 313 merged pull requests. Thanks to all of you! Huge thanks go to Kenji Yoshida, who is #1 in the contribution list with 384 commits in that period.
って言われてました。コミット数だと、3分の1以上自分だったらしいです。
さて、今一度これ書いている2014年8月2日現在で、どのversion使えばいいのか?などの話をまとめておくと
- 7.0系使ってる人
- 7.0系は、もう少しの間はメンテされるが、7.1系がバイナリ互換保つ期間に入ったので、とくに理由なければ7.1系に移行するべき
- これからscalaz始める人
- 特に理由なければ7.1系使いましょう
- 7.0系に依存したライブラリの影響で、まだ7.1系使えない、使うかどうかを躊躇ってる人
例えばspecs2とかです。specs2はすぐにでました。specs2の2.4以降は、scalaz7.1系がデフォルトになるみたい? http://notes.implicit.ly/post/93638894429/specs2-2-4 argonautも対応した6.1-M4がでましたね。- 逆に、scalaz7.0系に依存したversionがあまりメンテされてなくなる可能性も考えると「7.1に移行しないといけない」となるかもしれません。
- まともにメンテされてるライブラリなら、ほぼ100% 7.1系に移行するはずなので、それまで少し待ちましょう。
- 7.1系に移行する準備しておきましょう。
- ちなみに、自分が作ってるScalazに依存するライブラリは、もう7.1.0finalに依存したものをリリースしておきました*1
- とにかく最新使いたい人
ここから先、7.2系の開発について
- 予定通りscala2.9のサポートは削除
- xmlとtypelevelのモジュール、ばっさり消されました
- deprecatedのアノテーションついてたものも、全部消えました
- value class簡単に使えるところは使うようにしました
さて、これ書いている時点では、このような変更のみです。そして
というのを思いついて、scalazのgithubにも書いておきましたが、今のところそのあたり含めマクロなどのScala2.10特有の機能をどのように生かしていくか?
の議論、それほど始まってないですね。誰か何かいい案あったらpull reqとかください
*1:httpzはargonautがでないと出せない