このサイトは、只今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

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

LLaMAモデル GGMLフォーマット(llama.cpp)をRustフレームワーク Leptosを用いて M1MacMiniでサクッと動かす。

Rust

2024.01.11

2024年 狙っているモバイルノートPC

tool

2024.01.07

MacOS XcodeにSDL2を追加

tool

2023.12.26

php 7.4にアップデート

PHP

2023.12.24

5分で覚える Flutter Flameで作る Wave Function Collapse - 波動関数崩壊アルゴリズム

AI・Bot・algorithm

2023.12.20

Flutter - Flameでゲーム作成 (キャラクターの移動)

Flutter

2023.07.23

Flutterで作る ChatGPT Prompt Manager

Flutter

2023.07.12

RANKING

Follow

SPONSOR

現在、掲載募集中です。



Links

About Us

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

Entry Profile

Graphical FrontEnd Engineer
- Daisuke Takayama

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

FOLLOW US