pnpmがPythonとRust依存も管理

pnpm 12.4はnpmパッケージ、Pythonパッケージ、Rust crateを同じワークスペースで導入できますが、各エコシステム固有のマニフェストと規則は維持します。

✓ 検証済み 出典 pnpm 12.4 official release notes, independently checked against npm registry publication metadata and the distributed Linux executable ⚑ 開発ツール

60秒でわかる

pnpm 12.4はJavaScript、Python、Rustの依存導入を同じワークスペースから調整し、各環境固有のマニフェストとロックファイルは維持します。

要点

  • Pythonはpyproject.toml、標準pylock.toml、管理された仮想環境を使います。
  • RustはCargo.tomlとCargo.lockを維持し、解決したcrateをvendorします。
  • ダウンロード、認証、成果物処理、コンテンツアドレス型保存を共通化します。
  • 新しいpnpm pipelineは影響範囲選択、タスクグラフ、出力キャッシュを提供します。
  • 公式は初期段階と説明し、設定とレイアウトが変わる可能性を示しています。

結論. 混合言語monorepoには有望ですが、本番ツールチェーンの即時置換ではなく限定的な試行から始めるべきです。

pnpm 12.4は同じワークスペースでnpm、Python、Rustの依存を調整できます。 `pyproject.toml`、`Cargo.toml`、各ロックファイルを置き換えず、その外側に共通の導入・保存層を加えます。

変更点一つのコマンドで三つの依存環境を調整

`pnpm-workspace.yaml`で`python.enabled`または`cargo.enabled`を有効にすると、`pypi:`や`crate:`セレクターで依存を追加し、一度の`pnpm install`で導入できます。npm依存は従来のJavaScript経路を使います。

JavaScriptnpmメタデータとpnpmロックファイルを従来どおり使います。
Pythonpyproject.tomlと標準pylock.tomlに記録し、プロジェクトごとに.venvを管理します。
RustCargo.tomlとCargo.lockを維持し、解決したcrateをCargo方式でvendorします。

共通層はネットワーク、registry認証、成果物の検証、コンテンツアドレス型ストレージです。リリースノートでは三つの経路でfrozenとoffline導入を利用できるとしています。

意味対象はpolyglot monorepo

一つの製品リポジトリにTypeScriptのフロントエンド、Pythonサービス、Rust拡張が同居することがあります。通常はCIで複数のインストーラーとキャッシュを接続します。pnpm 12.4は言語固有の解決規則を残しながら、その配管を調整します。

共通化するのは導入の制御面であり、パッケージ形式ではありません。

もう一つの追加pnpm pipelineがタスクグラフを導入

新しい`pnpm pipeline`はfrozen依存を導入し、宣言されたワークスペースタスクを依存順に実行します。影響を受けるプロジェクトの選択、出力キャッシュ、ログ再生に対応し、一つの失敗後も他のエラーを収集できます。

  • `inputs`、`outputs`、`env`をキャッシュキーに反映できます。
  • `pnpm pipeline --dry-run`はフックを実行せずグラフを表示します。
  • Cargoタスクはworktree間でtargetディレクトリを再利用できます。

検証成果物は公開済み、成熟度は未確認

12.4.09月8日にnpm registryへ公開
12.4.19月10日に追補版を公開
3新しい導入経路が調整する依存環境

iyuはnpm registryのメタデータを確認し、個別配布のLinux x64実行ファイルも取得しました。実行結果は12.4.0です。公開の事実は確認できますが、本番規模での信頼性を示すものではありません。

導入前境界を先に試す

  • 重要度の低いワークスペースから始め、生成ファイルを確認します。
  • frozenとoffline導入を既存CIと比較します。
  • registry認証とセキュリティ方針の流れを確認します。
  • 調査用にPythonとCargoのネイティブコマンドを残します。

判断基準は全言語ツールを置き換えられるかではなく、初期機能を採用するコスト以上にCIとワークスペースの調整を減らせるかです。