sbt-sonatypeを使ってScalaのライブラリをリリースしてみた

@taroleo さんの sbt-sonatype https://github.com/xerial/sbt-sonatype プラグインを使って、nscala-time https://github.com/nscala-time/nscala-time の新しいバージョンをリリースしてみたところ便利だったのでまとめてみました。はまった箇所は自分がsbtのプラグイン設定を間違えていただけです。
3
Kenji Yoshida @xuwei_k

@kmizu nscala-time 、Scala2.11.0-M8でもビルド設定してみて成功したので、できればそろそろScala2.11.0-M8版リリースしたほうが

2014-01-28 11:16:32
Taro L. Saito @taroleo

@kmizu @xuwei_k その際にはsbt−sonatypeを試してもらえるとうれしいです。

2014-01-28 12:55:16
Taro L. Saito @taroleo

@kmizu @xuwei_k cross buildだとpublish-signedで複数stagingされるので、sbt release-sonatype (repository id) を指定しないといけないかもしれません。

2014-01-28 13:21:56
Taro L. Saito @taroleo

@kmizu @xuwei_k web interfaceでも一つ選ぶのは一緒なんですよね。もう少しstaging repositoryの情報が取れるとscala version、pom.xmlなどから紐付けできるのですが

2014-01-28 13:37:57
Taro L. Saito @taroleo

@kmizu @xuwei_k まとめてrelease-sonatypeできた方が便利そうならあとで追加します〜

2014-01-28 13:44:44
Taro L. Saito @taroleo

@kmizu @xuwei_k release-all-sonatypeコマンドを追加しました。version 0.1.5 https://t.co/DneplDFdGm

2014-01-28 15:14:13
Kenji Yoshida @xuwei_k

@kmizu え、それは単にpluginの設定場所間違えてるのでは?

2014-01-28 18:08:40
Taro L. Saito @taroleo

@kmizu @xuwei_k publish-signedのphaseにはsbt-sonatypeは関わってないので、~/.sbt/(sbt 2.10.x)/project/plugins.sbt にだけaddPluginしておくと良いのかもしれないですねぇ

2014-01-28 18:09:42
Taro L. Saito @taroleo

@kmizu @xuwei_k ああ、それじゃsettingが読み込めないのか。さてさて

2014-01-28 18:11:11
Kenji Yoshida @xuwei_k

@kmizu グローバルにおくなら ~/.sbt/0.13/plugins/ の下です。ただどちらにしろ、build.sbtにsonatypeSettings入れないといけないので、グローバルじゃなくて、project/plugins.sbtに書いてしまっていいと思います

2014-01-28 18:16:02
Taro L. Saito @taroleo

@kmizu @xuwei_k Scala2.9のときには、sbt-sonatypeやsonatypeSettingsを読み込まないようにして、+ publishSignedを実行ですかね。release-all-sonatypeは+を付けずに実行

2014-01-28 18:17:29
kmizu @kmizu

@xuwei_k そこはちと悩みどころだったんですが、build.sbtにsonatypeSettings入れてしまって、その他がglobalだと他の人がそのままビルドできなくなるから、確かにその方がいいのかもですね。

2014-01-28 18:18:04
Kenji Yoshida @xuwei_k

@kmizu あ、べつにsonatypeSettingsもグローバル( ~/.sbt/0.13/build.sbt )に書けばできるはず?なので、どっちでもいいですかね

2014-01-28 18:18:47
Taro L. Saito @taroleo

@xuwei_k @kmizu できそうですね。scalaVersionによるswitchを入れるのが面倒なら

2014-01-28 18:19:48
kmizu @kmizu

@xuwei_k profileNameはグローバルに置く訳にはいかなそうなので、project/plugins.sbt に書いた方がやはりいいかなと思ってます。

2014-01-28 18:20:27
Kenji Yoshida @xuwei_k

@taroleo @kmizu Scala2.9のときのさっきのエラーは、pluginの設定場所間違ってただけで、べつに2.9だろうと関係ないです。sbtのグローバルディレクトリもsbt0.12と0.13で別れてますし。scalaVersionでのswitchなんて必要ないはず

2014-01-28 18:21:16
Kenji Yoshida @xuwei_k

@kmizu あーはい。まぁprofileNameはorganizationと同じはず?なので、大抵の場合書かなくてもいけるとは思いますけど

2014-01-28 18:23:30
kmizu @kmizu

@xuwei_k あー、それは確かにそうかもしれないですね…。とりあえずproject傘下に入れてますが、今度はうまくいってるようです。仰る通り、globalのplugins.sbt置く場所(0.13の場合の)間違えてただけっぽいです。

2014-01-28 18:26:03
kmizu @kmizu

@xuwei_k @taroleo アドバイス助かります。

2014-01-28 18:26:34
kmizu @kmizu

ほぼ変更点ないのに、Scala 2.11.0-M8版をクロスビルドに含めるためだけにバージョン番号を0.8に上げたのはちょっと微妙かもだけど、まあ問題はないよね…。 #nscala_time #scala_jp

2014-01-28 18:34:32
kmizu @kmizu

というわけで、 sbt-sonatype plugin使ってnscala-timeライブラリをpublishしてみましたが、めんどくさいGUI通さずリリースできて便利なので他の人も試してみるといいと思います! #sbt_sonatype #scalajp

2014-01-28 18:36:39
Kenji Yoshida @xuwei_k

@kmizu たぶん本体の変更は、このコミットくらいですね https://t.co/xZph8XYiPi (前回value classにしたときに、抜けがあった)

2014-01-28 18:56:09
kmizu @kmizu

@xuwei_k 使い方によって少しだけ性能に差がでるかどうかってところですね。

2014-01-28 21:40:06