Contributing a binding意訳

Iot.Device.Bindingsにデバイス追加してみようかなー、などと思っています。
そういうわけで、Contributingのお作法を確認しましょう。

Contributing a bindings

誰でもコントリブートできるよ。
Mcp23xxxMcp3xxxを参考にしてね。
テンプレートあるよ。

  • ライブラリの.NET Coreプロジェクト含めて。
  • READMEで説明して。Frizingも。
    • 全ての機能を実装していなかったら、実装しているものとしていないものを教えてね。
    • 複数のメーカーのリンク付けて。
  • ビルドできるサンプル含めて。
    • サンプルが全ての関数、プロパティをカバーしていると最高。
    • センサーができること全てを見れるといいなぁ。
  • System.Device APIを使え。
  • ユニットテスト用プロジェクトはオプションです。

フォルダはこんな感じ。

iot/
  src/
    devices/
      Foo/
        Foo.csproj
        Foo.cs
        README.md
        samples/
          Foo.Sample.csproj
          Foo.Sample.cs
        tests/   <--  Tests are optional, but if present they should be layed out like this.
          Foo.Tests.csproj
          Foo.Tests.cs

作るときはC#コーディングスタイルとかコーディングガイドラインに沿ってね。
名前は分かりやすいものに。略語はダメ。デバイス規約を確認してね。

単位はUnitsNetにある型を使おう。

public void SetEnvironmentData(Temperature temperature, Ratio humidity)

値の範囲はXMLコメントに書いてね。

/// <param name="equivalentCO2">The equivalent CO2 (eCO2) output range for CCS811 is from 400ppm up to 29206ppm.</param>

機能の命名
先頭にTryを付けるとか、
操作をともなうときは動詞にするとか、
Set/Getならプロパティを使うとか、
略称はダメとか、
XMLコメントの使おうとか、
どうしてそうしたのか分かるドキュメントへの参照を書いおくなど。
あと、Dispose実装ややこしいからコード例見ろよ。

100%ポータブルじゃない、ネイティブコードを使ったものは受け入れない。

ライセンスはMITか、相当のもので。