このサイトは、只今WEB業界で活躍中のデザイナー、プログラマーの方々の情報を集めたweb統合情報サイトです。

Archives Details

DartパッケージでPub Pointsを満点にする

Dart

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.mdchangelog.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!

が表示すれば問題ないかと思います。

公式のスタイルガイドlintパッケージなどご参考に。

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

パッケージ作成の場合にご参考になればと思っております。

ではではぁ。

Comment

Related Article

AI(ChatGPT)に聞くDart言語

2023.03.12

DartパッケージでPub Pointsを満点にする

2023.03.11

Dartパッケージをサクッと作成する

2023.03.07

DartでさくっとCLIツール作成。

2023.02.28

CATEGORY LIST

LATEST NEWS

Mac VSCodeで、SFML C++開発環境を作る。

C++

2024.09.09

Rust-SDL2 examplesをすべて試す

Rust

2024.09.01

JavaScriptで、DOMを放り投げる処理

JavaScript

2024.07.27

Rustで創る MOS 6502 CPU その2

Rust

2024.07.23

Rustで創る MOS 6502 CPU その1

Rust

2024.07.19

汎用 3D mesh/model viewerを求め。と、簡単に、FBXファイルをglTF(glb)に変換ツールを求め。

C++

2024.06.06

M1 Macで、OpenGL GLUTを使ってコンパイルする

C

2024.04.27

Rust - Actix Web mongo ユーザー登録 JWT認証

Rust

2024.03.24

Rust - Actix Web JWT 認証認可 APIの作成

Rust

2024.02.25

Rust - Actix Web × JSON 静的ファイルをAPIで返却

Rust

2024.01.19

Rust - Actix Web × MongoDB環境をサクッと起動

Rust

2024.01.18

5分で学ぶ RustでWave Function Collapse (波動関数崩壊アルゴリズム)

Rust

2024.01.15

RANKING

Follow

SPONSOR

現在、掲載募集中です。



Links

About Us

WEBデザイナーの、WEBデザイナーによる、WEBデザイナーの為のサイト。「みんなで書こう!」と仲間を募ってみたが、結局書くのは自分だけとなってしまいました。日々のメモを綴っていきます。

Entry Profile

Graphical FrontEnd Engineer
- Daisuke Takayama

MAD CITY 北九州市で生まれ育つ。20代はバンド活動に明け暮れ、ふと「webデザイナーになりたい。」と思い、デジタルハリウッド福岡校入学。卒業後、数々の賞を受賞、web業界をざわつかせる。
現在、主に、ゲーム制作中心に港区六本木界隈で活動中。

FOLLOW US