MODULE.bazel ファイル

問題を報告する ナイトリー · 8.0 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

MODULE.bazel ファイルで使用できるメソッド。

メンバー

archive_override

None archive_override(module_name, **kwargs)

この依存関係がレジストリではなく、特定の場所にあるアーカイブ ファイル(zip、gzip など)から取得されることを指定します。実質的には、この依存関係は http_archive ルールによってバックアップされます。

このディレクティブはルート モジュールでのみ有効になります。つまり、モジュールが他のモジュールによって依存関係として使用されている場合、そのモジュールのオーバーライドは無視されます。

パラメータ

パラメータ 説明
module_name string; 必須
このオーバーライドを適用する Bazel モジュール依存関係の名前。
kwargs 必須
それ以外の引数はすべて、基盤となる http_archive リポジトリ ルールに転送されます。name 属性は指定しないでください。代わりに module_name を使用してください。

bazel_dep

None bazel_dep(name, version='', max_compatibility_level=-1, repo_name='', dev_dependency=False)

別の Bazel モジュールに対する直接的な依存関係を宣言します。

パラメータ

パラメータ 説明
name string; 必須
直接依存関係として追加するモジュールの名前。
version string; デフォルトは ''
直接依存関係として追加するモジュールのバージョン。
max_compatibility_level int; デフォルトは -1
モジュールを直接依存関係として追加するためにサポートされている最大 compatibility_level。モジュールのバージョンには、サポートされている最小の compatibility_level と、この属性が指定されていない場合の最大の compatibility_level が暗黙的に含まれます。
repo_name 文字列。デフォルトは ''
。この依存関係を表す外部リポジトリの名前。デフォルトでは、モジュールの名前になります。
dev_dependency bool。デフォルトは False
。true の場合、現在のモジュールがルート モジュールでない場合、または `--ignore_dev_dependency` が有効になっている場合、この依存関係は無視されます。

git_override

None git_override(module_name, **kwargs)

この依存関係は、レジストリではなく、Git リポジトリ内の特定の commit から取得されることを指定します。実質的には、この依存関係は git_repository ルールによってサポートされます。

このディレクティブはルート モジュールでのみ有効になります。つまり、モジュールが他のモジュールによって依存関係として使用されている場合、そのモジュールのオーバーライドは無視されます。

パラメータ

パラメータ 説明
module_name string; 必須
このオーバーライドを適用する Bazel モジュール依存関係の名前。
kwargs 必須
それ以外の引数はすべて、基盤となる git_repository リポジトリ ルールに転送されます。name 属性は指定しないでください。代わりに module_name を使用してください。

含む

None include(label)

別の MODULE.bazel のようなファイルの内容が含まれています。実際には、include() は、含まれるファイルが include() 呼び出しの場所にテキストとして配置されているかのように動作します。ただし、変数バインディング(use_extension で使用されるものなど)は、含まれるファイルや包含ファイルではなく、そのファイルにのみ表示されます。

include() はルート モジュールでのみ使用できます。bazel_dep の MODULE ファイルで include() を使用するとエラーになります。

メイン リポジトリ内のファイルのみを含めることができます。

include() を使用すると、巨大な MODULE.bazel ファイルを回避したり、個々のセマンティック セグメントのアクセス制御を適切に管理したりするために、ルート モジュール ファイルを複数の部分に分割できます。

パラメータ

パラメータ 説明
label string; 必須
含めるファイルを指すラベル。ラベルはメイン リポジトリ内のファイルを指す必要があります。つまり、二重スラッシュ(//)で始まる必要があります。ファイル名は .MODULE.bazel で終わる必要があり、. で始まってはなりません。

inject_repo

None inject_repo(extension_proxy, *args, **kwargs)

指定されたモジュール拡張機能に 1 つ以上の新しいリポジトリを挿入します。現在のモジュールがルート モジュールでない場合、または --ignore_dev_dependency が有効になっている場合、これは無視されます。

既存のリポジトリをオーバーライドするには、代わりに override_repo を使用します。

パラメータ

パラメータ 説明
extension_proxy module_extension_proxy; 必須
use_extension 呼び出しによって返されるモジュール拡張プロキシ オブジェクト。
args 必須
現在のモジュールに表示されるリポジトリで、同じ名前で拡張機能に挿入する必要があります。
kwargs 必須
拡張機能に挿入する新しいリポジトリ。値は現在のモジュールのスコープ内にあるリポジトリの名前で、キーは拡張機能で表示される名前です。

local_path_override

None local_path_override(module_name, path)

この依存関係は、レジストリではなくローカル ディスクの特定のディレクトリから取得されることを指定します。実質的には、この依存関係は local_repository ルールによってサポートされます。

このディレクティブはルート モジュールでのみ有効になります。つまり、モジュールが他のモジュールによって依存関係として使用されている場合、そのモジュールのオーバーライドは無視されます。

パラメータ

パラメータ 説明
module_name string; 必須
このオーバーライドを適用する Bazel モジュール依存関係の名前。
path string; 必須
このモジュールが配置されているディレクトリのパス。

モジュール

None module(name='', version='', compatibility_level=0, repo_name='', bazel_compatibility=[])

現在の Bazel リポジトリで表される Bazel モジュールの一部の属性を宣言します。これらのプロパティは、モジュールの重要なメタデータ(名前やバージョンなど)であるか、現在のモジュールとその依存関係の動作に影響します。

呼び出す回数は 1 回までで、呼び出す場合は MODULE.bazel ファイルの最初のディレクティブにする必要があります。このモジュールがルート モジュールである場合(つまり、他のモジュールに依存しないモジュールである場合)のみ、省略できます。

パラメータ

パラメータ 説明
name string; デフォルトは ''
モジュールの名前。このモジュールがルート モジュールである場合(つまり、他のモジュールに依存しないモジュールである場合)のみ省略できます。有効なモジュール名は、1)小文字(a ~ z)、数字(0 ~ 9)、ピリオド(.)、ハイフン(-)、アンダースコア(_)のみを含める必要があります。2)先頭は小文字にする必要があります。3)末尾は小文字または数字にする必要があります。
version string(デフォルトは ''
): モジュールのバージョン。このモジュールがルート モジュールである場合(つまり、他のモジュールに依存しないモジュールである場合)のみ省略できます。バージョンは緩和された SemVer 形式にする必要があります。詳細については、ドキュメントをご覧ください。
compatibility_level int; デフォルトは 0
モジュールの互換性レベル。互換性のない大きな変更が導入されるたびに変更する必要があります。これは基本的に、SemVer で言うモジュールの「メジャー バージョン」ですが、バージョン文字列自体に埋め込まれているのではなく、個別のフィールドとして存在するという点が異なります。互換性レベルが異なるモジュールは、名前が異なるモジュールであるかのようにバージョン解決に参加しますが、最終的な依存関係グラフには、同じ名前で互換性レベルが異なる複数のモジュールを含めることはできません(multiple_version_override が有効な場合を除きます)。詳しくは、ドキュメントをご覧ください。
repo_name 文字列。デフォルトは ''
。このモジュールを表すリポジトリの名前(モジュール自体から見た名前)。デフォルトでは、リポジトリの名前はモジュールの名前です。これは、モジュール名とは異なるリポジトリ名を使用していたプロジェクトの移行を容易にするために指定できます。
bazel_compatibility 文字列の反復可能オブジェクト。デフォルトは []
。このモジュールと互換性のある Bazel バージョンをユーザーが宣言できる Bazel バージョンのリスト。依存関係の解決には影響しませんが、bzlmod はこの情報を使用して、現在の Bazel バージョンが互換性があるかどうかを確認します。この値の形式は、カンマで区切った一連の制約値の文字列です。3 つの制約がサポートされています。<=X.X.X: Bazel バージョンは X.X.X 以下である必要があります。新しいバージョンに既知の互換性のない変更がある場合に使用します。>=X.X.X: Bazel のバージョンは X.X.X 以上である必要があります。X.X.X 以降でのみ利用可能な機能に依存している場合に使用します。-X.X.X: Bazel バージョン X.X.X は互換性がありません。X.X.X にバグがあり、それが原因で機能しなくなるが、それ以降のバージョンで修正されている場合に使用します。

multiple_version_override

None multiple_version_override(module_name, versions, registry='')

依存関係は引き続きレジストリから取得されるが、複数のバージョンが共存することを許可することを指定します。詳しくは、ドキュメントをご覧ください。このディレクティブはルート モジュールでのみ有効になります。つまり、モジュールが他のモジュールによって依存関係として使用されている場合、そのモジュールのオーバーライドは無視されます。

パラメータ

パラメータ 説明
module_name string; 必須
このオーバーライドを適用する Bazel モジュール依存関係の名前。
versions 文字列のイテレーター。必須
共存を許可するバージョンを明示的に指定します。これらのバージョンは、依存関係グラフの事前選択にすでに存在している必要があります。このモジュールの依存関係は、同じ互換性レベルで許可されているバージョンに最も近いバージョンに「アップグレード」されます。一方、同じ互換性レベルで許可されているバージョンよりもバージョンが大きい依存関係はエラーになります。
registry 文字列。デフォルトは ''
。このモジュールのレジストリをオーバーライドします。レジストリのデフォルト リストからこのモジュールを検索するのではなく、指定されたレジストリを使用する必要があります。

override_repo

None override_repo(extension_proxy, *args, **kwargs)

指定されたモジュール拡張機能で定義された 1 つ以上のリポジトリを、現在のモジュールに表示される指定されたリポジトリでオーバーライドします。現在のモジュールがルート モジュールでない場合、または `--ignore_dev_dependency` が有効になっている場合、これは無視されます。

代わりに inject_repo を使用して、新しいリポジトリを追加します。

パラメータ

パラメータ 説明
extension_proxy module_extension_proxy; 必須
use_extension 呼び出しによって返されるモジュール拡張プロキシ オブジェクト。
args 必須
現在モジュール内の同じ名前のリポジトリでオーバーライドする必要がある拡張機能のリポジトリ。
kwargs 必須
拡張機能によって生成されたリポジトリに適用するオーバーライド。値は現在のモジュールのスコープの中の各リポジトリの名前で、キーは拡張機能でオーバーライドするリポジトリの名前です。

register_execution_platforms

None register_execution_platforms(dev_dependency=False, *platform_labels)

このモジュールを選択したときに登録される、すでに定義されている実行プラットフォームを指定します。絶対的なターゲット パターン@ または // で始まる)にする必要があります。詳細については、ツールチェーンの解決をご覧ください。複数のターゲットに展開されるパターン(:all など)は、名前の辞書順で登録されます。

パラメータ

パラメータ 説明
dev_dependency bool。デフォルトは False
。true の場合、現在のモジュールがルート モジュールでない場合や `--ignore_dev_dependency` が有効になっている場合、実行プラットフォームは登録されません。
platform_labels 文字列シーケンス。必須
登録するターゲット パターン。

register_toolchains

None register_toolchains(dev_dependency=False, *toolchain_labels)

このモジュールを選択したときに登録する、すでに定義されているツールチェーンを指定します。絶対的なターゲット パターン@ または // で始まる)にする必要があります。詳細については、ツールチェーンの解決をご覧ください。:all など、複数のターゲットに展開されるパターンは、ターゲット名(ツールチェーン実装の名前ではない)で辞書順に登録されます。

パラメータ

パラメータ 説明
dev_dependency bool。デフォルトは False
。true の場合、現在のモジュールがルート モジュールでない場合や `--ignore_dev_dependency` が有効になっている場合、ツールチェーンは登録されません。
toolchain_labels 文字列シーケンス。必須
登録するターゲット パターン。

single_version_override

None single_version_override(module_name, version='', registry='', patches=[], patch_cmds=[], patch_strip=0)

依存関係は引き続きレジストリから取得されるが、バージョンが固定されるか、レジストリがオーバーライドされるか、パッチのリストが適用されることを指定します。このディレクティブはルート モジュールでのみ有効になります。つまり、モジュールが他のモジュールによって依存関係として使用されている場合、そのモジュールのオーバーライドは無視されます。

パラメータ

パラメータ 説明
module_name string; 必須
このオーバーライドを適用する Bazel モジュール依存関係の名前。
version string; デフォルトは ''
依存関係グラフで宣言されているこのモジュールのバージョンをオーバーライドします。つまり、このモジュールは、このオーバーライド バージョンに「固定」されます。レジストリまたはパッチのみをオーバーライドする場合は、この属性を省略できます。
registry 文字列。デフォルトは ''
。このモジュールのレジストリをオーバーライドします。レジストリのデフォルト リストからこのモジュールを検索するのではなく、指定されたレジストリを使用する必要があります。
patches 文字列の反復可能オブジェクト。デフォルトは []
。このモジュールに適用するパッチファイルを指すラベルのリスト。パッチファイルは、最上位プロジェクトのソースツリーに存在している必要があります。リストの順序で適用されます。

パッチで MODULE.bazel ファイルに変更を加えた場合は、ルート モジュールからパッチ ファイルが提供されている場合にのみ、変更が有効になります。

patch_cmds 文字列の反復可能オブジェクト。デフォルトは []
。パッチ適用後に Linux または macOS で適用される Bash コマンドのシーケンス。

MODULE.bazel ファイルの変更は有効になりません。

patch_strip int。デフォルトは 0
。Unix パッチの --strip 引数と同じです。

use_extension

module_extension_proxy use_extension(extension_bzl_file, extension_name, *, dev_dependency=False, isolate=False)

モジュール拡張機能を表すプロキシ オブジェクトを返します。このオブジェクトのメソッドを呼び出して、モジュール拡張タグを作成できます。

パラメータ

パラメータ 説明
extension_bzl_file 文字列; 必須
Starlark ファイルのラベル。モジュール拡張機能を定義します。
extension_name string; 必須
使用するモジュール拡張機能の名前。この名前のシンボルは、Starlark ファイルによってエクスポートする必要があります。
dev_dependency bool。デフォルトは False
。true の場合、現在のモジュールがルート モジュールでないか、`--ignore_dev_dependency` が有効になっている場合、モジュール拡張機能のこの使用は無視されます。
isolate bool。デフォルトは False
試験運用版。このパラメータは試験運用版であり、随時変更される可能性があります。これに依存しないでください。--experimental_isolated_extension_usages を設定することで、試験運用版として有効にできます。
true に設定すると、このモジュール拡張機能のこの使用は、このモジュールと他のモジュールの両方において、他のすべての使用から分離されます。この用途のために作成されたタグは他の用途には影響しません。また、この用途のために拡張機能によって生成されたリポジトリは、拡張機能によって生成された他のすべてのリポジトリとは異なります。

このパラメータは現在試験運用中であり、フラグ --experimental_isolated_extension_usages でのみ使用できます。

use_repo

None use_repo(extension_proxy, *args, **kwargs)

指定されたモジュール拡張機能によって生成された 1 つ以上のリポジトリを現在のモジュールのスコープにインポートします。

パラメータ

パラメータ 説明
extension_proxy module_extension_proxy; 必須
use_extension 呼び出しによって返されるモジュール拡張プロキシ オブジェクト。
args 必須
インポートするリポジトリの名前。
kwargs 必須
現在のモジュールのスコープに異なる名前でインポートする特定のリポジトリを指定します。キーは現在のスコープで使用する名前にする必要があります。値は、モジュール拡張機能によってエクスポートされた元の名前にする必要があります。

use_repo_rule

repo_rule_proxy use_repo_rule(repo_rule_bzl_file, repo_rule_name)

MODULE.bazel ファイルでリポジトリ ルールとして 1 回以上直接呼び出せるプロキシ値を返します。この方法で作成されたリポジトリは、プロキシの name 属性を使用して宣言された名前で、現在のモジュールにのみ表示されます。暗黙的なブール値 dev_dependency 属性をプロキシで使用して、特定のリポジトリが現在のモジュールがルート モジュールの場合にのみ作成されることを指定することもできます。

パラメータ

パラメータ 説明
repo_rule_bzl_file 文字列。必須
Repo ルールを定義する Starlark ファイルのラベル。
repo_rule_name string; 必須
使用するリポジトリ ルールの名前。この名前のシンボルは、Starlark ファイルによってエクスポートする必要があります。