つらい
- https://github.com/typesafehub/migration-manager/issues/118
- https://github.com/xuwei-k/mima-bug-118-scalaz
- https://github.com/xuwei-k/migration-manager-trait-mixin
- https://github.com/scalaz/scalaz/issues/1199
「必要以上に余計に検知しすぎる」
ならともかく
「壊れてるのに検知されない」
というパターンなので、だいぶつらい。
mimaが、traitへのメソッド追加はバイナリ互換壊れる、と指摘してくるのに、既存のtraitに(メソッドを持っている)新たなtraitをmixinする場合はバイナリ互換壊れない、と言ってて、その理由を考えている・・・
mimaのバグっぽさを感じる・・・。再現ケース作ってissueたてよう・・・。自分の予想が正しければ、なにも考えずにscalazでmimaを信じきってバックポートしてたら、危うくバイナリ互換崩れるところだったかもしれない(なぜかバイナリ互換維持に異様に情熱をささげるマン)
これ本当にmimaのバグだとしたら、今まで何度かバイナリ互換壊したことある可能性、ゼロではない気が・・・。trait内の内部object (?)とかの似たような微妙に違ったパターンもやったことある気がするけど、後で調べるか
はー、予想通りmimaのbugのせいでscalazのbinary compatibility崩れてました、つらい・・・URL