何を見るチェックか
OpenSSF Best Practices Badge(旧 CII Best Practices)は、 OSS プロジェクトが自分で質問票に答えて申請するバッジの制度です。
質問はライセンス、ドキュメント、変更の管理、テスト、脆弱性の報告手順、 静的解析、暗号の扱いなど、数十項目にわたります。
バッジには3段階あります。
- Passing(合格)
- Silver(銀)
- Gold(金)
Scorecard は、そのリポジトリがバッジを取得しているかを問い合わせ、 段階に応じて点を付けます。取得していなければ 0点です。
自己申告であり、第三者の監査はありません。 ただし回答は公開されており、誰でも内容を読めます。
点が低いと何を意味するか
点が低いということは、バッジを申請していない、という意味です。それ以上ではありません。
バッジを取得しているプロジェクトについては、次のことが言えます。
- メンテナーが、開発プロセスを整理して見直す作業を実際に行った
- その回答が公開されており、誰でも読める
- 少なくとも、質問票にある項目を意識している
つまりこの項目が示すのは、そのプロジェクトの姿勢です。 実際のコードの状態を測ったものではありません。
誤解しやすい点
0点はほぼ何も意味しません。この項目は特にそうです。
Best Practices Badge を取得しているプロジェクトは、 OSS 全体から見ればごく少数です。理由は単純で、
- 申請には時間がかかります。 数十項目の質問に答える必要があります
- 知られていません。 制度自体を知らないメンテナーが多数です
- 取得しても直接の見返りが少ない。 バッジが増えるだけです
そのため、非常によく保守されている有名なライブラリでも 0点 です。 「取っていない」を「やっていない」と読まないでください。
逆に、バッジがあることも、実態の保証ではありません。 自己申告であり、申請時点の状態です。 申請後に体制が変わっていても、バッジはそのまま残ります。
この項目は、加点材料としては読めるが、減点材料としては読めない、 という非対称な性質を持っています。 0点 のときは判断材料にせず、他の項目を見てください。
採用する側が確認すべきこと
-
バッジがある場合は、回答そのものを読む。 bestpractices.dev でプロジェクト名を検索すると、 各質問への回答と、その根拠として示された URL が読めます。 バッジの有無より、この回答のほうが情報量があります。 脆弱性の報告手順やリリースの手順が、そこに書かれていることがあります。
-
バッジが無い場合は、この項目を飛ばす。 0点 が普通です。代わりに次を見てください。
- Security-Policy — 報告先が公開されているか
- Maintained — 直近の動きがあるか
- License — ライセンスが明示されているか
-
最終更新の日付を見る。 バッジの回答にも更新日があります。何年も前のままなら、現状とはずれている可能性があります。
メンテナーなら何を改善できるか
bestpractices.dev から申請できます。 GitHub アカウントでログインし、リポジトリを登録して質問票に答える形です。
すぐには終わりません。 Passing で数十項目あり、 それぞれに根拠となる URL を求められます。半日は見ておくとよいでしょう。
取り組む価値があるかどうかの目安。
価値がある場合
- 企業や公的機関に採用されることを想定している
- 複数人で開発しており、開発プロセスを言語化しておきたい
- OSS の運営を引き継げる形にしておきたい
優先度が低い場合
- 個人が作った小さなライブラリ
- 実験的な段階のプロジェクト
副次的な効果のほうが大きい制度です。 質問票に答える過程で、 「脆弱性の報告先を書いていない」「リリース手順が書かれていない」 といった抜けが自分で見つかります。
バッジを取らない場合でも、 質問の一覧を チェックリストとして読むだけで役に立ちます。