sbt

sbt 1.4以降でgraphviz使ったsvgなどのdependency graphの出力

sbt

sbt 1.4から標準にdependency graphが取り込まれた https://github.com/sbt/sbt/pull/5883 https://github.com/sbt/sbt/pull/5880 標準で(拡張子的にはhtmlだが)svgで出力するやつがある https://github.com/sbt/sbt/blob/7969a155b0978a925d3bd4aeefcb2ace1…

packageとdirectoryに整合性がなかったら強制的にファイル移動するscalafixのrule作った

以前、チェックする君だけ作ったのですが、それを雑に改造して、強制移動する君に改良しました。 細かい部分が雑なので、読みにくいし、バグってる可能性もありますが、ご自由にお使いください。 既知の問題として、packageが2行にわかれて書かれていると、…

sbt-sonatypeでsonatypeProfileNameとorganizationに異なる値を設定するパターン

というのが実質あり得ないかと思っていたのだけれど、どういうときにそうなるか?というのに気がついたのでメモ。

sbtのremote cacheのidにcommitの日付を入れる

sbt

という小ネタ。 sbt 1.4.1時点のデフォルトでは、単にgitのcommitのhashのみだが、日付が入っていたほうが、例えばローカルのキャッシュを手動で削除したりする際などに便利そうなので。 https://github.com/sbt/sbt/blob/4a2aaabb9b41a9e016e/main/src/main…

sbt 1.4のremote cacheを試してbug報告やpull reqした記録

だいぶ色々やっているので、とりあえず雑にまとめておく

sbt 1.4からのpipeline機能を試したら3割compile時間短縮された

3割というのは、もちろんprojectの構成だったり、計測方法やその他色々によるわけですが、とにかく自分が計測した場合には3割短縮されました。114秒が80秒になりました。

sbt 1.3.0以降 % Test でライブラリ追加してもcompileの依存が変わる場合がある件

以下再現コード

Scalaのcompiler pluginをCrossVersion.fullにするかCrossVersion.binaryにするか

昨日のwartremoverのやつの続き、というか、Scalaのcompiler pluginに関する別の話。 いきなり雑に説明に入りますが

CircleCIにおけるsbtプロジェクトの依存ライブラリの最適なキャッシュ方法の考察

CircleCIにおけるキャッシュの仕組みというか仕様は、他のCIサービスと比べると、少し変わった特徴がある気がします。 といっても、自分は他にはTravisCIくらいしか詳しくないので、実はCircleCIのように色々工夫している方がむしろ最近は主流な可能性もあり…

sbtにおけるテストの並列実行の設定詳細解説

いきなり本題というか、一番言いたいことを書くと、まず テストの fork の設定によってぜんぜん違う。 という点があまり知られていない気がします。 *1 というか、自分も今回調べるまで、微妙に古い知識のままで完璧に知らなかったので、今一度理解した現時…

CircleCI上でsbtのインクリメンタルコンパイラのキャッシュが効かなくて再コンパイルされる問題

結論としては以下のissueに大体全部書いてあります。 Incremental compilation inside docker container broken since SBT 1.1.0 · Issue #4168 · sbt/sbt · GitHub 依存ライブラリのjarのキャッシュではなく、あくまでインクリメンタルコンパイラのキャッシ…

sbtで依存しているprojectのみにcleanなどの特定のタスクを実行する

以下のような質問を某所で受けたので 書きました gist.github.com 既にあるとか、もっといい感じに書ける、みたいなのがあればお知らせください。 ちなみに、デフォルトでは単体のprojectしかcleanしないのは、完全にsbt的には意図した挙動のはずです。 デフ…

sbtですべてのsub projectの特定のtaskを直列に実行するtaskを自動でつくる

要点をまとめると TaskではなくCommandでやってしまうなら少し簡単だが、(stateなどの他のkeyに依存して)taskからtaskを生成するには多少コツがいる(Def.taskDynを使う) なおかつ、sub projectの列挙を全自動でやりつつtaskを生成するのが多少コツがいる( Pr…

travis-ciでwindowsを使ってsbtでScalaプロジェクトのテストをする

2018年10月くらいからWindows使えるようになってたんですね。まだexperimentalな扱いみたいですが。 blog.travis-ci.com

maven centralやsonatypeやbintrayでTLS 1.1のサポートが打ち切られたことによるそれぞれのJavaのversionへの影響

最初sbtにissueたてるか、などとtwitterで言っていたけれど、そんなに困っている人多くなさそうだし、blogにだけまとめておけばいいか、という気持ちになったので、ひとまずまとめておく。

sbtからflatbuffersのjavaを使う

flatbuffers自体の説明はあまりしません。ググったり公式ページ見てください。 https://google.github.io/flatbuffers/

ScalaPBで使える protocol buffers の linter の plugin を作った

github.com 最初に作ったのは結構前なのですが、OSSにしてなかったのでOSSにしました。 sbtでの設定方法はgithubのREADMEなどを見てください。 protocol buffersには多少の慣習というかstyle guideが公式にあり、

ScalaコンパイラやsbtとJava 9の対応表

Java 9が広まってきて、しかし多少古いScalaやsbtのままやろうとしてハマっている人を見かけることが多くなってきたので、簡単にまとめておきます。

sbt 0.13.13でtestOnly時のテストクラス名のtab補完が効かないデグレのワークアラウンド

sbt

以下をプロジェクトのbuild.sbtか グローバルなやつ (例 $HOME/.sbt/0.13/build.sbt )に書いておく inConfig(Test){ definedTestNames <<= { import sbinary.DefaultProtocol.StringFormat import Cache.seqFormat (definedTests map (_.map(_.name).distinc…

Scala2.12とsbtのインクリメンタルコンパイルとコンパイル速度

標題の件について簡単に実験をして、それにともなう(コンパイル速度改善可能性の)予想をたてたので、それを書いていく。

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

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

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

https://github.com/sbt/sbt-protobuf 経緯の解説をする

sbt-dependency-graphをherokuで実行するやつ作った

https://github.com/xuwei-k/dependency-graph

sbtで依存ライブラリのjarのsha1やsizeをチェックする

sonatypeって確か何故か上書きできる?し、その他なぜか信用ならないリポジトリを使わざるを得ない、もしくはとても心配性な人のためのなにか

sbtにおけるKeyとは何か? 〜 有向非巡回グラフ(Directed Acyclic Graph)とsbt

sbt

sbtを使ったことがある人なら、たいていSettingKeyやTaskKeyという言葉を聞いたことがあるはずです。もし聞いたことがなくても、1度でもsbtを使ったことがあるなら、すでに知らないうちにそれらに触れているはずでしょう。 それらSettingKeyやTaskKeyを含ん…

sbtで、privateリポジトリやgithub enterpriseでも、project referenceを使ってsshプロトコルで直接参照する方法

sbt

タイトル長ぇよ!

sbtで重複を許可しないparserを作る

"重複を許可しない" という言葉だけだと、何言ってるかわからないと思いますが、少しタイトル長くした程度ではいずれにせよ理解してもらえなそうだったので、こういうタイトルになりました。

json4sの3.3系とsbt0.13.7やsbt0.13.8は一緒に使えません

https://github.com/json4s/json4s/issues/236#issuecomment-103363789

sbtのtest-interfaceについて

sbt

これ https://github.com/sbt/test-interface

sbtのCommandとTaskの違い

sbt

Scala祭での、eed3si9nさんによる「sbt被害者の会」をまとめたgoogle documentより抜粋をしたtweetURL"commandは世に出すべきものではないというスタンス、ドキュメントにもそう書いている""stateにアクセスしないといけない場合のみ(sbtそのものの挙動を変…