pip 26.1 の新機能:ロックファイルと依存関係のクールダウン
Pythonパッケージマネージャーpipのバージョン26.1において、依存関係のロックファイル生成機能と新パッケージのインストール制限(クールダウン)機能が正式に実装され、サプライチェーンセキュリティが強化された。
キーポイント
ロックファイル(Lockfiles)の標準化
「pip lock」コマンドにより、インストールされたパッケージとその依存関係全体をpylock.toml形式で一元管理可能となり、環境の再現性が向上した。
依存関係のクールダウン機能
「--uploaded-prior-to」オプションにより、指定された日数以内に公開された新バージョンのインストールを制限でき、悪意のあるコードやバグ混入リスクを軽減する。
Python 3.9サポート終了と最新環境対応
pip 26.1はPython 3.9のサポートを終了し、最新のPython 3.14など現行環境での動作を前提としている。
影響分析・編集コメントを表示
影響分析
このアップデートは、Python開発者にとってパッケージ管理のセキュリティと再現性が飛躍的に向上することを意味する。特に、AIモデルやライブラリの依存関係が複雑化する現代の開発環境において、意図しない新バージョンの自動更新による破壊的変更や、マルウェア混入リスクを「クールダウン」機能で緩和できる点は重要である。ただし、既存のCI/CDパイプラインやレガシーな環境との互換性確保には注意が必要となる。
編集コメント
AI開発において依存関係の安定性は極めて重要であり、pip標準機能としてのロックファイルとクールダウンは、セキュリティリスク低減の観点から歓迎すべき進展である。
pip 26.1 の新機能 - ロックファイルと依存関係のクールダウン
Richard Si 氏は、依存関係をインストールするための Python のデフォルトツールである pip に対する優れた一連のアップグレードを説明しています。
このバージョンでは Python 3.9 のサポートが終了しました。すでに 10 月 にエンドオブライフ(EOL)を迎えているので、当然のことと言えます。macOS では依然として python3 がデフォルトの Python 3.9 として同梱されているため、私は以下のように新しい Python バージョンを Python 3.14 で試してみました。
uv python install 3.14
mkdir /tmp/experiment
cd /tmp/experiment
python3.14 -m venv venv
source venv/bin/activate
pip install -U pip
pip --version
これにより、pip 26.1 がインストールされていることが確認できました。その後、新しいロックファイルを試しました。
pip lock datasette llm
これにより Datasette と LLM、およびそれらのすべての依存関係がインストールされ、全体が 519 行の pylock.toml ファイルに書き出されます。結果はこちら です。
今回の新リリースでは、以前 ここで議論された 依存関係のクールダウン(dependency cooldowns)にも対応しており、X が日数を表す新しい --uploaded-prior-to PXD オプションを通じて利用可能です。この形式は P-日数-D であり、ISO 期間フォーマット に従っていますが、日数のみをサポートしています。
3日前、LLMの新しいリリースであるバージョン0.31を公開しました。ここでは、少なくとも4日前にアップロードされたバージョンを要求するために、新しい --uploaded-prior-to P4D オプションを使用する方法を示します。
pip install llm --uploaded-prior-to P4D
venv/bin/llm --version
これにより、バージョン0.30が取得されました。
Via Lobste.rs
Tags: packaging, pip, python, security, supply-chain
原文を表示
What's new in pip 26.1 - lockfiles and dependency cooldowns!
Richard Si describes an excellent set of upgrades to Python's default pip tool for installing dependencies.
This version drops support for Python 3.9 - fair enough, since it's been EOL since October. macOS still ships with python3 as a default Python 3.9, so I tried out the new Python version against Python 3.14 like this:
uv python install 3.14
mkdir /tmp/experiment
cd /tmp/experiment
python3.14 -m venv venv
source venv/bin/activate
pip install -U pip
pip --version
This confirmed I had pip 26.1 - then I tried out the new lock files:
pip lock datasette llm
This installs Datasette and LLM and all of their dependencies and writes the whole lot to a 519 line pylock.toml file - here's the result.
The new release also supports dependency cooldowns, discussed here previously, via the new --uploaded-prior-to PXD option where X is a number of days. The format is P-number-of-days-D, following ISO duration format but only supporting days.
I shipped a new release of LLM, version 0.31, three days ago. Here's how to use the new --uploaded-prior-to P4D option to ask for a version that is at least 4 days old.
pip install llm --uploaded-prior-to P4D
venv/bin/llm --version
This gave me version 0.30.
Via Lobste.rs
Tags: packaging, pip, python, security, supply-chain
関連記事
今日のまとめ
AI日報で今日の重要ニュースをまとめ読み