ASP.NET CoreでMessagePackを使ってみる話でいろいろやった件で、ありがたいことにneueccさんがtwitterでコメントをくれまして、CanWriteResultが固定でtrueを返す件は、とりあえず実装だったと言うことがわかりましたw
で、なんかたいしたものじゃないんですが、初めてのPull requestにして送ってみることにしました。
やることは前に書いたOutputFormatterの内容で、通常のMessagePackのformatterとLZ4対応版のformatterをInputも含めて整える程度です。
また、テストコードもちゃんと修正しとこうと思ったんですが、なんとAspNetCoreMvcFormatterだけテストコードがなかった…
確かにこれ、このformatter単体でテストできないのでいろいろ面倒なのですよね。
とはいえ、テスト無しってのもビギナーがちょろっとプルリク経験しちゃいました感が半端ないので、本家aspnet/Mvcのテストコードを勉強しに行って、formatterのテスト方法を盗んできました。まあさすが本家だけあって、最短距離でテストできるようになってますね。拝借したコードはどこから持ってきたかだけコメントに残しておきました。
あと、テストは、既存のテストプロジェクトに入れようかと思ったんですが、ASP.Net Core関連のライブラリとかがごちゃっと入ってきてややこしくなると困るかもと思って別のテストプロジェクトを追加しておきました。いらんかったらプロジェクトごと捨てちゃえばいいので。
で最低限、実装した部分が思ったように動いてるかどうかだけはテストできるようにして、さあpushしてPull request!なんですが、最後の難関、英語の説明が書けない。何回日本語に逃げようかと思ったぐらい英語が書けなくて困ったんですが、まあコード見りゃわかるかと思って、最低限言いたいことだけ書いてボタン押しました。
Improve AspNetCoreMvcFormatter #365
オープンソースプロジェクトへの貢献って言うのもなかなか大変なものです。
慣れてないってのもあるとはいえ、こんな何行かの簡単なコードでもそれなりにいろいろ考えて送らないといけないんですから、まるごと作って世間に晒すってのはなかなか覚悟のいることでしょうね。モチベーションの問題とかもあるでしょうし、プルリクまでは行かなくても、せめて星付けに行ったり、寄付の口があれば少額でも寄付するとか、なんかしてあげられるといいですね。
2019/1/11追記
無事、マージしていただきました。
ありがとうございます!