yomoyomoさん経由。元記事はLog4jの脆弱性などを発端に活発に議論されるようになったオープンソースのセキュリティに関するものだが、その中でPyPIというPythonのレポジトリに2FA(2要素認証)を導入しようとしたところコミュニティから大きな反発があったという箇所が気になった。
ということで原文を辿ってみることにする。
PyPIは2022年8月の時点で40万ものプロジェクトが管理されており、PyPIに登録されているソフトウェアは簡単なコマンドでインストールができるのだが、PyPIが上位1%にあたる3500のプロジェクトに対して2FAを要求したところ、コミュニティからoutcry(抗議)があったという。
一見、パッケージマネージャに不正が混入しにくくなりそうで「良い取り組み」だと思うのだが、開発者は何に抗議をしたのだろう。Djangoなど、PyPIの上位1%にあたるプロジェクトをメンテナンスするJames Bennettがブログに書いている。
「it’s open-source, you can’t demand anyone do anything(オープンソースは誰かに何かを要求できるものではない)という考えと矛盾するのだという。
PyPIを管理しているArmin Ronacherに対し、「Arminだって、オープンソースの開発者はeventual(最終的)なユーザのセキュリティのような責任は負わないし負うべきではないと言ってたじゃないか」と言っている。(「進撃の巨人」に出てくるアルミンを彷彿してしまう)
James BennettはPyPIの2FAが嫌だと言っているのではなく、ここで原理を曲げてはいけないということのようだ。
当のArminはPyPIで2FAを始めることに対して「Congratulations」と書いているが、その中でRustがCargo-vetというプロジェクトについて触れている。
cargo-vetはパッケージのユーザが依存関係や個々のバージョンをvet(検査)できるようにするもので、vettings(検査結果)を自分の組織を含む外部と共有することができるようだ。
cargo-vet自体も半年ぐらい前から始まったような取り組みだし、結論を出すには早すぎる段階だが、他の言語のエコシステムも似たような議論となっているのだろう。