sbt-protobufでsrc/test/protobufみたいなのをサポートしたい

以前書いたとおり、sbt-protobufというsbt pluginのコミッターになったので、地味にメンテしてるわけですが


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


issueきてて「なるほどー」と思い、すごく簡単にできるかと思ったら、たぶんそんなことはなくて多少面倒なことに気がついたので、今考えをまとめるためにblogを書いている。


sbt-protobuf issue 39: Support compiling test protobufs


よく見たら、明らかにそれ用のpull reqが結構むかしに来ているが放置されていますね


sbt-protobuf pull request 27: Feature/test scope



27のpull reqは、少ししか見てないけど、たぶん動きそうな気はするけど、(工夫すればどうにかなる?可能性あるのかはわからないけど)明らかに互換性壊れますね。


それで、似たようなことしてる(コード生成系などの)pluginないかなー、と探してみて、とりあえず見つけたのは、超地味にcompile用とtest用のkeyを定義しているsbt-unidoc

https://github.com/sbt/sbt-unidoc/blob/v0.3.3/src/main/scala/sbtunidoc/Plugin.scala#L7-L10

あまりかっこよくないけど、compileとtest以外でそれほど増えない?し、増えてもたかが知れてる?し、sbt-protobufも同じように"testProtobuf"みたいなkey増やしてしまえば、たぶん互換性くずれなくていいのでは、とだけ思いついた。
(実際まだコード書いて試してないので、本当にそれでうまくいくのかは謎)


sbt知ってる人向けにかなり説明を省いたけど、scopeとかの概念を知りたい人はこれ http://eed3si9n.com/ja/4th-dimension-with-sbt-013 読むなどしてください(場合によっては余計混乱するだけかもしれないが)


というわけで

  • 他の似たようなpluginではこうしているよ
  • ひとまずtestProtobufみたいなkey追加する地味な方法でいいと思うよ
  • 他にもこういう方法もありえるよ?


などの情報を募集しています。


ちなみに直近で自分が困ってるわけではないけど、まぁ普通にあるべき機能だとは思うので、サポートしたい、みたいな感覚です。