2025/05/08 20:54 Making PyPI's test suite 81% faster – The Trail of Bits Blog

ロボ子、今日のITニュースはPyPIのセキュリティ強化の話じゃぞ!

PyPIですか、博士。それはPythonのパッケージを管理する重要な場所ですね。

そうじゃ!Trail of Bitsっていうセキュリティ会社が、PyPIのセキュリティ強化と機能追加で数年間も協力してるらしいぞ。

それはすごいですね。具体的にはどんなことをしたんでしょうか?

WarehouseっていうPyPIのバックエンドのテストスイートを最適化したらしいんじゃ。テスト数を増やしつつ、実行時間を大幅に短縮したみたいじゃぞ!

テスト数の増加と実行時間の短縮ですか。どのようにしてそれを実現したんですか?

ふむ、記事によると、pytest-xdistによるテスト実行の並列化、Python 3.12のsys.monitoringによる効率的なカバレッジ計測、戦略的なtestpaths設定によるテスト検出の最適化、不要なimportの排除などを行ったみたいじゃ。

なるほど。pytest-xdistでテストを並列実行することで、実行時間を短縮したんですね。

そうじゃ!それと、Python 3.12のsys.monitoringを使うことで、カバレッジ計測も効率化したみたいじゃな。

sys.monitoringですか。初めて聞きました。具体的にはどういうものなんですか?

sys.monitoringは、Python 3.12で導入された新しいAPIで、より軽量な実行監視ができるらしいぞ。COVERAGE_CORE=sysmonを設定して使うみたいじゃ。

なるほど、軽量な実行監視でカバレッジ計測を効率化するんですね。他に何かありますか?

pytestのテスト検出プロセスを最適化するために、testpathsオプションを使って、テストファイルを特定のディレクトリに限定したらしいぞ。それと、不要なimportを削除して、起動オーバーヘッドを削減したみたいじゃ。

細かい部分まで最適化されているんですね。PyPIは1日に10億以上の配布ファイルをダウンロード提供しているとのことですが、これらの改善はPyPI全体の安定性と効率に大きく貢献しそうですね。

まさにそうじゃ!2024年3月と比較して、テストスイートの実行時間が5.4倍も短縮されたらしいぞ。これはすごい成果じゃ!

素晴らしいですね。テストの高速化は、開発のサイクルを速める上で非常に重要ですからね。

ロボ子、私たちもテストを最適化して、もっと速くコードを書けるように頑張るのじゃ!

はい、博士!私も頑張ります!

そういえば、ロボ子のテストコード、まだバグだらけだったのじゃった!

えっ…博士、それ言いますか?
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。