これは Scalaz Advent Calendar 2012 の19日目です。
「Scalaz内部のテストだけで使ってるクラスの一部を切り離して他からも使えるようにしようか?」という提案→いやそれはspecs2側にあるべきでは?→(色々話した結果)結局別リポジトリ作って、ついでにspecs2内のScalaz Matcherもそちらに移動しよう!(イマココ
2012-12-17 15:03:17 via web
URL というここ一週間ぐらいの流れ URL により、scalaz-specs2というリポジトリが数時間前にできたURL
2012-12-17 15:05:33 via web
というわけで、scalazとは別に、新しいリポジトリできました。現状まだあまりソースコードの量ないですが。まだできたばかりで、現状これ書いている時点ではstableなversionはリリースされてないっぽいです。また今後も色々変動ありそうですね。
もともとのモチベーションは、以下のように、いくつかScalazを利用したライブラリがあって
https://github.com/travisbrown/instancez
https://github.com/teamon/play-scalaz/
https://github.com/stew/scalaz-gll
https://github.com/robinp/akkaz
それらで使う共通のテスト用のモジュールを、exportするべきという話でした。それで、scalaz本体のtestsのprojectのSpec.scala
https://github.com/scalaz/scalaz/blob/v7.0.0-M6/tests/src/test/scala/scalaz/Spec.scala
https://github.com/larsrh/scalaz-specs2/commit/5bdfc29cc3c2b013201a9af0c6c63ba620406507
を持ってきたわけです。Scalazには (scalaz本体以外の部分でも使われることを想定した) Scalacheck-bindingというモジュールが既にありますが、他にもexportして使えそうな部分を増やそうという話です。
それともうひとつ、こちらも、つい最近作られたscalaz-contribというリポジトリ
https://github.com/larsrh/scalaz-contrib
こっちは、Scala本体に入れるほどではないけれど、Scalazを使った便利なユーティリティを作っていく感じらしいです。今後、scalaz-contribからscalaz本体に移動したり、逆にscalaz本体から切り離してscalaz-contribに移動したり色々動きがありそうです。
既に実際に、以下のようなこともありました。
.@halcat0x15a がUndoについて書く URL →バグに気づいてぷるりく→それが原因かどうかわからないがircで話題になる→「undoはscalaz-contlibに移そう!」 URL (イマココ
2012-12-17 06:12:16 via web
ところでscalaz-contribも、テストのところでSpec.scalaを本体からコピーしていますが
今後、scalaz-contribとscalaz-specs2の依存関係とかどうなるんでしょうかね(今はどちらも依存していない)
scalaz-contribは、現状ではScala2.10のTryやFutureに対しての型クラスがあったり、Validationを返すユーティリティメソッドがあるようです