以前書いたとおり、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追加する地味な方法でいいと思うよ
- 他にもこういう方法もありえるよ?
などの情報を募集しています。
ちなみに直近で自分が困ってるわけではないけど、まぁ普通にあるべき機能だとは思うので、サポートしたい、みたいな感覚です。