コンテンツへスキップ

ワークスペース

ワークスペースとは、相互に依存性のある複数のパッケージで作業できる機能です。ワークスペースは、pyproject.toml で tool.rye.workspace キーを設定することで宣言されます。その後、そのワークスペース内のすべてのプロジェクトは、1 つの仮想環境を共有します。

ワークスペースの宣言

ワークスペースは「トップレベル」の pyproject.toml で宣言されます。少なくとも tool.rye.workspace キーを追加する必要があります。また、意図せずにフォルダーをプロジェクトとして含めないように、メンバーキーに glob パターンを設定することをお勧めします。

[tool.rye.workspace]
members = ["myname-*"]

これは、myname- で始まる名前のすべてのフォルダーが考慮されるワークスペースを宣言します。トップレベルのワークスペース自体がプロジェクトではない場合は、仮想パッケージとして宣言する必要があります。

[tool.rye]
virtual = true

[tool.rye.workspace]
members = ["myname-*"]

それに関する詳細については、仮想パッケージを参照してください。

同期

ワークスペースでは、どのプロジェクトで作業しているかは関係なく、ワークスペース全体が常に同期されます。これにはいくつかの非定型な結果がありますが、一般的な開発ワークフローが簡略化されます。

パッケージが別の依存している場合、インデックスからダウンロードされる前に、最初にワークスペース内でローカルに配置されます。--all-features フラグは自動的にすべてのパッケージに適用されますが、特定のパッケージの機能を有効にするには、機能名にプレフィックスを付ける必要があります。たとえば、myname-bar パッケージの foo 追加機能を有効にするには、次のようにする必要があります。

rye sync --features=myname-bar/foo