sbt
概要や結論を先に書いておくと、適切にプロファイルを取って、適切にボトルネック箇所を見つけて対処しましょう。 という話になるのですが、大まかな概要というか、結果的に使った方法を書くと sbtのTask毎の時間を記録する機能を使う Scala 3 compilerのロ…
仕事でsbtのsub projectが100個以上あるので、こういう指定だけでもダルいので
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が2行にわかれて書かれていると、…
というのが実質あり得ないかと思っていたのだけれど、どういうときにそうなるか?というのに気がついたのでメモ。
という小ネタ。 sbt 1.4.1時点のデフォルトでは、単にgitのcommitのhashのみだが、日付が入っていたほうが、例えばローカルのキャッシュを手動で削除したりする際などに便利そうなので。 https://github.com/sbt/sbt/blob/4a2aaabb9b41a9e016e/main/src/main…
だいぶ色々やっているので、とりあえず雑にまとめておく
3割というのは、もちろんprojectの構成だったり、計測方法やその他色々によるわけですが、とにかく自分が計測した場合には3割短縮されました。114秒が80秒になりました。
以下再現コード
昨日のwartremoverのやつの続き、というか、Scalaのcompiler pluginに関する別の話。 いきなり雑に説明に入りますが
CircleCIにおけるキャッシュの仕組みというか仕様は、他のCIサービスと比べると、少し変わった特徴がある気がします。 といっても、自分は他にはTravisCIくらいしか詳しくないので、実はCircleCIのように色々工夫している方がむしろ最近は主流な可能性もあり…
いきなり本題というか、一番言いたいことを書くと、まず テストの fork の設定によってぜんぜん違う。 という点があまり知られていない気がします。 *1 というか、自分も今回調べるまで、微妙に古い知識のままで完璧に知らなかったので、今一度理解した現時…
結論としては以下のissueに大体全部書いてあります。 Incremental compilation inside docker container broken since SBT 1.1.0 · Issue #4168 · sbt/sbt · GitHub 依存ライブラリのjarのキャッシュではなく、あくまでインクリメンタルコンパイラのキャッシ…
以下のような質問を某所で受けたので 書きました gist.github.com 既にあるとか、もっといい感じに書ける、みたいなのがあればお知らせください。 ちなみに、デフォルトでは単体のprojectしかcleanしないのは、完全にsbt的には意図した挙動のはずです。 デフ…
要点をまとめると TaskではなくCommandでやってしまうなら少し簡単だが、(stateなどの他のkeyに依存して)taskからtaskを生成するには多少コツがいる(Def.taskDynを使う) なおかつ、sub projectの列挙を全自動でやりつつtaskを生成するのが多少コツがいる( Pr…
2018年10月くらいからWindows使えるようになってたんですね。まだexperimentalな扱いみたいですが。 blog.travis-ci.com
最初sbtにissueたてるか、などとtwitterで言っていたけれど、そんなに困っている人多くなさそうだし、blogにだけまとめておけばいいか、という気持ちになったので、ひとまずまとめておく。
flatbuffers自体の説明はあまりしません。ググったり公式ページ見てください。 https://google.github.io/flatbuffers/
github.com 最初に作ったのは結構前なのですが、OSSにしてなかったのでOSSにしました。 sbtでの設定方法はgithubのREADMEなどを見てください。 protocol buffersには多少の慣習というかstyle guideが公式にあり、
Java 9が広まってきて、しかし多少古いScalaやsbtのままやろうとしてハマっている人を見かけることが多くなってきたので、簡単にまとめておきます。
以下をプロジェクトのbuild.sbtか グローバルなやつ (例 $HOME/.sbt/0.13/build.sbt )に書いておく inConfig(Test){ definedTestNames <<= { import sbinary.DefaultProtocol.StringFormat import Cache.seqFormat (definedTests map (_.map(_.name).distinc…
標題の件について簡単に実験をして、それにともなう(コンパイル速度改善可能性の)予想をたてたので、それを書いていく。
以前書いたとおり、sbt-protobufというsbt pluginのコミッターになったので、地味にメンテしてるわけですが
https://github.com/sbt/sbt-protobuf 経緯の解説をする
https://github.com/xuwei-k/dependency-graph
sonatypeって確か何故か上書きできる?し、その他なぜか信用ならないリポジトリを使わざるを得ない、もしくはとても心配性な人のためのなにか
sbtを使ったことがある人なら、たいていSettingKeyやTaskKeyという言葉を聞いたことがあるはずです。もし聞いたことがなくても、1度でもsbtを使ったことがあるなら、すでに知らないうちにそれらに触れているはずでしょう。 それらSettingKeyやTaskKeyを含ん…
タイトル長ぇよ!
"重複を許可しない" という言葉だけだと、何言ってるかわからないと思いますが、少しタイトル長くした程度ではいずれにせよ理解してもらえなそうだったので、こういうタイトルになりました。
https://github.com/json4s/json4s/issues/236#issuecomment-103363789