2024-06-01から1ヶ月間の記事一覧

scalafix ruleの作り方の例

https://discord.com/channels/1124331179580084406/1124334001507794994/1255004192993443910 ちょうどいい(?)ネタがあったので、これを例に作ってみます。 既にどこかに存在するのかどうか?は知りません。 (大抵、よほど複雑でなければ数分で書けるので、…

独自scalafixのruleを同じsbt project内部に置く際の設定方法

個人的に、すごい細かい使い捨て含めるとおそらくもう1000個くらいはrule書いたことあるので、おそらく現状では日本一scalafix rule書いていると思うのですが、 慣れるとそのくらい気軽に書けてすぐ役に立って便利なので、既存の他人が書いたruleを使うだけ…

特定の型の値を捨てていたら警告やエラーにするscalafixやwartremoverでのlinter

Scala標準に -Wvalue-discard などがありますが、自分が知る限り、これはすごく細かく制御できるわけではなく、全てを警告します。 $ scala -Wvalue-discard Welcome to Scala 2.13.14 (OpenJDK 64-Bit Server VM, Java 11.0.23). Type in expressions for e…

わざわざsbt-native-packager経由でdocker imageを作る唯一の大きな利点

みなさんはsbtで作ったものを、(単にライブラリとしてではなく全部まとめて)本番環境にデプロイしたりする場合、どういう形式にしてますか? 最近・・・でもないですが、このあたりの選択肢は色々あるというか、sbtやScalaに限らない話なので、 広く捉えれば…

json4sのScala 3対応やjson4sの内部アーキテクチャや歴史の簡単な解説

json4sという古代からあるScalaのjsonライブラリのメンテナンスをなぜか数年ずっとやっています。それの話をします。

テスト実行に時間がかかった順(遅かった順)で表示するsbt pluginを作った

以下のsbt plugin作った話をします。 github.com 数日前のScalaMatsuri 2024の自分の発表の中で以下のような記述がありましたが https://speakerdeck.com/xuwei_k/scalapuroziekutono-birudosu-du-gai-shan?slide=67

scalafmtとscalafixとwartremoverの使い分けフローチャート

細かいこと考慮すると、ものすごく色々あるのですが、大体の判断基準は、まずこうだと思われます。 scalafmt scalafix wartremover

ScalaMatsuri 2024でビルド速度の話をした

昔から色々関連することやっていたけれど、最近も特に色々やっていたので、今までの集大成な感じですね。 https://xuwei-k.github.io/slides/matsuri-2024/

過去のGitHub Actionsのbuild時間を取得して集計してグラフにする

継続的にメンテナンスするのではなくて、雑な使い捨てでいいならshellscriptとjq職人芸でいけるので頑張ってしまったけれど、継続的にやるならもっと違うもので書いた方がメンテナンスしやすいと思います。 細かい部分はいくらでも改善の余地があるとは思い…

GitHub ActionsのSummaryで直接すぐ見れる形式でsbtのtaskのchartを出す方法

OSSにしてpublishしようかと思っていたけど、細かい部分をいい感じにするのが面倒なので一旦雑に貼り付けておく (publishは後でやるかもしれない、未定) https://github.com/xuwei-k/scalaz/commit/06488c412b2fac78fe33739ae4f7abdfb5c49164 https://github…