DartパッケージでPub Pointsを満点にする
2023.03.11
この記事は最終更新日から1年以上が経過しています。
先日、Dartパッケージの作成手順などの記事を書かせて頂きましたが、今回はそのパッケージマネージャーのpub devにおけるPub Pointsについて少々説明をと。
そもそも、「Pub Points」とは?ですが、
Pub Pointsは、pub.devのパッケージの品質を測定するための指標となります。
パッケージのコードスタイル、プラットフォームサポート、保守性などの品質のさまざまな側面を評価し、パッケージに6つのカテゴリーでポイントを与えます。
パッケージのPub Pointsを確認するには、パッケージの詳細ページのスコアリングレポートの「Scores」タグで表示されます。
Weighted Randomのスコア
https://pub.dev/packages/weighted_random/score
パッケージが最新の依存関係に対応しているかどうか、null-safetyに対応しているかどうかなどの側面を評価されます。Pub Pointsは、パッケージがpub.devに公開されたときに自動的に計算されます。Panaという解析ツールが使われており、これはローカル環境での実行可能となっております。
Pub Pointsは、LikesとPopularityと共に、パッケージの品質を表示するための3つの指標のうちの1つとなっております。
公式ドキュメント
https://pub.dev/help/scoring#pub-points
各カテゴリは以下の通り。
Follow Dart file conventions | 特定のファイル規約に従い、パッケージが構成されているか |
Provide documentation | 指定する2種類のドキュメントを備えているか |
Platform support | アプリの多様なプラットフォームをサポートできているか |
Pass static analysis | 静的解析にて、エラー、警告、リント(コードスタイルの問題)が含まれていないか |
Support up-to-date dependencies | Dart SDK、Flutter SDK、すべての依存関係のバージョンが安定したバージョンか |
Support sound null safety | null-safetyに対応しているか |
それでは、各項目に関してちょっと詳しくみていきましょう。
Follow Dart file conventions
こちらは、pubspec.yaml、README.md、changelog.md、licenseファイルが用意されていて、規約に沿って記述されているかでスコアが判定されます。
パッケージのテンプレを、dartコマンドで生成した場合licenseファイル以外は生成されています。
README.mdに、セキュアではない「http」の記述があったりしてもスコアが減点されてしまいます。
<https://www.webcyou.com/> ↓ <https://www.webcyou.com/>
この様に変更することによって、スコアも上がりました。
Provide documentation
指定する2種類のドキュメントとなりますが、「example」ファイルと、「API reference」のドキュメントとなります。
「example」ファイルもdartコマンドで生成した場合、「example」ファルダが生成されており、サンプルのファイルも作成されておりますので、そちらを修正すれば良いです。
また、「API reference」は、Publishと同時に、README.mdファイルが自動的の公開され、あまり意識はしなくて良いかと思います。
https://pub.dev/documentation/weighted_random/latest/
Platform support
アプリの多様なプラットフォームをサポートできているか。になるのですが、こちらは各プラットフォームに依存しない形で作成すれば良いのかと思います。
今回はシンプルが故に依存性の低いプログラムだったので、特に意識しておりません。
Pass static analysis
エラー、警告、リントが発生している場合、修正すれば問題なく、Dartコマンドでの確認は、
$ dart analyze
で確認し、
No issues found!
が表示すれば問題ないかと思います。
Support up-to-date dependencies
こちらは、バージョンの依存関係のチェックとなります。
公開前にパッケージが最新バージョンの依存関係をサポートしているかどうかを確認するには、
$ dart pub outdated
を実行すれば良いです。
こちらの公式ドキュメントのExample通り、古い依存関係を持つ場合は赤く表示されされますので、
$ dart pub upgrade
コマンドなどでアップグレードを行い依存関係を修正できます。
Support sound null safety
Null Safetyとは、プログラムの実行時にnullが原因で発生し得るエラーを発生させない仕組み のことで、Null安全などと呼ばれることもあります。
Null Safetyに対応しているsdkのバージョンを上げる必要があります。
SDKバージョン、2.12.0より対応しており、最初は2.7.0で行っていたのですが、こちらのバージョンはNull Safety非対応バージョンということなので、引っかかっておりました。
2.12.0にバージョンを上げることで解決いたしました。
sdk: ">=2.7.0 <4.0.0" sdk: ">=2.12.0 <4.0.0"
最後に
と言った感じで対応すれば、Pub Pointsも140点の満点となり、気持ちもスッキリしましたw
パッケージ作成の場合にご参考になればと思っております。
ではではぁ。