MODULE.bazel ファイル

問題を報告 Nightly · 8.3 · 8.2 · 8.1 · 8.0 · 7.6

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

メンバー

archive_override

None archive_override(module_name, urls, integrity='', strip_prefix='', patches=[], patch_cmds=[], patch_strip=0)

この依存関係は、レジストリからではなく、特定の場所にあるアーカイブ ファイル(zip、gzip など)から取得する必要があることを指定します。このディレクティブはルート モジュールでのみ有効になります。つまり、モジュールが他のモジュールの依存関係として使用されている場合、そのモジュール独自のオーバーライドは無視されます。

パラメータ

パラメータ 説明
module_name 必須
このオーバーライドを適用する Bazel モジュール依存関係の名前。
urls 文字列、または文字列の Iterable。必須。
アーカイブの URL。http(s):// または file:// URL を指定できます。
integrity デフォルトは ''
です。 アーカイブ ファイルの想定されるチェックサム(Subresource Integrity 形式)。
strip_prefix デフォルトは ''
です。 解凍されたファイルから削除するディレクトリの接頭辞。
patches 文字列のイテラブル。デフォルトは []
です。 このモジュールに適用するパッチ ファイルを指すラベルのリスト。パッチファイルは、最上位プロジェクトのソースツリーに存在する必要があります。ルールはリストの順序で適用されます。
patch_cmds 文字列のイテラブル。デフォルトは []
です。 パッチの適用後に Linux/Macos で適用される Bash コマンドのシーケンス。
patch_strip デフォルトは 0
です。 Unix パッチの --strip 引数と同じです。

bazel_dep

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

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

パラメータ

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

git_override

None git_override(module_name, remote, commit='', patches=[], patch_cmds=[], patch_strip=0, init_submodules=False, strip_prefix='')

依存関係が Git リポジトリの特定の commit から取得されることを指定します。このディレクティブはルート モジュールでのみ有効になります。つまり、モジュールが他のモジュールの依存関係として使用されている場合、そのモジュール独自のオーバーライドは無視されます。

パラメータ

パラメータ 説明
module_name 必須
このオーバーライドを適用する Bazel モジュール依存関係の名前。
remote 必須
リモートの Git リポジトリの URL。
commit デフォルトは ''
です。チェックアウトする commit。
patches 文字列のイテラブル。デフォルトは []
です。 このモジュールに適用するパッチ ファイルを指すラベルのリスト。パッチファイルは、最上位プロジェクトのソースツリーに存在する必要があります。ルールはリストの順序で適用されます。
patch_cmds 文字列のイテラブル。デフォルトは []
です。 パッチの適用後に Linux/Macos で適用される Bash コマンドのシーケンス。
patch_strip デフォルトは 0
です。 Unix パッチの --strip 引数と同じです。
init_submodules デフォルトは False
です。取得したリポジトリの git サブモジュールを再帰的に初期化するかどうか。
strip_prefix デフォルトは ''
です。 抽出されたファイルから削除するディレクトリの接頭辞。これは、git リポジトリのサブディレクトリをターゲットにするために使用できます。サブディレクトリには、この `git_override` に渡された `module_name` 引数と同じモジュール名を持つ独自の `MODULE.bazel` ファイルが必要です。

含む

None include(label)

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

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

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

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

パラメータ

パラメータ 説明
label 必須
含めるファイルを指すラベル。ラベルはメイン リポジトリ内のファイルを指す必要があります。つまり、二重スラッシュ(//)で始まる必要があります。

local_path_override

None local_path_override(module_name, path)

依存関係がローカル ディスクの特定のディレクトリから取得されることを指定します。このディレクティブはルート モジュールでのみ有効になります。つまり、モジュールが他のモジュールの依存関係として使用されている場合、そのモジュール独自のオーバーライドは無視されます。

パラメータ

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

モジュール

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

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

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

パラメータ

パラメータ 説明
name デフォルトは ''
です。モジュールの名前。このモジュールがルート モジュールの場合(つまり、別のモジュールから依存されない場合)にのみ省略できます。有効なモジュール名は、1)小文字(a ~ z)、数字(0 ~ 9)、ドット(.)、ハイフン(-)、アンダースコア(_)のみを含む、2)小文字で始まる、3)小文字または数字で終わる、という条件を満たす必要があります。
version デフォルトは ''
です。 モジュールのバージョン。このモジュールがルート モジュールの場合(つまり、別のモジュールから依存されない場合)にのみ省略できます。バージョンは緩和された SemVer 形式である必要があります。詳細については、ドキュメントをご覧ください。
compatibility_level デフォルトは 0
です。モジュールの互換性レベル。下位互換性のない大きな変更が導入されるたびに変更する必要があります。これは、SemVer の観点から見るとモジュールの「メジャー バージョン」とほぼ同じですが、バージョン文字列自体に埋め込まれているのではなく、別のフィールドとして存在します。互換性レベルが異なるモジュールは、名前が異なるモジュールであるかのようにバージョン解決に参加しますが、最終的な依存関係グラフには、同じ名前で互換性レベルが異なる複数のモジュールを含めることはできません(multiple_version_override が有効になっている場合を除く)。詳しくは、ドキュメントをご覧ください。
repo_name デフォルトは ''
モジュール自体から見た、このモジュールを表すリポジトリの名前。デフォルトでは、リポジトリの名前はモジュールの名前です。これは、モジュール名とは異なるリポジトリ名を自身に使用しているプロジェクトの移行を容易にするために指定できます。
bazel_compatibility 文字列の Iterable。デフォルトは []
です。 ユーザーがこのモジュールと互換性のある 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 必須
このオーバーライドを適用する Bazel モジュール依存関係の名前。
versions 文字列の反復可能オブジェクト。必須
共存を許可するバージョンを明示的に指定します。これらのバージョンは、依存関係グラフの事前選択にすでに存在している必要があります。このモジュールへの依存関係は、同じ互換性レベルで許容される最も近い上位バージョンに「アップグレード」されます。一方、同じ互換性レベルで許容されるどのバージョンよりも高いバージョンを持つ依存関係は、エラーを引き起こします。
registry デフォルトは ''
です。 このモジュールのレジストリをオーバーライドします。デフォルトのレジストリ リストからこのモジュールを見つける代わりに、指定されたレジストリを使用する必要があります。

register_execution_platforms

None register_execution_platforms(dev_dependency=False, *platform_labels)

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

パラメータ

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

register_toolchains

None register_toolchains(dev_dependency=False, *toolchain_labels)

このモジュールが選択されたときに登録される、すでに定義されているツールチェーンを指定します。絶対ターゲット パターン(@ または // で始まる)である必要があります。詳しくは、ツールチェーン解決をご覧ください。

パラメータ

パラメータ 説明
dev_dependency デフォルトは False
です。 true の場合、現在のモジュールがルート モジュールでないか、`--ignore_dev_dependency` が有効になっていると、ツールチェーンは登録されません。
toolchain_labels 文字列シーケンス。必須
登録するツールチェーンのラベル。ラベルに :all を含めることができます。その場合、パッケージ内のツールチェーンを提供するすべてのターゲットが、名前の辞書順で登録されます。

single_version_override

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

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

パラメータ

パラメータ 説明
module_name 必須
このオーバーライドを適用する Bazel モジュール依存関係の名前。
version デフォルトは ''
です。依存関係グラフで宣言されたこのモジュールのバージョンをオーバーライドします。つまり、このモジュールはこのオーバーライド バージョンに「固定」されます。レジストリまたはパッチのみをオーバーライドする場合は、この属性を省略できます。
registry デフォルトは ''
です。 このモジュールのレジストリをオーバーライドします。デフォルトのレジストリ リストからこのモジュールを見つける代わりに、指定されたレジストリを使用する必要があります。
patches 文字列のイテラブル。デフォルトは []
です。 このモジュールに適用するパッチ ファイルを指すラベルのリスト。パッチファイルは、最上位プロジェクトのソースツリーに存在する必要があります。ルールはリストの順序で適用されます。
patch_cmds 文字列のイテラブル。デフォルトは []
です。 パッチの適用後に Linux/Macos で適用される Bash コマンドのシーケンス。
patch_strip デフォルトは 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 必須
使用するモジュール拡張機能の名前。この名前のシンボルは、Starlark ファイルによってエクスポートされる必要があります。
dev_dependency デフォルトは False
です。 true の場合、現在のモジュールがルートモジュールでないか、`--ignore_dev_dependency` が有効になっている場合、このモジュール拡張機能の使用は無視されます。
isolate デフォルトは False
です(試験運用)。このパラメータは試験運用版であり、いつでも変更される可能性があります。これに依存しないでください。---experimental_isolated_extension_usages
true に設定すると、試験的に有効になることがあります。この場合、モジュール拡張機能のこの使用は、このモジュールと他のモジュールの両方で、他のすべての使用から分離されます。この使用目的で作成されたタグは他の使用目的に影響しません。また、この使用目的で拡張機能によって生成されたリポジトリは、拡張機能によって生成された他のすべてのリポジトリとは異なります。

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

use_repo

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

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

パラメータ

パラメータ 説明
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 必須
リポジトリルールを定義する Starlark ファイルのラベル。
repo_rule_name 必須
使用するリポジトリルールの名前。この名前のシンボルは、Starlark ファイルによってエクスポートされる必要があります。