สมาชิก
- analysis_test_transition
 - aspect
 - configuration_field
 - depset
 - exec_group
 - exec_transition
 - มาโคร
 - module_extension
 - ผู้ให้บริการ
 - repository_rule
 - rule
 - เลือก
 - subrule
 - tag_class
 - ระดับการแชร์
 
analysis_test_transition
transition analysis_test_transition(settings)
 สร้างการเปลี่ยนการกำหนดค่าที่จะใช้กับทรัพยากร Dependency ของกฎการวิเคราะห์-การทดสอบ การเปลี่ยนนี้จะใช้ได้กับแอตทริบิวต์ของกฎที่มี analysis_test = True เท่านั้น กฎดังกล่าวมีความสามารถที่จำกัด (เช่น ขนาดของแผนผังการอ้างอิงจะถูกจำกัด) ดังนั้นการเปลี่ยนฉากที่สร้างขึ้นโดยใช้ฟังก์ชันนี้จึงมีขอบเขตที่จำกัดเมื่อเทียบกับการเปลี่ยนฉากที่สร้างขึ้นโดยใช้ transition() 
ฟังก์ชันนี้ออกแบบมาเพื่ออำนวยความสะดวกให้กับไลบรารีหลักของกรอบการทดสอบการวิเคราะห์เป็นหลัก ดูแนวทางปฏิบัติแนะนำได้ในเอกสารประกอบ (หรือการใช้งาน)
พารามิเตอร์
| พารามิเตอร์ | คำอธิบาย | 
|---|---|
              settings
             | 
            
                          dict;
                                     required พจนานุกรมที่มีข้อมูลเกี่ยวกับการตั้งค่าการกำหนดค่าซึ่งควรตั้งค่าโดยการเปลี่ยนการกำหนดค่านี้ คีย์คือป้ายกำกับการตั้งค่าบิลด์ และค่าคือค่าใหม่หลังการเปลี่ยนผ่าน การตั้งค่าอื่นๆ ทั้งหมดจะไม่มีการเปลี่ยนแปลง ใช้เพื่อประกาศการตั้งค่าการกำหนดค่าที่เฉพาะเจาะจงซึ่งการทดสอบการวิเคราะห์กำหนดให้ตั้งค่าเพื่อให้ผ่าน  | 
          
เฉพาะด้าน
Aspect aspect(implementation, attr_aspects=[], toolchains_aspects=[], attrs={}, required_providers=[], required_aspect_providers=[], provides=[], requires=[], fragments=[], host_fragments=[], toolchains=[], incompatible_use_toolchain_transition=False, doc=None, *, apply_to_generating_rules=False, exec_compatible_with=[], exec_groups=None, subrules=[])
พารามิเตอร์
| พารามิเตอร์ | คำอธิบาย | 
|---|---|
              implementation
             | 
            
                          function;
                                     required ฟังก์ชัน Starlark ที่ใช้แง่มุมนี้ โดยมีพารามิเตอร์ 2 รายการ ได้แก่ Target (เป้าหมายที่จะใช้แง่มุม) และ ctx (บริบทของกฎที่สร้างเป้าหมายจาก) แอตทริบิวต์ของเป้าหมายจะพร้อมใช้งานผ่านช่อง ctx.rule ระบบจะประเมินฟังก์ชันนี้ในระหว่างระยะการวิเคราะห์สําหรับการใช้แง่มุมแต่ละอย่างกับเป้าหมาย
             | 
          
              attr_aspects
             | 
            
                          ลำดับของสตริง
                                     ค่าเริ่มต้นคือ []รายการชื่อแอตทริบิวต์ แง่มุมจะแพร่กระจายไปตามการขึ้นต่อกันที่ระบุไว้ในแอตทริบิวต์ของเป้าหมายที่มีชื่อเหล่านี้ ค่าที่พบบ่อยในที่นี้ ได้แก่ deps และ exports รายการยังอาจมีสตริงเดียว "*" เพื่อเผยแพร่ตามการขึ้นต่อกันทั้งหมดของเป้าหมาย
             | 
          
              toolchains_aspects
             | 
            
                          sequence;
                                     ค่าเริ่มต้นคือ []รายการประเภทเชนเครื่องมือ แง่มุมจะแพร่กระจายไปยัง Toolchain เป้าหมายที่ตรงกับประเภท Toolchain เหล่านี้  | 
          
              attrs
             | 
            
                          dict;
                                     ค่าเริ่มต้นคือ {}พจนานุกรมที่ประกาศแอตทริบิวต์ทั้งหมดของลักษณะ โดยจะแมปจากชื่อแอตทริบิวต์ไปยังออบเจ็กต์แอตทริบิวต์ เช่น attr.label หรือ attr.string (ดูโมดูล attr) แอตทริบิวต์ของแง่มุมพร้อมใช้งานกับฟังก์ชันการติดตั้งใช้งานเป็นฟิลด์ของพารามิเตอร์ ctx แอตทริบิวต์โดยนัยที่ขึ้นต้นด้วย  แอตทริบิวต์ที่ชัดเจนต้องมีประเภท  แอตทริบิวต์ที่ประกาศจะแปลง   | 
          
              required_providers
             | 
            
                          sequence;
                                     ค่าเริ่มต้นคือ []แอตทริบิวต์นี้ช่วยให้แง่มุมจำกัดการเผยแพร่เฉพาะเป้าหมายที่มีกฎโฆษณาผู้ให้บริการที่จำเป็น ค่าต้องเป็นรายการที่มีผู้ให้บริการแต่ละรายหรือรายการของผู้ให้บริการ แต่ไม่ใช่ทั้ง 2 อย่าง เช่น [[FooInfo], [BarInfo], [BazInfo, QuxInfo]] เป็นค่าที่ถูกต้อง แต่ [FooInfo, BarInfo, [BazInfo, QuxInfo]] ไม่ถูกต้องระบบจะแปลงรายการผู้ให้บริการที่ไม่ได้ซ้อนกันเป็นรายการที่มีรายการผู้ให้บริการ 1 รายการโดยอัตโนมัติ กล่าวคือ ระบบจะแปลง  หากต้องการให้เป้าหมายของกฎบางอย่าง (เช่น   | 
          
              required_aspect_providers
             | 
            
                          sequence;
                                     ค่าเริ่มต้นคือ []แอตทริบิวต์นี้ช่วยให้แง่มุมนี้ตรวจสอบแง่มุมอื่นๆ ได้ ค่าต้องเป็นรายการที่มีผู้ให้บริการแต่ละรายหรือรายการของผู้ให้บริการ แต่ไม่ใช่ทั้ง 2 อย่าง เช่น [[FooInfo], [BarInfo], [BazInfo, QuxInfo]] เป็นค่าที่ถูกต้อง แต่ [FooInfo, BarInfo, [BazInfo, QuxInfo]] ไม่ถูกต้องระบบจะแปลงรายการผู้ให้บริการที่ไม่ได้ซ้อนกันเป็นรายการที่มีรายการผู้ให้บริการ 1 รายการโดยอัตโนมัติ กล่าวคือ ระบบจะแปลง  หากต้องการให้แง่มุมอื่น (เช่น   | 
          
              provides
             | 
            
                          sequence
                                     ค่าเริ่มต้นคือ []รายการผู้ให้บริการที่ฟังก์ชันการติดตั้งใช้งานต้องส่งคืน หากฟังก์ชันการใช้งานละเว้นประเภทผู้ให้บริการใดก็ตามที่แสดงไว้ที่นี่จากค่าที่แสดงผล จะถือว่าเป็นข้อผิดพลาด อย่างไรก็ตาม ฟังก์ชันการติดตั้งใช้งานอาจแสดงผู้ให้บริการเพิ่มเติมที่ไม่ได้ระบุไว้ที่นี่ แต่ละองค์ประกอบของรายการคือออบเจ็กต์   | 
          
              requires
             | 
            
                          ลำดับของAspect
                                     ค่าเริ่มต้นคือ []รายการของ Aspect ที่ต้องเผยแพร่ก่อน Aspect นี้  | 
          
              fragments
             | 
            
                          ลำดับของสตริง
                                     ค่าเริ่มต้นคือ []รายการชื่อของส่วนการกำหนดค่าที่แง่มุมต้องการในการกำหนดค่าเป้าหมาย  | 
          
              host_fragments
             | 
            
                          ลำดับของสตริง
                                     ค่าเริ่มต้นคือ []รายการชื่อของส่วนการกำหนดค่าที่แง่มุมต้องการในการกำหนดค่าโฮสต์  | 
          
              toolchains
             | 
            
                          sequence;
                                     ค่าเริ่มต้นคือ []หากตั้งค่าไว้ ชุดเครื่องมือที่แง่มุมนี้ต้องการ รายการอาจมีออบเจ็กต์ String, Label หรือ StarlarkToolchainTypeApi ในการผสมผสานใดก็ได้ ระบบจะค้นหา Toolchain โดยการตรวจสอบแพลตฟอร์มปัจจุบัน และจะส่งให้กับการติดตั้งใช้งาน Aspect ผ่าน ctx.toolchain
             | 
          
              incompatible_use_toolchain_transition
             | 
            
                          bool;
                                     ค่าเริ่มต้นคือ Falseเลิกใช้งานแล้ว ไม่ได้ใช้แล้วและควรนำออก  | 
          
              doc
             | 
            
                          สตริง หรือ None
                                     ค่าเริ่มต้นคือ Noneคำอธิบายของ Aspect ที่เครื่องมือสร้างเอกสารสามารถดึงข้อมูลได้  | 
          
              apply_to_generating_rules
             | 
            
                          bool;
                                     ค่าเริ่มต้นคือ Falseหากเป็นจริง เมื่อใช้กับไฟล์เอาต์พุต ลักษณะจะใช้กับกฎการสร้างของไฟล์เอาต์พุตแทน ตัวอย่างเช่น สมมติว่า Aspect เผยแพร่แบบทรานซิทีฟผ่านแอตทริบิวต์ `deps` และใช้กับเป้าหมาย `alpha` สมมติว่า `alpha` มี `deps = [':beta_output']` โดยที่ `beta_output` เป็นเอาต์พุตที่ประกาศของเป้าหมาย `beta` สมมติว่า `beta` มีเป้าหมาย `charlie` เป็นหนึ่งใน `deps` หาก `apply_to_generating_rules=True` สำหรับ Aspect แสดงว่า Aspect จะเผยแพร่ผ่าน `alpha`, `beta` และ `charlie` หากเป็น False แสดงว่า Aspect จะเผยแพร่ไปยัง `alpha` เท่านั้น โดยค่าเริ่มต้นจะเป็นเท็จ  | 
          
              exec_compatible_with
             | 
            
                          ลำดับของสตริง
                                     ค่าเริ่มต้นคือ []รายการข้อจำกัดในแพลตฟอร์มการดำเนินการที่มีผลกับอินสแตนซ์ทั้งหมดของแง่มุมนี้  | 
          
              exec_groups
             | 
            
                          dict หรือ None
                                     ค่าเริ่มต้นคือ Noneพจนานุกรมของชื่อกลุ่มการดำเนินการ (สตริง) ไปยัง exec_groups หากตั้งค่าไว้ จะอนุญาตให้ Aspect เรียกใช้การดำเนินการในแพลตฟอร์มการดำเนินการหลายแพลตฟอร์มภายในอินสแตนซ์เดียว ดูข้อมูลเพิ่มเติมได้ที่เอกสารประกอบเกี่ยวกับกลุ่มการดำเนินการ
             | 
          
              subrules
             | 
            
                          ลำดับของกฎย่อย
                                     ค่าเริ่มต้นคือ []การทดลอง: รายการกฎย่อยที่ใช้โดยแง่มุมนี้  | 
          
configuration_field
LateBoundDefault configuration_field(fragment, name)
ตัวอย่างการใช้งาน
การกำหนดแอตทริบิวต์ของกฎ 
'_foo': attr.label(default=configuration_field(fragment='java', name='toolchain'))
การเข้าถึงในการใช้กฎ: 
  def _rule_impl(ctx):
    foo_info = ctx.attr._foo
    ...พารามิเตอร์
| พารามิเตอร์ | คำอธิบาย | 
|---|---|
              fragment
             | 
            
                          string;
                                     required ชื่อของส่วนการกำหนดค่าที่มีค่าที่ผูกภายหลัง  | 
          
              name
             | 
            
                          string;
                                     required ชื่อของค่าที่จะรับจากส่วนการกำหนดค่า  | 
          
depset
depset depset(direct=None, order="default", *, transitive=None)
direct คือรายการองค์ประกอบโดยตรงของ depset และพารามิเตอร์ transitive คือรายการ depset ที่องค์ประกอบจะกลายเป็นองค์ประกอบโดยอ้อมของ depset ที่สร้างขึ้น ลำดับที่องค์ประกอบจะแสดงเมื่อแปลงชุดทรัพยากร Dependency เป็นรายการจะระบุโดยพารามิเตอร์ order ดูข้อมูลเพิ่มเติมได้ที่ภาพรวมของ Depset
องค์ประกอบทั้งหมด (โดยตรงและโดยอ้อม) ของชุดการพึ่งพาต้องเป็นประเภทเดียวกันตามที่ได้รับจากนิพจน์ type(x)
เนื่องจากระบบใช้ชุดที่อิงตามแฮชเพื่อกำจัดรายการที่ซ้ำกันระหว่างการวนซ้ำ องค์ประกอบทั้งหมดของ DepSet จึงควรแฮชได้ อย่างไรก็ตาม ปัจจุบันระบบไม่ได้ตรวจสอบตัวแปรนี้อย่างสม่ำเสมอในตัวสร้างทั้งหมด ใช้แฟล็ก --incompatible_always_check_depset_elements เพื่อเปิดใช้การตรวจสอบที่สอดคล้องกัน ซึ่งจะเป็นลักษณะการทำงานเริ่มต้นในรุ่นต่อๆ ไป ดูปัญหา 10313
นอกจากนี้ ปัจจุบันองค์ประกอบต้องเปลี่ยนแปลงไม่ได้ แต่ข้อจำกัดนี้จะผ่อนปรนในอนาคต
 ลำดับของ Depset ที่สร้างขึ้นควรเข้ากันได้กับลำดับของ Depset transitive "default" ใช้ร่วมกับคำสั่งซื้ออื่นๆ ได้ แต่คำสั่งซื้ออื่นๆ จะใช้ร่วมกันเองได้เท่านั้น
          
      
พารามิเตอร์
| พารามิเตอร์ | คำอธิบาย | 
|---|---|
              direct
             | 
            
                          sequence หรือ None
                                     ค่าเริ่มต้นคือ Noneรายการองค์ประกอบ direct ของ depset  | 
          
              order
             | 
            
                          string;
                                     ค่าเริ่มต้นคือ "default"กลยุทธ์การข้ามสำหรับ depset ใหม่ ดูค่าที่เป็นไปได้ที่นี่  | 
          
              transitive
             | 
            
                          ลำดับของ depset หรือ None
                                     ค่าเริ่มต้นคือ Noneรายการ depset ที่องค์ประกอบจะกลายเป็นองค์ประกอบทางอ้อมของ depset  | 
          
exec_group
exec_group exec_group(toolchains=[], exec_compatible_with=[])
พารามิเตอร์
| พารามิเตอร์ | คำอธิบาย | 
|---|---|
              toolchains
             | 
            
                          sequence;
                                     ค่าเริ่มต้นคือ []ชุดเครื่องมือที่กลุ่มการดำเนินการนี้ต้องการ รายการอาจมีออบเจ็กต์ String, Label หรือ StarlarkToolchainTypeApi ในการผสมผสานใดก็ได้  | 
          
              exec_compatible_with
             | 
            
                          ลำดับของสตริง
                                     ค่าเริ่มต้นคือ []รายการข้อจำกัดบนแพลตฟอร์มการดำเนินการ  | 
          
exec_transition
transition exec_transition(implementation, inputs, outputs)
transition() เวอร์ชันเฉพาะที่ใช้เพื่อกำหนดการเปลี่ยนเส้นทาง exec ดูแนวทางปฏิบัติแนะนำได้ในเอกสารประกอบ (หรือการใช้งาน) ใช้ได้จาก Bazel Builtins เท่านั้น
          
      พารามิเตอร์
| พารามิเตอร์ | คำอธิบาย | 
|---|---|
              implementation
             | 
            
                          callable;
                                     required | 
          
              inputs
             | 
            
                          ลำดับของสตริง
                                     ต้องระบุ | 
          
              outputs
             | 
            
                          ลำดับของสตริง
                                     ต้องระบุ | 
          
มาโคร
macro macro(implementation, attrs={}, inherit_attrs=None, finalizer=False, doc=None)
BUILD หรือมาโคร (เดิมหรือเชิงสัญลักษณ์) เพื่อกำหนดเป้าหมาย ซึ่งอาจมีหลายเป้าหมาย
ต้องกำหนดค่าที่แสดงผลโดย macro(...) ให้กับตัวแปรส่วนกลางในไฟล์ .bzl
ชื่อของตัวแปรส่วนกลางจะเป็นชื่อของสัญลักษณ์มาโคร
ดูคำแนะนำแบบละเอียดเกี่ยวกับวิธีใช้มาโครสัญลักษณ์ได้ที่มาโคร
พารามิเตอร์
| พารามิเตอร์ | คำอธิบาย | 
|---|---|
              implementation
             | 
            
                          function;
                                     required ฟังก์ชัน Starlark ที่ใช้มาโครนี้ ระบบจะส่งค่าของแอตทริบิวต์ของมาโครไปยัง ฟังก์ชันการใช้งานเป็นอาร์กิวเมนต์คีย์เวิร์ด ฟังก์ชันการใช้งานต้องมีพารามิเตอร์ที่มีชื่ออย่างน้อย 2 รายการ ได้แก่ name และ visibility และหากมาโครรับช่วงแอตทริบิวต์ (ดู inherit_attrs ด้านล่าง) มาโครต้องมีพารามิเตอร์คีย์เวิร์ดที่เหลือ **kwargs
ตามธรรมเนียมแล้ว ฟังก์ชันการติดตั้งใช้งานควรมีพารามิเตอร์ที่มีชื่อสำหรับแอตทริบิวต์ใดๆ ที่มาโครต้องตรวจสอบ แก้ไข หรือส่งไปยังเป้าหมายที่ไม่ใช่ "หลัก" ในขณะที่แอตทริบิวต์ "กลุ่ม" ที่สืบทอดมา
ซึ่งจะส่งไปยังเป้าหมาย "หลัก" โดยไม่มีการเปลี่ยนแปลงจะส่งเป็น  ฟังก์ชันการติดตั้งใช้งานต้องไม่แสดงผลค่า แต่ฟังก์ชันการใช้งานจะประกาศเป้าหมายโดยการเรียกสัญลักษณ์กฎหรือมาโครแทน ชื่อของเป้าหมายหรือมาโครสัญลักษณ์ภายในที่ประกาศโดยมาโครสัญลักษณ์ (รวมถึงฟังก์ชัน Starlark ที่ฟังก์ชันการใช้งานของมาโครเรียกแบบทรานซิทีฟ) ต้องเท่ากับ  โดยค่าเริ่มต้น เป้าหมายที่ประกาศโดยมาโครสัญลักษณ์ (รวมถึงฟังก์ชัน Starlark ใดๆ ที่ฟังก์ชันการใช้งานของมาโครเรียกใช้แบบทรานซิทีฟ) จะมองเห็นได้เฉพาะในแพ็กเกจที่มีไฟล์ .bzl ที่กำหนดมาโคร หากต้องการประกาศเป้าหมายที่มองเห็นได้ภายนอก รวมถึงผู้เรียกใช้
มาโครสัญลักษณ์ ฟังก์ชันการติดตั้งใช้งานต้องตั้งค่า  API ต่อไปนี้ไม่พร้อมใช้งานภายในฟังก์ชันการติดตั้งใช้งานมาโครและฟังก์ชัน Starlark ใดๆ ที่เรียกใช้แบบทรานซิทีฟ 
  | 
          
              attrs
             | 
            
                          dict;
                                     ค่าเริ่มต้นคือ {}พจนานุกรมของแอตทริบิวต์ที่มาโครนี้รองรับ ซึ่งคล้ายกับ rule.attrs คีย์คือชื่อแอตทริบิวต์ และค่าคือออบเจ็กต์แอตทริบิวต์ เช่น attr.label_list(...) (ดูโมดูล attr
) หรือ None None หมายถึงมาโครไม่มีแอตทริบิวต์ชื่อนั้น แม้ว่ามาโครจะรับค่าแอตทริบิวต์ผ่าน inherit_attrs
(ดูด้านล่าง)
แอตทริบิวต์พิเศษ  แอตทริบิวต์ที่ชื่อขึ้นต้นด้วย  เราจำกัดจำนวนแอตทริบิวต์ที่ประกาศได้เพื่อจำกัดการใช้หน่วยความจำ  | 
          
              inherit_attrs
             | 
            
                          กฎ หรือ มาโคร หรือ สตริง หรือ None
                                     ค่าเริ่มต้นคือ Noneสัญลักษณ์กฎ สัญลักษณ์มาโคร หรือชื่อของรายการแอตทริบิวต์ทั่วไปในตัว (ดูด้านล่าง) ซึ่งมาโครควรรับค่าแอตทริบิวต์ หากตั้งค่า  โปรดทราบว่าหากไม่ได้กำหนดค่าที่แสดงผลของ  กลไกการรับค่าจะทำงานดังนี้ 
 เมื่อมีการรับค่าแอตทริบิวต์ที่ไม่บังคับ ค่าเริ่มต้นของแอตทริบิวต์จะถูกเขียนทับ
เป็น  เช่น มาโครต่อไปนี้จะรับช่วงแอตทริบิวต์ทั้งหมดจาก  
def _my_cc_library_impl(name, visibility, tags, **kwargs):
    # Append a tag; tags attr was inherited from native.cc_library, and
    # therefore is None unless explicitly set by the caller of my_cc_library()
    my_tags = (tags or []) + ["my_custom_tag"]
    native.cc_library(
        name = name,
        visibility = visibility,
        tags = my_tags,
        **kwargs
    )
my_cc_library = macro(
    implementation = _my_cc_library_impl,
    inherit_attrs = native.cc_library,
    attrs = {
        "cxxopts": None,
        "copts": attr.string_list(default = ["-D_FOO"]),
    },
)
หากตั้งค่า  ตามธรรมเนียมแล้ว มาโครควรส่งแอตทริบิวต์ที่รับช่วงมาซึ่งไม่ได้มีการลบล้างไปยังสัญลักษณ์กฎหรือมาโคร "หลัก" ที่มาโครกำลังห่อหุ้มอยู่โดยไม่มีการเปลี่ยนแปลง โดยปกติแล้ว แอตทริบิวต์ที่รับค่ามาส่วนใหญ่จะไม่มีพารามิเตอร์ในรายการพารามิเตอร์ของฟังก์ชันการติดตั้งใช้งาน และจะส่งผ่านทาง   | 
          
              finalizer
             | 
            
                          bool
                                     ค่าเริ่มต้นคือ Falseไม่ว่ามาโครนี้จะเป็นตัวสรุปกฎหรือไม่ ซึ่งเป็นมาโครที่ระบบจะประเมินเมื่อสิ้นสุดการโหลดแพ็กเกจ ไม่ว่ามาโครจะอยู่ที่ใดในไฟล์ BUILD หลังจากที่กำหนดเป้าหมายที่ไม่ใช่ตัวสรุปทั้งหมดแล้ว
ไม่เหมือนกับมาโครสัญลักษณ์ทั่วไป ตัวสรุปกฎอาจเรียกใช้
  | 
          
              doc
             | 
            
                          สตริง หรือ None
                                     ค่าเริ่มต้นคือ Noneคำอธิบายของมาโครที่เครื่องมือสร้างเอกสารสามารถดึงข้อมูลได้  | 
          
module_extension
unknown module_extension(implementation, *, tag_classes={}, doc=None, environ=[], os_dependent=False, arch_dependent=False)use_extension
          
      พารามิเตอร์
| พารามิเตอร์ | คำอธิบาย | 
|---|---|
              implementation
             | 
            
                          callable;
                                     required ฟังก์ชันที่ใช้ส่วนขยายโมดูลนี้ ต้องใช้พารามิเตอร์เดียวคือ module_ctx ฟังก์ชันนี้จะเรียกใช้ 1 ครั้งเมื่อเริ่มต้นการสร้างเพื่อกำหนดชุดที่เก็บที่พร้อมใช้งาน
             | 
          
              tag_classes
             | 
            
                          dict;
                                     ค่าเริ่มต้นคือ {}พจนานุกรมเพื่อประกาศคลาสแท็กทั้งหมดที่ส่วนขยายใช้ โดยจะแมปจากชื่อของคลาสแท็กไปยังออบเจ็กต์ tag_class
             | 
          
              doc
             | 
            
                          string หรือ None
                                     ค่าเริ่มต้นคือ Noneคำอธิบายของส่วนขยายโมดูลที่เครื่องมือสร้างเอกสารสามารถดึงข้อมูลได้  | 
          
              environ
             | 
            
                          ลำดับของสตริง
                                     ค่าเริ่มต้นคือ []ระบุรายการตัวแปรสภาพแวดล้อมที่ส่วนขยายโมดูลนี้ขึ้นอยู่กับ หากตัวแปรสภาพแวดล้อมในรายการนั้นมีการเปลี่ยนแปลง ระบบจะประเมินส่วนขยายอีกครั้ง  | 
          
              os_dependent
             | 
            
                          bool;
                                     ค่าเริ่มต้นคือ Falseระบุว่าส่วนขยายนี้ขึ้นอยู่กับระบบปฏิบัติการหรือไม่  | 
          
              arch_dependent
             | 
            
                          bool;
                                     ค่าเริ่มต้นคือ Falseระบุว่าส่วนขยายนี้ขึ้นอยู่กับสถาปัตยกรรมหรือไม่  | 
          
provider
unknown provider(doc=None, *, fields=None, init=None)
MyInfo = provider()
...
def _my_library_impl(ctx):
    ...
    my_info = MyInfo(x = 2, y = 3)
    # my_info.x == 2
    # my_info.y == 3
    ...ดูคำแนะนำแบบละเอียดเกี่ยวกับวิธีใช้ผู้ให้บริการได้ที่กฎ (ผู้ให้บริการ)
แสดงผลค่าที่เรียกใช้ได้ Provider หากไม่ได้ระบุ init
หากระบุ init จะแสดงผลทูเพิลของ 2 องค์ประกอบ ได้แก่ ค่าที่เรียกใช้ได้ของ Provider และค่าที่เรียกใช้ได้ของตัวสร้างดิบ ดูรายละเอียดได้ที่ กฎ (การเริ่มต้นที่กำหนดเองของผู้ให้บริการที่กำหนดเอง) และการอภิปรายเกี่ยวกับพารามิเตอร์ init ด้านล่าง
          
      
พารามิเตอร์
| พารามิเตอร์ | คำอธิบาย | 
|---|---|
              doc
             | 
            
                          สตริง หรือ None
                                     ค่าเริ่มต้นคือ Noneคำอธิบายของผู้ให้บริการที่เครื่องมือสร้างเอกสารสามารถดึงข้อมูลได้  | 
          
              fields
             | 
            
                          ลำดับของสตริง หรือ dict หรือ None
                                     ค่าเริ่มต้นคือ Noneหากระบุ จะจำกัดชุดฟิลด์ที่อนุญาต ค่าที่เป็นไปได้มีดังนี้ 
  | 
          
              init
             | 
            
                          callable หรือ None;
                                     ค่าเริ่มต้นคือ Noneการเรียกกลับที่ไม่บังคับสำหรับการประมวลผลล่วงหน้าและการตรวจสอบค่าฟิลด์ของผู้ให้บริการในระหว่างการเริ่มต้น หากระบุ init provider() จะแสดงผลทูเพิลที่มี 2 องค์ประกอบ ได้แก่ สัญลักษณ์ของผู้ให้บริการปกติและตัวสร้างดิบคำอธิบายที่แม่นยำมีดังนี้ โปรดดูกฎ (การเริ่มต้นผู้ให้บริการที่กำหนดเอง) เพื่อดูการสนทนาและกรณีการใช้งานที่เข้าใจง่าย ให้  
 initไม่ได้ระบุCallback การเรียกใช้สัญลักษณ์ P เองจะทำหน้าที่เป็นการเรียกใช้ฟังก์ชันตัวสร้างเริ่มต้น c กล่าวคือ P(*args, **kwargs) จะแสดงผล c(*args, **kwargs) ตัวอย่างเช่นMyInfo = provider() m = MyInfo(foo = 1) m เป็นอินสแตนซ์ MyInfo ที่มี m.foo == 1 โดยตรงแต่ในกรณีที่ระบุ  
 หมายเหตุ: ขั้นตอนข้างต้นหมายความว่าจะเกิดข้อผิดพลาดหาก  ด้วยวิธีนี้  เมื่อระบุ  MyInfo, _new_myinfo = provider(init = ...)  | 
          
repository_rule
callable repository_rule(implementation, *, attrs=None, local=False, environ=[], configure=False, remotable=False, doc=None)
module_extension() หรือใช้โดย use_repo_rule() ได้
          
      พารามิเตอร์
| พารามิเตอร์ | คำอธิบาย | 
|---|---|
              implementation
             | 
            
                          callable;
                                     required ฟังก์ชันที่ใช้กฎนี้ ต้องมีพารามิเตอร์เดียวคือ repository_ctx ระบบจะเรียกใช้ฟังก์ชันในระหว่างระยะการโหลดสำหรับอินสแตนซ์ของกฎแต่ละรายการ
             | 
          
              attrs
             | 
            
                          dict หรือ None
                                     ค่าเริ่มต้นคือ Noneพจนานุกรมเพื่อประกาศแอตทริบิวต์ทั้งหมดของกฎที่เก็บ โดยจะแมปจากชื่อแอตทริบิวต์ไปยังออบเจ็กต์แอตทริบิวต์ (ดูโมดูล attr) แอตทริบิวต์ที่ขึ้นต้นด้วย _ เป็นแอตทริบิวต์ส่วนตัว และใช้เพื่อเพิ่มการอ้างอิงโดยนัยในป้ายกำกับไปยังไฟล์ได้ (กฎของที่เก็บไม่สามารถขึ้นอยู่กับอาร์ติแฟกต์ที่สร้างขึ้น) ระบบจะเพิ่มแอตทริบิวต์ name โดยนัยและต้องไม่มีการระบุ
แอตทริบิวต์ที่ประกาศจะแปลง   | 
          
              local
             | 
            
                          bool;
                                     ค่าเริ่มต้นคือ Falseระบุว่ากฎนี้จะดึงข้อมูลทุกอย่างจากระบบในเครื่องและควรได้รับการประเมินใหม่ทุกครั้งที่ดึงข้อมูล  | 
          
              environ
             | 
            
                          ลำดับของสตริง
                                     ค่าเริ่มต้นคือ []เลิกใช้งานแล้ว พารามิเตอร์นี้เลิกใช้งานแล้ว โปรดเปลี่ยนไปใช้ repository_ctx.getenv แทนแสดงรายการตัวแปรสภาพแวดล้อมที่กฎของที่เก็บนี้ขึ้นอยู่กับ หากตัวแปรสภาพแวดล้อมในรายการนั้นมีการเปลี่ยนแปลง ระบบจะดึงข้อมูลที่เก็บอีกครั้ง  | 
          
              configure
             | 
            
                          bool;
                                     ค่าเริ่มต้นคือ Falseระบุว่าที่เก็บจะตรวจสอบระบบเพื่อวัตถุประสงค์ในการกำหนดค่า  | 
          
              remotable
             | 
            
                          bool;
                                     ค่าเริ่มต้นคือ Falseเวอร์ชันทดลอง พารามิเตอร์นี้ยังอยู่ในขั้นทดลองและอาจมีการเปลี่ยนแปลงได้ทุกเมื่อ โปรดอย่าใช้ API นี้ อาจเปิดใช้ในเวอร์ชันทดลองได้โดยการตั้งค่า --experimental_repo_remote_exec ใช้งานร่วมกับการดำเนินการจากระยะไกลได้  | 
          
              doc
             | 
            
                          string หรือ None
                                     ค่าเริ่มต้นคือ Noneคำอธิบายของกฎที่เก็บที่เครื่องมือสร้างเอกสารสามารถดึงข้อมูลได้  | 
          
กฎ
callable rule(implementation, *, test=unbound, attrs={}, outputs=None, executable=unbound, output_to_genfiles=False, fragments=[], host_fragments=[], _skylark_testable=False, toolchains=[], incompatible_use_toolchain_transition=False, doc=None, provides=[], dependency_resolution_rule=False, exec_compatible_with=[], analysis_test=False, build_setting=None, cfg=None, exec_groups=None, initializer=None, parent=None, extendable=None, subrules=[])ต้องกำหนดกฎให้กับตัวแปรส่วนกลางในไฟล์ .bzl โดยชื่อของตัวแปรส่วนกลางคือชื่อของกฎ
กฎทดสอบต้องมีชื่อที่ลงท้ายด้วย _test ส่วนกฎอื่นๆ ทั้งหมดต้องไม่มีคำต่อท้ายนี้ (ข้อจำกัดนี้มีผลกับกฎเท่านั้น ไม่ใช่เป้าหมายของกฎ)
          
      
พารามิเตอร์
| พารามิเตอร์ | คำอธิบาย | 
|---|---|
              implementation
             | 
            
                          function;
                                     required ฟังก์ชัน Starlark ที่ใช้กฎนี้ต้องมีพารามิเตอร์ 1 รายการเท่านั้นคือ ctx ระบบจะเรียกใช้ฟังก์ชันในระหว่างขั้นตอนการวิเคราะห์สำหรับกฎแต่ละอินสแตนซ์ เข้าถึงแอตทริบิวต์ที่ผู้ใช้ระบุได้ โดยต้องสร้างการดำเนินการเพื่อสร้างเอาต์พุตที่ประกาศไว้ทั้งหมด  | 
          
              test
             | 
            
                          bool;
                                     ค่าเริ่มต้นคือ unboundไม่ว่ากฎนี้จะเป็นกฎทดสอบหรือไม่ นั่นคือ ไม่ว่ากฎนี้อาจเป็นเรื่องของคำสั่ง blaze test หรือไม่ กฎการทดสอบทั้งหมดจะถือว่าเรียกใช้ได้โดยอัตโนมัติ คุณจึงไม่จำเป็น (และไม่ควร) ตั้งค่า executable = True อย่างชัดเจนสำหรับกฎการทดสอบ ค่าเริ่มต้นคือ False ดูข้อมูลเพิ่มเติมได้ที่ หน้ากฎ
             | 
          
              attrs
             | 
            
                          dict;
                                     ค่าเริ่มต้นคือ {}พจนานุกรมเพื่อประกาศแอตทริบิวต์ทั้งหมดของกฎ โดยจะแมปจากชื่อแอตทริบิวต์ไปยังออบเจ็กต์แอตทริบิวต์ (ดูโมดูล attr) แอตทริบิวต์ที่ขึ้นต้นด้วย _ เป็นแอตทริบิวต์ส่วนตัว และใช้เพื่อเพิ่มการอ้างอิงโดยนัยในป้ายกำกับได้ ระบบจะเพิ่มแอตทริบิวต์ name โดยนัยและต้องไม่มีการระบุ ระบบจะเพิ่มแอตทริบิวต์ visibility, deprecation, tags, testonly และ features โดยอัตโนมัติและจะลบล้างไม่ได้ กฎส่วนใหญ่ต้องการแอตทริบิวต์เพียงไม่กี่รายการ เราจำกัดจำนวนแอตทริบิวต์ที่ประกาศได้เพื่อจำกัดการใช้หน่วยความจำ
แอตทริบิวต์ที่ประกาศจะแปลง   | 
          
              outputs
             | 
            
                          dict หรือ None หรือ function
                                     ค่าเริ่มต้นคือ Noneเลิกใช้งานแล้ว พารามิเตอร์นี้เลิกใช้งานแล้วและจะถูกนำออกเร็วๆ นี้ โปรดอย่าใช้ API นี้ ระบบจะปิด เมื่อใช้ Flag --incompatible_no_rule_outputs_param ใช้ Flag นี้เพื่อยืนยันว่าโค้ดของคุณทำงานได้โดยไม่พึ่งพา API ที่กำลังจะถูกนำออก พารามิเตอร์นี้เลิกใช้งานแล้ว ย้ายข้อมูลกฎเพื่อใช้ OutputGroupInfo หรือ attr.output แทน สคีมาสําหรับกําหนดเอาต์พุตที่ประกาศไว้ล่วงหน้า ผู้ใช้ไม่ได้ระบุป้ายกำกับสำหรับไฟล์เหล่านี้ ซึ่งแตกต่างจากแอตทริบิวต์  ค่าของอาร์กิวเมนต์นี้อาจเป็นพจนานุกรมหรือฟังก์ชัน Callback ที่สร้างพจนานุกรม Callback ทำงานคล้ายกับแอตทริบิวต์การอ้างอิงที่คำนวณแล้ว โดยชื่อพารามิเตอร์ของฟังก์ชันจะตรงกับแอตทริบิวต์ของกฎ เช่น หากคุณส่ง  แต่ละรายการในพจนานุกรมจะสร้างเอาต์พุตที่ประกาศไว้ล่วงหน้า โดยที่คีย์คือตัวระบุ และค่าคือเทมเพลตสตริงที่กำหนดป้ายกำกับของเอาต์พุต ในฟังก์ชันการใช้งานของกฎ ตัวระบุจะกลายเป็นชื่อฟิลด์ที่ใช้เพื่อเข้าถึง  
 ในทางปฏิบัติ ตัวยึดตำแหน่งการแทนที่ที่พบบ่อยที่สุดคือ   | 
          
              executable
             | 
            
                          bool
                                     ค่าเริ่มต้นคือ unboundไม่ว่ากฎนี้จะถือว่าเป็นไฟล์ที่เรียกใช้งานได้หรือไม่ นั่นคือ ไม่ว่ากฎนี้อาจเป็นหัวข้อของคำสั่ง blaze run หรือไม่ โดยค่าเริ่มต้นจะเป็น False ดูข้อมูลเพิ่มเติมได้ที่ หน้ากฎ
             | 
          
              output_to_genfiles
             | 
            
                          bool;
                                     ค่าเริ่มต้นคือ Falseหากเป็นจริง ระบบจะสร้างไฟล์ในไดเรกทอรี genfiles แทนไดเรกทอรี bin อย่าตั้งค่าสถานะนี้ เว้นแต่คุณจำเป็นต้องใช้เพื่อความเข้ากันได้กับกฎที่มีอยู่ (เช่น เมื่อสร้างไฟล์ส่วนหัวสำหรับ C++)  | 
          
              fragments
             | 
            
                          ลำดับของสตริง
                                     ค่าเริ่มต้นคือ []รายการชื่อของส่วนการกำหนดค่าที่กฎกำหนดในการกำหนดค่าเป้าหมาย  | 
          
              host_fragments
             | 
            
                          ลำดับของสตริง
                                     ค่าเริ่มต้นคือ []รายการชื่อของส่วนการกำหนดค่าที่กฎกำหนดในการกำหนดค่าโฮสต์  | 
          
              _skylark_testable
             | 
            
                          bool;
                                     ค่าเริ่มต้นคือ False(ทดลอง) หากเป็นจริง กฎนี้จะแสดงการดำเนินการเพื่อให้กฎที่ขึ้นอยู่กับกฎนี้ตรวจสอบผ่านผู้ให้บริการ Actions ผู้ให้บริการยังพร้อมให้บริการกับกฎเองด้วยการเรียกใช้ ctx.created_actions()ซึ่งควรใช้เพื่อทดสอบลักษณะการทำงานของกฎ Starlark ในเวลาวิเคราะห์เท่านั้น เราอาจนำฟีเจอร์นี้ออกในอนาคต  | 
          
              toolchains
             | 
            
                          sequence;
                                     ค่าเริ่มต้นคือ []หากตั้งค่าไว้ ชุดเครื่องมือที่กฎนี้ต้องการ รายการอาจมีออบเจ็กต์ String, Label หรือ StarlarkToolchainTypeApi ในการผสมผสานใดก็ได้ ระบบจะค้นหา Toolchain โดยการตรวจสอบแพลตฟอร์มปัจจุบัน และส่งให้การติดตั้งใช้งานกฎผ่าน ctx.toolchain
             | 
          
              incompatible_use_toolchain_transition
             | 
            
                          bool;
                                     ค่าเริ่มต้นคือ Falseเลิกใช้งานแล้ว ไม่ได้ใช้แล้วและควรนำออก  | 
          
              doc
             | 
            
                          string หรือ None
                                     ค่าเริ่มต้นคือ Noneคำอธิบายของกฎที่เครื่องมือสร้างเอกสารสามารถดึงข้อมูลได้  | 
          
              provides
             | 
            
                          sequence
                                     ค่าเริ่มต้นคือ []รายการผู้ให้บริการที่ฟังก์ชันการติดตั้งใช้งานต้องส่งคืน หากฟังก์ชันการใช้งานละเว้นประเภทผู้ให้บริการใดก็ตามที่แสดงไว้ที่นี่จากค่าที่แสดงผล จะถือว่าเป็นข้อผิดพลาด อย่างไรก็ตาม ฟังก์ชันการติดตั้งใช้งานอาจแสดงผู้ให้บริการเพิ่มเติมที่ไม่ได้ระบุไว้ที่นี่ แต่ละองค์ประกอบของรายการคือออบเจ็กต์   | 
          
              dependency_resolution_rule
             | 
            
                          bool;
                                     ค่าเริ่มต้นคือ Falseหากตั้งค่าไว้ กฎจะเป็นการอ้างอิงผ่านแอตทริบิวต์ที่ทำเครื่องหมายว่าพร้อมใช้งานใน Materializer ด้วย แอตทริบิวต์ทั้งหมดของกฎที่มีการตั้งค่าแฟล็กนี้ต้องทำเครื่องหมายว่าพร้อมใช้งานใน Materializer ด้วย เพื่อให้กฎที่ทำเครื่องหมายไว้ไม่ขึ้นอยู่กับกฎที่ไม่ได้ทำเครื่องหมายไว้  | 
          
              exec_compatible_with
             | 
            
                          ลำดับของสตริง
                                     ค่าเริ่มต้นคือ []รายการข้อจำกัดในแพลตฟอร์มการดำเนินการซึ่งใช้กับเป้าหมายทั้งหมดของประเภทกฎนี้  | 
          
              analysis_test
             | 
            
                          bool;
                                     ค่าเริ่มต้นคือ Falseหากเป็นจริง ระบบจะถือว่ากฎนี้เป็นการทดสอบการวิเคราะห์ หมายเหตุ: กฎการทดสอบการวิเคราะห์ได้รับการกำหนดโดยใช้โครงสร้างพื้นฐานที่ระบุไว้ในไลบรารี Starlark หลักเป็นหลัก ดูคำแนะนำได้ที่การทดสอบ หากกำหนดกฎเป็นกฎการทดสอบการวิเคราะห์ ระบบจะอนุญาตให้ใช้การเปลี่ยนการกำหนดค่าที่กำหนดโดยใช้ analysis_test_transition ในแอตทริบิวต์ของกฎ แต่จะเลือกใช้ข้อจำกัดบางอย่าง 
  | 
          
              build_setting
             | 
            
                          BuildSetting หรือ None
                                     ค่าเริ่มต้นคือ Noneหากตั้งค่าไว้ จะอธิบายว่ากฎนี้เป็น build setting ประเภทใด ดูโมดูล config หากตั้งค่านี้ ระบบจะเพิ่มแอตทริบิวต์ที่ต้องระบุชื่อ "build_setting_default" ลงในกฎนี้โดยอัตโนมัติ โดยมีประเภทที่สอดคล้องกับค่าที่ส่งในที่นี้
             | 
          
              cfg
             | 
            
                                     ค่าเริ่มต้นคือ Noneหากตั้งค่าไว้ จะชี้ไปที่การเปลี่ยนการกำหนดค่าที่กฎจะใช้กับการกำหนดค่าของตัวเองก่อนการวิเคราะห์  | 
          
              exec_groups
             | 
            
                          dict หรือ None
                                     ค่าเริ่มต้นคือ Noneพจนานุกรมของชื่อกลุ่มการดำเนินการ (สตริง) ไปยัง exec_groups หากตั้งค่าไว้ จะอนุญาตให้กฎเรียกใช้การดำเนินการในแพลตฟอร์มการดำเนินการหลายรายการภายในเป้าหมายเดียว ดูข้อมูลเพิ่มเติมได้ที่เอกสารประกอบเกี่ยวกับกลุ่มการดำเนินการ
             | 
          
              initializer
             | 
            
                                     ค่าเริ่มต้นคือ Noneเวอร์ชันทดลอง: ฟังก์ชัน Stalark ที่เริ่มต้นแอตทริบิวต์ของกฎ ระบบจะเรียกใช้ฟังก์ชันเมื่อโหลดอินสแตนซ์ของกฎแต่ละรายการ โดยจะเรียกใช้ด้วย  โดยต้องแสดงผลพจนานุกรมจากชื่อแอตทริบิวต์ไปยังค่าที่ต้องการ แอตทริบิวต์ที่ไม่ได้แสดงจะไม่ได้รับผลกระทบ การแสดงผล  ระบบจะประเมินค่าเริ่มต้นก่อนค่าเริ่มต้นที่ระบุไว้ในคำจำกัดความของแอตทริบิวต์ ดังนั้น หากพารามิเตอร์ในลายเซ็นของตัวเริ่มต้นมีค่าเริ่มต้น ค่าดังกล่าวจะเขียนทับค่าเริ่มต้นจากคำจำกัดความของแอตทริบิวต์ (ยกเว้นในกรณีที่ส่งคืน  ในทำนองเดียวกัน หากพารามิเตอร์ในลายเซ็นของตัวเริ่มต้นไม่มีค่าเริ่มต้น พารามิเตอร์นั้นจะกลายเป็นพารามิเตอร์ที่ต้องระบุ ในกรณีดังกล่าว คุณควรละเว้นการตั้งค่าเริ่มต้น/การตั้งค่าที่บังคับในคำจำกัดความแอตทริบิวต์ แนวทางปฏิบัติแนะนำคือใช้  ในกรณีของกฎที่ขยาย ระบบจะเรียกใช้ตัวเริ่มต้นทั้งหมดโดยเริ่มจากองค์ประกอบย่อยไปยังองค์ประกอบระดับบน ระบบจะส่งเฉพาะแอตทริบิวต์สาธารณะที่ตัวเริ่มต้นแต่ละรายการรู้จัก  | 
          
              parent
             | 
            
                                     ค่าเริ่มต้นคือ Noneทดลอง: กฎ Stalark ที่ขยาย เมื่อตั้งค่า ระบบจะผสานรวมแอตทริบิวต์สาธารณะและผู้ให้บริการที่โฆษณา กฎจะตรงกับ executable และ test จากระดับบนสุด ระบบจะผสานค่าของ fragments, toolchains, exec_compatible_with และ exec_groups ระบบอาจไม่ตั้งค่าพารามิเตอร์เดิมหรือพารามิเตอร์ที่เลิกใช้งานแล้ว การเปลี่ยนการกำหนดค่าขาเข้า cfg ของระดับบนจะมีผลหลังจากการกำหนดค่าขาเข้าของกฎนี้
             | 
          
              extendable
             | 
            
                          bool หรือ Label หรือ string หรือ None
                                     ค่าเริ่มต้นคือ Noneทดลอง: ป้ายกำกับของรายการที่อนุญาตซึ่งกำหนดกฎที่ขยายกฎนี้ได้ นอกจากนี้ยังตั้งค่าเป็น True/False เพื่ออนุญาต/ไม่อนุญาตให้ขยายเวลาเสมอได้ด้วย Bazel จะอนุญาตส่วนขยายเสมอโดยค่าเริ่มต้น  | 
          
              subrules
             | 
            
                          ลำดับของกฎย่อย
                                     ค่าเริ่มต้นคือ []การทดลอง: รายการกฎย่อยที่กฎนี้ใช้  | 
          
เลือก
unknown select(x, no_match_error='')
select() คือฟังก์ชันตัวช่วยที่ทำให้แอตทริบิวต์กฎกำหนดค่าได้ ดูรายละเอียดได้ที่สร้างสารานุกรม
          
      พารามิเตอร์
| พารามิเตอร์ | คำอธิบาย | 
|---|---|
              x
             | 
            
                          dict;
                                     required Dict ที่แมปเงื่อนไขการกำหนดค่ากับค่า แต่ละคีย์คือป้ายกำกับหรือสตริงป้ายกำกับที่ระบุอินสแตนซ์ config_setting หรือ constraint_value ดูเอกสารประกอบเกี่ยวกับมาโครเพื่อดูว่าเมื่อใดควรใช้ป้ายกำกับแทนสตริง  | 
          
              no_match_error
             | 
            
                          สตริง
                                     ค่าเริ่มต้นคือ ''ข้อผิดพลาดที่กำหนดเองที่ไม่บังคับเพื่อรายงานหากไม่มีเงื่อนไขใดตรงกัน  | 
          
กฎย่อย
Subrule subrule(implementation, attrs={}, toolchains=[], fragments=[], subrules=[])
พารามิเตอร์
| พารามิเตอร์ | คำอธิบาย | 
|---|---|
              implementation
             | 
            
                          ฟังก์ชัน
                                     ต้องระบุ ฟังก์ชัน Starlark ที่ใช้กฎย่อยนี้  | 
          
              attrs
             | 
            
                          dict;
                                     ค่าเริ่มต้นคือ {}พจนานุกรมเพื่อประกาศแอตทริบิวต์ (ส่วนตัว) ทั้งหมดของกฎย่อย กฎย่อยจะมีได้เฉพาะแอตทริบิวต์ส่วนตัวที่เป็นประเภทป้ายกำกับ (เช่น ป้ายกำกับหรือรายการป้ายกำกับ) Bazel จะส่งค่าที่แก้ไขแล้วซึ่งสอดคล้องกับป้ายกำกับเหล่านี้ไปยังฟังก์ชันการใช้งานของกฎย่อยโดยอัตโนมัติเป็นอาร์กิวเมนต์ที่มีชื่อ (ดังนั้นฟังก์ชันการใช้งานจึงต้องยอมรับพารามิเตอร์ที่มีชื่อซึ่งตรงกับชื่อแอตทริบิวต์) ประเภทของค่าเหล่านี้จะเป็นดังนี้ 
  | 
          
              toolchains
             | 
            
                          sequence;
                                     ค่าเริ่มต้นคือ []หากตั้งค่าไว้ ชุดเครื่องมือที่กฎย่อยนี้ต้องการ รายการอาจมีออบเจ็กต์ String, Label หรือ StarlarkToolchainTypeApi ในการผสมผสานใดก็ได้ ระบบจะค้นหา Toolchain โดยตรวจสอบแพลตฟอร์มปัจจุบันและส่งให้การติดตั้งใช้งานกฎย่อยผ่าน ctx.toolchains โปรดทราบว่าต้องเปิดใช้ AEG ในกฎการใช้งานหากตั้งค่าพารามิเตอร์นี้ หากยังไม่ได้ย้ายข้อมูลไปยัง AEG โปรดดู https://bazel.build/extending/auto-exec-groups#migration-aegs
             | 
          
              fragments
             | 
            
                          ลำดับของสตริง
                                     ค่าเริ่มต้นคือ []รายการชื่อของส่วนการกำหนดค่าที่กฎย่อยต้องการในการกำหนดค่าเป้าหมาย  | 
          
              subrules
             | 
            
                          ลำดับของกฎย่อย
                                     ค่าเริ่มต้นคือ []รายการกฎย่อยอื่นๆ ที่กฎย่อยนี้ต้องการ  | 
          
tag_class
tag_class tag_class(attrs={}, *, doc=None)
พารามิเตอร์
| พารามิเตอร์ | คำอธิบาย | 
|---|---|
              attrs
             | 
            
                          dict;
                                     ค่าเริ่มต้นคือ {}พจนานุกรมเพื่อประกาศแอตทริบิวต์ทั้งหมดของคลาสแท็กนี้ โดยจะแมปจากชื่อแอตทริบิวต์ไปยังออบเจ็กต์แอตทริบิวต์ (ดูโมดูล attr) โปรดทราบว่าแอตทริบิวต์ที่ประกาศจะไม่แปลง   | 
          
              doc
             | 
            
                          สตริง หรือ None
                                     ค่าเริ่มต้นคือ Noneคำอธิบายของคลาสแท็กที่เครื่องมือสร้างเอกสารสามารถดึงข้อมูลได้  | 
          
การเปิดเผย
None visibility(value)ตั้งค่าระดับการเข้าถึงการโหลดของโมดูล .bzl ที่กำลังเริ่มต้น
ระดับการเข้าถึงการโหลดของโมดูลจะควบคุมว่าไฟล์ BUILD และ .bzl อื่นๆ จะโหลดโมดูลนั้นได้หรือไม่ (ซึ่งแตกต่างจากระดับการเข้าถึงเป้าหมายของไฟล์ต้นฉบับ .bzl ที่เกี่ยวข้อง ซึ่งควบคุมว่าไฟล์จะปรากฏเป็นการขึ้นต่อกันของเป้าหมายอื่นๆ ได้หรือไม่) การโหลดการมองเห็นจะทำงานที่ระดับแพ็กเกจ กล่าวคือ หากต้องการโหลดโมดูล ไฟล์ที่ทำการโหลดจะต้องอยู่ในแพ็กเกจที่ได้รับสิทธิ์การมองเห็นโมดูล ระบบจะโหลดโมดูลภายในแพ็กเกจของโมดูลเองได้เสมอ ไม่ว่าการมองเห็นจะเป็นอย่างไรก็ตาม
visibility() จะเรียกได้เพียงครั้งเดียวต่อไฟล์ .bzl และที่ระดับบนสุดเท่านั้น ไม่ใช่ภายในฟังก์ชัน รูปแบบที่แนะนำคือการวางการเรียกนี้ไว้ใต้คำสั่ง load() โดยตรงและวางตรรกะสั้นๆ ที่จำเป็นต่อการกำหนดอาร์กิวเมนต์
หากตั้งค่า Flag --check_bzl_visibility เป็น "เท็จ" การละเมิดระดับการมองเห็นการโหลดจะแสดงคำเตือนแต่จะไม่ทำให้บิลด์ล้มเหลว
          
      
พารามิเตอร์
| พารามิเตอร์ | คำอธิบาย | 
|---|---|
              value
             | 
            
                                     ต้องระบุ รายการสตริงข้อมูลจำเพาะของแพ็กเกจ หรือสตริงข้อมูลจำเพาะของแพ็กเกจเดียว ข้อกำหนดของแพ็กเกจเป็นไปตามรูปแบบเดียวกับของ  
 ไม่อนุญาตให้ใช้ไวยากรณ์ "@" โดยจะมีการตีความข้อกำหนดทั้งหมดที่เกี่ยวข้องกับที่เก็บของโมดูลปัจจุบัน หาก  โปรดทราบว่าแฟล็ก   |