scala

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

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

mockitoとscalatestについて

以下の投稿について、編集リクエストするレベルではないし、コメントするにも論点が多すぎてすごく長くなるため、別記事として自分のblogに書くことにしました qiita.com

scalafixのSymbol literal自動書き換えruleを作った

github.com

GuiceのTypeLiteralをScalaのmacroを使って生成する

ウォ〜〜scalaでguice使う時に injector.getInstance(Key.get(new TypeLiteral[Foo[Bar]]{}))って書くの面倒くさいにゃんよ〜〜!! 単に injector.instanceOf[Foo[Bar]]って書けて欲しい〜〜!!— にゃおきゃっと (@nyaocat) July 29, 2019

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

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

scala-libraryはなぜ後方バイナリ互換のみならず前方バイナリ互換も維持しないといけないか

そういえば、はっきり書かれたドキュメントが思い当たらない(or 存在していたとしても、改めて日本語で書くことに意味はあるだろうと思う)、ので、書いてみることにする。 自分が知ってる理由の1つとしては、以下のようなことをすると、普通にNoClassDefFoun…

ScalaMatsuri 2019に参加して発表した

アンカンファレンスで発表した資料貼っておきます

Scalaのコミット権限をもらった

ここでいうScalaとは https://github.com/scala/scala のScala programming language本体のことです。 以前、以下のようなblogを書きましたが

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

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

wartremoverの管理者権限とpublish権限もらった

wartremoverとは、一言でいうとScala向けのlinterです。 主な特徴としては、 コンパイラプラグインとしてもマクロとしても使えて、独自のルールをある程度簡単に追加できたり、アノテーションつけて一部のみを警告抑制できたり、警告にするかエラーにするか…

Scala版optparse-applicativeをforkしてscala-jsとscala-native対応してリリースした

タイトルの通りでそれ以外あまり書くことないのですが、リリースしました github.com

scala-nativeでhttpリクエストを投げる方法

小ネタです。 これ書いている2018年3月現在、scala-nativeの最新は0.3.7ですが、

ScalaMatsuri 2018でgRPCの発表した

https://xuwei-k.github.io/slides/gRPC-matsuri-2018/#1 speakerdeck.com

scalaprops-magnoliaというライブラリを作った

github.com ScalaMatsuri中に内職して作りました、ごめんなさい。 まずmagnoliaとは、

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

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

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

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

scalapb-argonautをscala-native対応させた

まずは以下のあたりも参照 xuwei-k.hatenablog.com xuwei-k.hatenablog.com それで

scalazのコミット数が1位になった

finally (๑•̀ㅂ•́)و✧https://t.co/Y52DVWOBQT pic.twitter.com/b6tYt6Aish— Kenji Yoshida (@xuwei_k) 2017年11月12日

2017年前半の振り返り(GitHubのOSS活動)

雑に振り返ります

scalapropsというテストライブラリをscala-native対応させてリリースした

世界初のscala-native用テストライブラリ! といっても過言ではない。*1 github.com *1:maven centralにpublishされているものとしては。scala-native version 0.3.0 時点で、maven centralにはpublishされていないが、scala-native内部のみで使っているとて…

mockito 2 と ArgumentMatchers と Scala のバグ(親のstaticメソッドが呼べない)

よくScala界隈だかScala界隈に限らないのかわからないけど"org.mockito" % "mockito-all" % "1.10.19"が使われていることが多々ありますが、mockito-allは今後更新されなくて、mockito-coreのほうが更新されてるらしいので、そちらを使いましょう(そうしない…

Scala 2.11.9 はバイナリ互換壊れたので使わないでください

https://github.com/scala/scala/pull/5821 https://github.com/xuwei-k/Scala-2.11.9-FilteredTraversableInternal

purescriptのParallelをScalaに移植してみたけど型推論がつらい

あとfundep欲しい

scala-native用にビルドされてpublishされているScalaのライブラリ一覧

というようなページがこれ書いてる時点では公式になさそうなので、以下のようなやつを見るしかなさそう、ということでメモhttps://mvnrepository.com/artifact/org.scala-native/scalalib_native0.3_2.11/usages

いくつかのScalaライブラリをJava9でビルドしてみた知見

sbt 0.13.14-RC1からJava9に(無理やり?)対応したらしいので、いくつか試しているので、現状の知見を簡単にメモ https://github.com/sbt/sbt/pull/2951 https://groups.google.com/d/topic/sbt-dev/iu6qT12R6q0/discussion

Scalazのscala-native対応

scala-nativeの0.1がリリースされる(maven centralにはもう上がってる)らしいです。 scala-nativeとは、ScalaをJVMではなくLLVM使ってJVM以外で動かすやつです。 https://github.com/scala-native/scala-native さて、というわけで、scalazを早速対応させま…

Serious Scala Projectとは

色んなScalaプロジェクトにpull request送りつけ過ぎた結果です。( 去年502個 ) https://twitter.com/rossabaker/status/799727645634297856 https://github.com/finagle/finch/pull/726 OH doesn't even have a commit from @xuwei_k yet, so not a serious…

typesafehub/migration-managerをweb上で実行できるものを作った

https://github.com/xuwei-k/mima-web http://migration-manager.herokuapp.com/com.typesafe.play/play_2.11?previous=2.5.0&current=2.5.11

lightbend/paradoxとsbt-site, sbt-ghpages使ってunfilteredのwebsite新しくした

http://unfiltered.ws

コミッターをしているScalaのライブラリ一覧(2016年12月時点)

これはScalaアドベントカレンダー Adventar版の4日目です。 http://www.adventar.org/calendars/1492 3日目の記事 finagle-toggleでデプロイとリリースを分離する