ScalaのOSSでのバイナリ互換とブランチの運用方針

tweetしてなかったので以前書いたblogも貼っておく http://d.hatena.ne.jp/xuwei/20151004/1443887222 けど、scalazがなぜああいう方針にしてるのか改めて書くべきな気もしてくるが、ぐぬぬ
1
Kenji Yoshida @xuwei_k

github.com/scalatra/scala… scalatraが依存してるscalazとspecs2のversion上げpull reqでもするか、っていじってたら、どうでもいいバグ見つけるなどをしていた

2016-03-05 19:54:46
Kenji Yoshida @xuwei_k

@seratch_ja @takezoen scalatraのscalazやspecs2のバージョン上げをしようかと思ったけど、2.4.xブランチはバイナリ互換保つ予定なのか(mimaの依存はあるけどtravisでチェックされてない)、

2016-03-05 19:58:12
Kenji Yoshida @xuwei_k

@seratch_ja @takezoen 保つならtravisでmimaチェックかつ、2.5.xブランチ作っておくべきなのか? 気にせずそういうのを、すぐ2.4.xに送っていい(バイナリ互換保たない?)のか、あたりを、何かしていただけるとー

2016-03-05 19:58:55
Kenji Yoshida @xuwei_k

瀬良さん一人にメンションをしようとして、そういえば竹添さんもコミッターだったな、と思いだして巻き込むなど (まぁそもそもissueかgitterで英語で話せというのはある)

2016-03-05 20:01:02
Naoki Takezoe @takezoen

@xuwei_k @seratch_ja 幽霊部員ですがそのくらいはなんとかしてみますw

2016-03-05 20:07:37
Kazuhiro Sera (瀬良) @seratch_ja

@takezoen @xuwei_k まあ bin 互換チェックしなくてもいいかもしれないけど私はチェックするつもりではいました。付随するタスクとか本への互換性とか考えるとあんまり気軽に 2.5 とか言うのは面倒かなという気持ちはあります。

2016-03-05 20:39:48
Kenji Yoshida @xuwei_k

@seratch_ja @takezoen 2.5はやく出したいとは思わないですけど、(scalikejdbcとかもそうだけど)、基本互換維持するブランチがメインだと、互換壊すpull reqどこに出せばいいかわからない状態なの面倒なので、個人的にはscalazみたいにしたいです

2016-03-05 20:42:30
Kazuhiro Sera (瀬良) @seratch_ja

@takezoen @xuwei_k あ、本って in action のやつですね。メンテしてくれてる人がいて。xsbt-web-plugin のバージョン上がったらコマンド名の互換性がなくなったとかが意外とインパクトがあったりとかもあったんですよね。

2016-03-05 20:42:49
Kazuhiro Sera (瀬良) @seratch_ja

@xuwei_k @takezoen そうですね。それはその通り。個人的にはサブモジュールのメンテナは降りたいので、2.5 系やるなら分割してしまいたい。

2016-03-05 20:44:25
Naoki Takezoe @takezoen

@seratch_ja @xuwei_k モジュールは分割したいですね…。後方互換性に関しては個人的には(ユーザの立場としても)APIの後方互換性があればよいのではと思っています。Scalazの場合はブランチはどういう運用されているんでしょうか?

2016-03-05 21:37:01
Naoki Takezoe @takezoen

すっかりわすれてたけどScalatra in Actionまだ完成してないのか…。ちゃんとScalatraのバージョンアップにも追従してるみたい。全章揃ってるみたいなのでもう少しだと思うけど、MEAP開始してからもう3年くらい経つんだよなぁ。

2016-03-05 21:40:49
Kenji Yoshida @xuwei_k

@takezoen scalazは、最新の(互換性壊してもいい、次に向けた開発のためのブランチ)をデフォルトにしておいて、通常はそっちでpull req受け付ける、必要なら(可能なら)バックポートする、とかですね。 playframeworkでも、大体似たようなやり方だと思います

2016-03-05 23:08:20
Naoki Takezoe @takezoen

@xuwei_k なるほど、ありがとうございます。

2016-03-05 23:38:57
Naoki Takezoe @takezoen

今のScalatraのブランチ運用だと、バイナリ互換性を保証しない次のブランチをデフォルトブランチにするとなると2.5.xブランチを切ることになるのか…。それはそれでいろいろ微妙だなぁ。

2016-03-06 20:14:02
Naoki Takezoe @takezoen

ある程度長期的なリリース計画がないと次の系統をデフォルトブランチにするっていう運用は難しそうな気がする。プルリクエストは現在のブランチで受け付けてコミッタ側でどこにマージするかを判断するほうが現実的な気がしてきた。

2016-03-06 20:16:36