sbt-protobufというsbtのpluginのコミッターになってリリース権限もらった

https://github.com/sbt/sbt-protobuf


経緯の解説をする


最近何度か書いているように、ScalaでprotobufやgRPCやってる



その自作ドキュメント

http://xuwei-k.github.io/scala-protobuf-docs/

にも説明書いてあるが、sbt-scalapbというpluginが、sbt-protobufというpluginに依存しているという、少し変わった構造



ScalaPBをかなり使って関わってるのだが、sbt-protobufのほうのissueやpull reqがかなり放置気味で困る




  • メンテされてないから、sbt-protobufに依存するのやめようか?と提案。 https://github.com/trueaccord/sbt-scalapb/issues/6 sbt-protobuf大したコード量じゃないので、数十行から100行程度(?)をコピペして埋め込めば済む話なので
  • 同時に、sbt-protobuf自体は、それなりに綺麗に作られてる(?)し、メンテされされれば別に依存してるのは悪く無いので、再度「メンテする気ないの?」とissueで問い合わせ https://github.com/sbt/sbt-protobuf/issues/36



数日だけ待ったらsbt-protobuf作者から返事くる。忙しいらしい。メンテナーなりたい人いたらwelcomだよ、みたいに言ってくれたので、「メンテナーになりたい」って名乗り出る



コミッターにしてもらえる(githubの権限のこと)



リリースまわり(sbtのbintrayのorganization)がよくわからない。ので、eed3si9nさんに相談



sbt-protobufのリリース権限もらった

色々方法あるらしいけど、sbtのorgに入れてもらってしまった・・・!?多少権限強すぎる(他のやつも間違ってpublishとか設定変更可能?)だけど、まぁ気をつければいいか・・・



ひとまず早急に0.5.0リリース

ところで新たに作ってしまったが https://bintray.com/sbt/sbt-plugin-releases/sbt-protobuf-imported を再利用したほうがよかったのだろうか・・・?(もう作ってしまったからこっちでやっていくけど)



コンフリクトしてmergeできなかったpull reqを頑張ってmergeしたり、READMEに間違った記述や古い記述があったので整理したり、travis-ci設定などをした



その20番のpull req https://github.com/sbt/sbt-protobuf/pull/20 の修正ある程度重要そうなので、早めに次のversion出す予定0.5.1出しました

みたいな感じです。というわけで、出来る限りメンテしていくのでよろしくお願いします。
sbt-protobufはわりとコード量少なくてシンプルですが、sbtのscopeをうまく使ってる(?)例として、コード読んでみるとsbt pluginの勉強的には面白いと思うので、plugin作りたい人には読んでみるの多少オススメです。


ところで、sbt-protobuf自体は( 例のドキュメントにも書いてますが )、単体ではjavaコード生成機能しかないので、ScalaでprotobufやるならScalaPBがおすすめです

https://github.com/trueaccord/ScalaPB