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 ฯลฯ) ในตำแหน่งที่ตั้งหนึ่งๆ แทนที่จะมาจากรีจิสทรี คำสั่งนี้จะมีผลในโมดูลรูทเท่านั้น กล่าวคือ หากโมดูลอื่นใช้โมดูลหนึ่งเป็นทรัพยากร Dependency ระบบจะไม่สนใจการลบล้างของโมดูลนั้น

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
module_name ต้องระบุ
ชื่อของการอ้างอิงโมดูล Bazel ที่จะใช้การลบล้างนี้
urls string หรือ Iterable ของ string ต้องระบุ
URL ของที่เก็บถาวร อาจเป็น URL http(s):// หรือ file://
integrity ค่าเริ่มต้นคือ ''
ผลรวมตรวจสอบที่คาดไว้ของไฟล์ที่เก็บถาวรในรูปแบบความสมบูรณ์ของทรัพยากรย่อย
strip_prefix ค่าเริ่มต้นคือ ''
คำนำหน้าไดเรกทอรีที่จะนำออกจากไฟล์ที่แยก
patches Iterable ของสตริง ค่าเริ่มต้นคือ []
รายการป้ายกำกับที่ชี้ไปยังไฟล์แพตช์ที่จะใช้กับโมดูลนี้ ไฟล์แพตช์ต้องอยู่ในโครงสร้างแหล่งที่มาของโปรเจ็กต์ระดับบนสุด ระบบจะใช้การตั้งค่าตามลำดับในรายการ
patch_cmds Iterable ของสตริง ค่าเริ่มต้นคือ []
ลำดับของคำสั่ง Bash ที่จะใช้ใน Linux/Macos หลังจากใช้แพตช์แล้ว
patch_strip ค่าเริ่มต้นคือ 0
เหมือนกับอาร์กิวเมนต์ --strip ของแพตช์ Unix

bazel_dep

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

ประกาศการขึ้นต่อกันโดยตรงกับโมดูล Bazel อื่น

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
name ต้องระบุ
ชื่อของโมดูลที่จะเพิ่มเป็นทรัพยากร Dependency โดยตรง
version ค่าเริ่มต้นคือ ''
เวอร์ชันของโมดูลที่จะเพิ่มเป็นทรัพยากร Dependency โดยตรง
max_compatibility_level ค่าเริ่มต้นคือ -1
compatibility_level สูงสุดที่รองรับสำหรับโมดูลที่จะเพิ่มเป็นทรัพยากร Dependency โดยตรง เวอร์ชันของโมดูลจะแสดงถึง compatibility_level ขั้นต่ำที่รองรับ รวมถึงระดับสูงสุดหากไม่ได้ระบุแอตทริบิวต์นี้
repo_name ค่าเริ่มต้นคือ ''
ชื่อของที่เก็บภายนอกที่แสดงการอ้างอิงนี้ ซึ่งเป็นชื่อของโมดูลโดยค่าเริ่มต้น
dev_dependency ค่าเริ่มต้นคือ False
หากเป็นจริง ระบบจะไม่สนใจการขึ้นต่อกันนี้หากโมดูลปัจจุบันไม่ใช่โมดูลรูทหรือมีการเปิดใช้ `--ignore_dev_dependency`

git_override

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

ระบุว่าควรนำการอ้างอิงมาจากคอมมิตหนึ่งๆ ของที่เก็บ Git คำสั่งนี้จะมีผลในโมดูลรูทเท่านั้น กล่าวคือ หากโมดูลอื่นใช้โมดูลหนึ่งเป็นทรัพยากร Dependency ระบบจะไม่สนใจการลบล้างของโมดูลนั้น

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
module_name ต้องระบุ
ชื่อของการอ้างอิงโมดูล Bazel ที่จะใช้การลบล้างนี้
remote ต้องระบุ
URL ของที่เก็บ Git ระยะไกล
commit ค่าเริ่มต้นคือ ''
คอมมิตที่ควรเช็คเอาต์
patches Iterable ของสตริง ค่าเริ่มต้นคือ []
รายการป้ายกำกับที่ชี้ไปยังไฟล์แพตช์ที่จะใช้กับโมดูลนี้ ไฟล์แพตช์ต้องอยู่ในโครงสร้างแหล่งที่มาของโปรเจ็กต์ระดับบนสุด ระบบจะใช้การตั้งค่าตามลำดับในรายการ
patch_cmds Iterable ของสตริง ค่าเริ่มต้นคือ []
ลำดับของคำสั่ง Bash ที่จะใช้ใน Linux/Macos หลังจากใช้แพตช์แล้ว
patch_strip ค่าเริ่มต้นคือ 0
เหมือนกับอาร์กิวเมนต์ --strip ของแพตช์ Unix
init_submodules ค่าเริ่มต้นคือ False
ควรกำหนดค่าโมดูลย่อยของ Git ในที่เก็บที่ดึงข้อมูลแบบเรียกซ้ำหรือไม่
strip_prefix ค่าเริ่มต้นคือ ''
คำนำหน้าไดเรกทอรีที่จะนำออกจากไฟล์ที่แยก ใช้เพื่อกำหนดเป้าหมายไดเรกทอรีย่อยของที่เก็บ Git ได้ โปรดทราบว่าไดเรกทอรีย่อยต้องมีไฟล์ `MODULE.bazel` ของตัวเองที่มีชื่อโมดูลเหมือนกับอาร์กิวเมนต์ `module_name` ที่ส่งไปยัง `git_override` นี้

รวม

None include(label)

รวมเนื้อหาของไฟล์อื่นที่คล้ายกับ MODULE.bazel ในทางปฏิบัติ include() จะทำงานราวกับว่าไฟล์ที่รวมอยู่จะวางข้อความไว้ที่ตำแหน่งของการเรียก include() ยกเว้นว่าการเชื่อมโยงตัวแปร (เช่น การเชื่อมโยงที่ใช้สำหรับ use_extension) จะปรากฏในไฟล์ที่เกิดขึ้นเท่านั้น ไม่ใช่ในไฟล์ที่รวมอยู่หรือไฟล์ที่รวม

เฉพาะโมดูลรูทเท่านั้นที่ใช้ include() ได้ หากไฟล์ MODULE ของ bazel_dep ใช้ include() จะถือเป็นข้อผิดพลาด

โดยจะรวมได้เฉพาะไฟล์ในที่เก็บข้อมูลหลักเท่านั้น

include() ช่วยให้คุณแบ่งไฟล์โมดูลรูทออกเป็นหลายส่วนเพื่อหลีกเลี่ยงการมีไฟล์ MODULE.bazel ขนาดใหญ่ หรือเพื่อจัดการการควบคุมการเข้าถึงสำหรับแต่ละกลุ่มความหมายได้ดียิ่งขึ้น

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
label required
ป้ายกำกับที่ชี้ไปยังไฟล์ที่จะรวม ป้ายกำกับต้องชี้ไปยังไฟล์ในที่เก็บหลัก กล่าวคือ ต้องขึ้นต้นด้วยเครื่องหมายทับคู่ (//)

local_path_override

None local_path_override(module_name, path)

ระบุว่าการอ้างอิงควรมาจากไดเรกทอรีหนึ่งๆ ในดิสก์ภายใน คำสั่งนี้จะมีผลในโมดูลรูทเท่านั้น กล่าวคือ หากโมดูลอื่นใช้โมดูลหนึ่งเป็นทรัพยากร Dependency ระบบจะไม่สนใจการลบล้างของโมดูลนั้น

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
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 ของ string ค่าเริ่มต้นคือ []
รายการเวอร์ชัน 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='')

ระบุว่าการขึ้นต่อกันยังคงมาจากรีจิสทรี แต่ควรอนุญาตให้มีหลายเวอร์ชันอยู่ร่วมกันได้ ดูรายละเอียดเพิ่มเติมได้ในเอกสารประกอบ คำสั่งนี้จะมีผลในโมดูลรูทเท่านั้น กล่าวคือ หากโมดูลอื่นใช้โมดูลหนึ่งเป็นทรัพยากร Dependency ระบบจะไม่สนใจการลบล้างของโมดูลนั้น

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
module_name ต้องระบุ
ชื่อของการอ้างอิงโมดูล Bazel ที่จะใช้การลบล้างนี้
versions Iterable ของ string required
ระบุเวอร์ชันที่อนุญาตให้ใช้ร่วมกันอย่างชัดเจน เวอร์ชันเหล่านี้ต้องมีอยู่ในกราฟการขึ้นต่อกันที่เลือกไว้ล่วงหน้าแล้ว การอ้างอิงในโมดูลนี้จะได้รับการ "อัปเกรด" เป็นเวอร์ชันที่สูงกว่าที่อนุญาตที่ใกล้ที่สุดในระดับความเข้ากันได้เดียวกัน ในขณะที่การอ้างอิงที่มีเวอร์ชันสูงกว่าเวอร์ชันที่อนุญาตในระดับความเข้ากันได้เดียวกันจะทำให้เกิดข้อผิดพลาด
registry ค่าเริ่มต้นคือ ''
ลบล้างรีจิสทรีสำหรับโมดูลนี้ แทนที่จะค้นหาโมดูลนี้จากรายการรีจิสทรีเริ่มต้น ควรใช้รีจิสทรีที่ระบุ

register_execution_platforms

None register_execution_platforms(dev_dependency=False, *platform_labels)

ระบุแพลตฟอร์มการดำเนินการที่กำหนดไว้แล้วเพื่อลงทะเบียนเมื่อเลือกโมดูลนี้ ควรเป็นรูปแบบเป้าหมายที่แน่นอน (เช่น ขึ้นต้นด้วย @ หรือ //) ดูข้อมูลเพิ่มเติมได้ที่การแก้ไขทูลเชน

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
dev_dependency ค่าเริ่มต้นคือ False
หากเป็นจริง ระบบจะไม่ลงทะเบียนแพลตฟอร์มการดำเนินการหากโมดูลปัจจุบันไม่ใช่โมดูลรูทหรือเปิดใช้ `--ignore_dev_dependency`
platform_labels ลำดับของสตริง ต้องระบุ
ป้ายกำกับของแพลตฟอร์มที่จะลงทะเบียน

register_toolchains

None register_toolchains(dev_dependency=False, *toolchain_labels)

ระบุ Toolchain ที่กำหนดไว้แล้วซึ่งจะลงทะเบียนเมื่อเลือกโมดูลนี้ ควรเป็นรูปแบบเป้าหมายที่แน่นอน (เช่น ขึ้นต้นด้วย @ หรือ //) ดูข้อมูลเพิ่มเติมได้ที่การแก้ไขทูลเชน

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
dev_dependency ค่าเริ่มต้นคือ False
หากเป็นจริง ระบบจะไม่ลงทะเบียน Toolchain หากโมดูลปัจจุบันไม่ใช่โมดูลรูทหรือเปิดใช้ `--ignore_dev_dependency`
toolchain_labels ลำดับของสตริง ต้องระบุ
ป้ายกำกับของ Toolchain ที่จะลงทะเบียน ป้ายกำกับอาจมี :all ในกรณีนี้ เป้าหมายทั้งหมดที่ให้ Toolchain ในแพ็กเกจจะได้รับการลงทะเบียนตามลำดับพจนานุกรมตามชื่อ

single_version_override

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

ระบุว่าการอ้างอิงควรมาจากรีจิสทรี แต่ควรปักหมุดเวอร์ชันของรีจิสทรี หรือแทนที่รีจิสทรี หรือใช้รายการแพตช์ คำสั่งนี้จะมีผลในโมดูลรูทเท่านั้น กล่าวคือ หากโมดูลอื่นใช้โมดูลหนึ่งเป็นทรัพยากร Dependency ระบบจะไม่สนใจการลบล้างของโมดูลนั้น

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
module_name ต้องระบุ
ชื่อของการอ้างอิงโมดูล Bazel ที่จะใช้การลบล้างนี้
version ค่าเริ่มต้นคือ ''
ลบล้างเวอร์ชันที่ประกาศของโมดูลนี้ในกราฟการอ้างอิง กล่าวคือ ระบบจะ "ปักหมุด" โมดูลนี้ไว้กับเวอร์ชันที่ลบล้างนี้ คุณละเว้นแอตทริบิวต์นี้ได้หากต้องการลบล้างเฉพาะรีจิสทรีหรือแพตช์
registry ค่าเริ่มต้นคือ ''
ลบล้างรีจิสทรีสำหรับโมดูลนี้ แทนที่จะค้นหาโมดูลนี้จากรายการรีจิสทรีเริ่มต้น ควรใช้รีจิสทรีที่ระบุ
patches Iterable ของสตริง ค่าเริ่มต้นคือ []
รายการป้ายกำกับที่ชี้ไปยังไฟล์แพตช์ที่จะใช้กับโมดูลนี้ ไฟล์แพตช์ต้องอยู่ในโครงสร้างแหล่งที่มาของโปรเจ็กต์ระดับบนสุด ระบบจะใช้การตั้งค่าตามลำดับในรายการ
patch_cmds Iterable ของสตริง ค่าเริ่มต้นคือ []
ลำดับของคำสั่ง Bash ที่จะใช้ใน Linux/Macos หลังจากใช้แพตช์แล้ว
patch_strip ค่าเริ่มต้นคือ 0
เหมือนกับอาร์กิวเมนต์ --strip ของแพตช์ Unix

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
หากเป็นจริง ระบบจะไม่สนใจการใช้งานส่วนขยายโมดูลนี้หากโมดูลปัจจุบันไม่ใช่โมดูลรูทหรือเปิดใช้ `--ignore_dev_dependency`
isolate ค่าเริ่มต้นคือ False
ทดลอง พารามิเตอร์นี้อยู่ในขั้นทดลองและอาจมีการเปลี่ยนแปลงได้ทุกเมื่อ โปรดอย่าใช้ฟีเจอร์นี้ คุณอาจเปิดใช้ได้ในระดับทดลองโดยการตั้งค่า ---experimental_isolated_extension_usages
หากเป็นจริง การใช้งานส่วนขยายโมดูลนี้จะแยกจากการใช้งานอื่นๆ ทั้งหมด ทั้งในโมดูลนี้และโมดูลอื่นๆ แท็กที่สร้างขึ้นสำหรับการใช้งานนี้จะไม่ส่งผลต่อการใช้งานอื่นๆ และที่เก็บที่ส่วนขยายสร้างขึ้นสำหรับการใช้งานนี้จะแตกต่างจากที่เก็บอื่นๆ ทั้งหมดที่ส่วนขยายสร้างขึ้น

ขณะนี้พารามิเตอร์นี้ยังอยู่ในขั้นทดลองและใช้ได้กับแฟล็ก --experimental_isolated_extension_usages เท่านั้น

use_repo

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

นำเข้าที่เก็บอย่างน้อย 1 รายการที่สร้างโดยส่วนขยายโมดูลที่ระบุลงในขอบเขตของโมดูลปัจจุบัน

พารามิเตอร์

พารามิเตอร์ คำอธิบาย
extension_proxy required
ออบเจ็กต์พร็อกซีส่วนขยายโมดูลที่เรียกใช้ 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 ต้องระบุ
ชื่อของกฎ Repo ที่จะใช้ ไฟล์ Starlark ต้องส่งออกสัญลักษณ์ที่มีชื่อนี้