Üyeler
- analysis_test_transition
- aspect
- configuration_field
- depset
- exec_group
- module_extension
- sağlayıcı
- repository_rule
- kuralı
- seç
- subrule
- tag_class
- visibility
analysis_test_transition
transition analysis_test_transition(settings)
 Bir analiz testi kuralının bağımlılıklarına uygulanacak bir yapılandırma geçişi oluşturur. Bu geçiş yalnızca analysis_test = True içeren kuralların özelliklerine uygulanabilir. Bu tür kurallar özellikler açısından kısıtlanmıştır (ör. bağımlılık ağacının boyutu sınırlıdır). Bu nedenle, bu işlev kullanılarak oluşturulan geçişlerin potansiyel kapsamı, transition() kullanılarak oluşturulan geçişlere kıyasla sınırlıdır. 
Bu işlev öncelikli olarak Analysis Test Framework temel kitaplığını kolaylaştırmak için tasarlanmıştır. En iyi uygulamalar için dokümanlarını (veya uygulamasını) inceleyin.
Parametreler
| Parametre | Açıklama | 
|---|---|
| settings | gerekli Bu yapılandırma geçişiyle ayarlanması gereken yapılandırma ayarlarıyla ilgili bilgileri içeren bir sözlük. Anahtarlar, derleme ayarı etiketleridir ve değerler, geçiş sonrası yeni değerlerdir. Diğer tüm ayarlar değiştirilmez. Bir analiz testinin başarılı olması için ayarlanması gereken belirli yapılandırma ayarlarını bildirmek için bu özelliği kullanın. | 
ilişkili program
Aspect aspect(implementation, attr_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=[])
Parametreler
| Parametre | Açıklama | 
|---|---|
| implementation | gerekli Bu yönü uygulayan bir Starlark işlevi. Tam olarak iki parametreye sahiptir: Target (yönün uygulandığı hedef) ve ctx (hedefin oluşturulduğu kural bağlamı). Hedefin özellikleri ctx.rulealanı üzerinden kullanılabilir. Bu işlev, bir yönün bir hedefe her uygulanması için analiz aşamasında değerlendirilir. | 
| attr_aspects | Dize dizisi;
                                     varsayılan değer []Özellik adlarının listesi. Yön, bu adlara sahip bir hedefin özelliklerinde belirtilen bağımlılıklar boyunca yayılır. Buradaki yaygın değerler arasında depsveexportsyer alır. Liste, bir hedefin tüm bağımlılıklarına yayılacak tek bir dize"*"da içerebilir. | 
| attrs | dict;
                                     varsayılan değer {}Öğenin tüm özelliklerini bildiren bir sözlük. Özellik adından özellik nesnesine eşleme yapar (ör. `attr.label` veya `attr.string`) [attr modülüne bakın]. Görünüm özellikleri, uygulama işlevinde ctxparametresinin alanları olarak kullanılabilir.
 Açık özellikler  | 
| required_providers | Varsayılan değer []'dir. Bu özellik, yönün yayılımını yalnızca kuralları gerekli sağlayıcılarının reklamını yapan hedeflerle sınırlamasına olanak tanır. Değer, tek tek sağlayıcıları veya sağlayıcı listelerini içeren bir liste olmalı ancak ikisini birden içermemelidir. Örneğin, [[FooInfo], [BarInfo], [BazInfo, QuxInfo]]geçerli bir değerdir ancak[FooInfo, BarInfo, [BazInfo, QuxInfo]]geçerli değildir.İç içe yerleştirilmemiş sağlayıcı listesi, otomatik olarak tek bir sağlayıcı listesi içeren bir listeye dönüştürülür. Yani  Bazı kuralların (ör.  | 
| required_aspect_providers | Varsayılan değer []'dir. Bu özellik, bu yönün diğer yönleri incelemesine olanak tanır. Değer, tek tek sağlayıcıları veya sağlayıcı listelerini içeren bir liste olmalı ancak ikisini birden içermemelidir. Örneğin, [[FooInfo], [BarInfo], [BazInfo, QuxInfo]]geçerli bir değerdir ancak[FooInfo, BarInfo, [BazInfo, QuxInfo]]geçerli değildir.İç içe yerleştirilmemiş sağlayıcı listesi, otomatik olarak tek bir sağlayıcı listesi içeren bir listeye dönüştürülür. Yani  Başka bir yönü (ör.  | 
| provides | Varsayılan değer []'dir. Uygulama işlevinin döndürmesi gereken sağlayıcıların listesi. Uygulama işlevi, burada listelenen sağlayıcı türlerinden herhangi birini dönüş değerinden çıkarırsa hata oluşur. Ancak uygulama işlevi, burada listelenmeyen ek sağlayıcılar döndürebilir. Listenin her öğesi,  | 
| requires | Aspect'lerin sequence'ı;
                                     varsayılan değer []Bu yönün yayılması için önceden yayılması gereken yönlerin listesi. | 
| fragments | string'lerin sequence'ı;
                                     varsayılan değer []Yönün hedef yapılandırmada gerektirdiği yapılandırma parçalarının adlarının listesi. | 
| host_fragments | string'lerin sequence'ı;
                                     varsayılan değer []Yönün, ana makine yapılandırmasında gerektirdiği yapılandırma parçalarının adlarının listesi. | 
| toolchains | sequence;
                                     varsayılan değer []Ayarlandığında, bu kuralın gerektirdiği araç zincirleri kümesi. Liste, herhangi bir kombinasyonda String, Label veya StarlarkToolchainTypeApi nesnelerini içerebilir. Araç zincirleri, mevcut platform kontrol edilerek bulunur ve ctx.toolchainaracılığıyla kural uygulamasına sağlanır. | 
| incompatible_use_toolchain_transition | varsayılan değer FalseKullanımdan kaldırıldı. Artık kullanılmıyor ve kaldırılması gerekiyor. | 
| doc | string; veya None;
                                     varsayılan değerNoneBelge oluşturma araçları tarafından çıkarılabilen yönün açıklaması. | 
| apply_to_generating_rules | Varsayılan değer FalseDoğruysa en-boy oranı, çıkış dosyasına uygulandığında çıkış dosyasının oluşturma kuralına uygulanır. Örneğin, bir yönün "deps" özelliği aracılığıyla geçişli olarak yayıldığını ve "alpha" hedefine uygulandığını varsayalım. "alpha" hedefinin "deps = [':beta_output']" olduğunu varsayalım. Burada "beta_output", "beta" hedefinin bildirilmiş bir çıkışıdır. "beta" hedefinin "deps" özelliklerinden biri olarak "charlie" hedefi olduğunu varsayalım. Yön için "apply_to_generating_rules=True" ise yön, "alpha", "beta" ve "charlie" hedefleri aracılığıyla yayılır. False ise yön yalnızca "alpha" hedefine yayılır. Varsayılan olarak yanlış (false) değerindedir. | 
| exec_compatible_with | sequence of strings;
                                     default is []Yürütme platformunda bu yönün tüm örnekleri için geçerli olan kısıtlamaların listesi. | 
| exec_groups | dict; veya None;
                                     varsayılan değerNoneYürütme grubu adının (dize) exec_groups sözlüğü. Ayarlanırsa yönlerin tek bir örnek içinde birden fazla yürütme platformunda işlem yapmasına olanak tanır. Daha fazla bilgi için yürütme grupları dokümanlarını inceleyin. | 
| subrules | Alt Kural'ların sırası;
                                     varsayılan değer []Deneysel: Bu yön tarafından kullanılan alt kurallar listesi. | 
configuration_field
LateBoundDefault configuration_field(fragment, name)
Örnek kullanım:
Kural özelliği tanımlama: 
'_foo': attr.label(default=configuration_field(fragment='java', name='toolchain'))
Kural uygulamada erişim: 
  def _rule_impl(ctx):
    foo_info = ctx.attr._foo
    ...Parametreler
| Parametre | Açıklama | 
|---|---|
| fragment | required Geç bağlanan değeri içeren bir yapılandırma parçasının adı. | 
| name | zorunlu Yapılandırma parçasından alınacak değerin adı. | 
depset
depset depset(direct=None, order="default", *, transitive=None)
direct parametresi, depset'in doğrudan öğelerinin listesidir. transitive parametresi ise öğeleri oluşturulan depset'in dolaylı öğeleri haline gelen depset'lerin listesidir. Depsset bir listeye dönüştürüldüğünde öğelerin döndürülme sırası order parametresiyle belirtilir. Daha fazla bilgi için Depsetlere genel bakış bölümüne bakın.
Bir depset'in tüm öğeleri (doğrudan ve dolaylı), type(x) ifadesiyle elde edildiği gibi aynı türde olmalıdır.
Tekrarlama sırasında yinelenenleri ortadan kaldırmak için karma tabanlı bir küme kullanıldığından, bir depset'in tüm öğeleri karma oluşturulabilir olmalıdır. Ancak bu değişmez, şu anda tüm oluşturucularda tutarlı bir şekilde kontrol edilmemektedir. Tutarlı kontrolü etkinleştirmek için --incompatible_always_check_depset_elements işaretini kullanın. Bu, gelecekteki sürümlerde varsayılan davranış olacaktır. 10313 numaralı soruna bakın.
Ayrıca, öğeler şu anda değişmez olmalıdır. Ancak bu kısıtlama gelecekte gevşetilecektir.
 Oluşturulan bağımlılık kümesinin sırası, transitive bağımlılık kümelerinin sırasıyla uyumlu olmalıdır. "default" sırası diğer sıralarla uyumludur, diğer tüm sıralar yalnızca kendi aralarında uyumludur.
          
      
Parametreler
| Parametre | Açıklama | 
|---|---|
| direct | sequence; veya None;
                                     varsayılan değerNoneBir depset'in direct öğelerinin listesi. | 
| order | varsayılan değer "default"Yeni depset için geçiş stratejisi. Olası değerler için buraya bakın. | 
| transitive | depset'lerin sırası veya None;
                                     varsayılan değerNoneÖğeleri depset'in dolaylı öğeleri haline gelecek depset'lerin listesi. | 
exec_group
exec_group exec_group(toolchains=[], exec_compatible_with=[])
Parametreler
| Parametre | Açıklama | 
|---|---|
| toolchains | sequence;
                                     varsayılan değer []Bu yürütme grubunun gerektirdiği araç zincirleri kümesi. Liste, herhangi bir kombinasyonda String, Label veya StarlarkToolchainTypeApi nesnelerini içerebilir. | 
| exec_compatible_with | string'lerin sequence'ı;
                                     varsayılan değer []Yürütme platformuyla ilgili kısıtlamaların listesi. | 
module_extension
unknown module_extension(implementation, *, tag_classes={}, doc=None, environ=[], os_dependent=False, arch_dependent=False)Parametreler
| Parametre | Açıklama | 
|---|---|
| implementation | gerekli Bu modül uzantısını uygulayan işlev. Tek bir parametre ( module_ctx) almalıdır. Kullanılabilir depoların kümesini belirlemek için derlemenin başında işlev bir kez çağrılır. | 
| tag_classes | Varsayılan değer {}'dir. Uzantı tarafından kullanılan tüm etiket sınıflarını bildirmek için kullanılan sözlük. Etiket sınıfının adından bir tag_classnesnesine eşleme yapar. | 
| doc | string; veya None;
                                     varsayılan değerNoneBelge oluşturma araçları tarafından çıkarılabilen modül uzantısının açıklaması. | 
| environ | string'lerin sequence'ı;
                                     varsayılan değer []Bu modül uzantısının bağlı olduğu ortam değişkenlerinin listesini sağlar. Bu listedeki bir ortam değişkeni değişirse uzantı yeniden değerlendirilir. | 
| os_dependent | Varsayılan değer False'dir. Bu uzantının işletim sistemine bağlı olup olmadığını gösterir. | 
| arch_dependent | Varsayılan değer False'dir. Bu uzantının mimariye bağlı olup olmadığını gösterir. | 
sağlayıcı
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
    ...Sağlayıcıları kullanmayla ilgili kapsamlı bir kılavuz için Kurallar (Sağlayıcılar) başlıklı makaleyi inceleyin.
init belirtilmemişse Provider çağrılabilir değerini döndürür.
init belirtilirse 2 öğeden oluşan bir demet döndürür: Provider çağrılabilir değeri ve raw constructor çağrılabilir değeri. Ayrıntılar için  Kurallar (Özel sağlayıcıların özel olarak başlatılması) ve aşağıdaki init parametresiyle ilgili tartışma bölümüne bakın.
          
      
Parametreler
| Parametre | Açıklama | 
|---|---|
| doc | string; veya None;
                                     varsayılan değerNoneBelge oluşturma araçları tarafından çıkarılabilen sağlayıcı açıklaması. | 
| fields | string'lerin sequence'ı; veya dict; veya None;
                                     varsayılan değerNoneBelirtilirse izin verilen alanlar kümesini kısıtlar. Olası değerler: 
 | 
| init | callable; veya None;
                                     varsayılan değerNoneSağlayıcının alan değerlerini örnekleme sırasında önceden işlemek ve doğrulamak için isteğe bağlı geri çağırma. initbelirtilirseprovider(), 2 öğeli bir demet döndürür: normal sağlayıcı sembolü ve bir raw constructor.Ayrıntılı bir açıklama aşağıda verilmiştir. Sezgisel bir tartışma ve kullanım alanları için Kurallar (Sağlayıcıların özel olarak başlatılması) başlıklı makaleye bakın. 
 
 initgeri çağırması verilmediği durumlarda,Psembolüne yapılan bir çağrı, varsayılan oluşturucu işlevic'ya yapılan bir çağrı gibi davranır. Diğer bir deyişle,P(*args, **kwargs),c(*args, **kwargs)değerini döndürür. Örneğin,MyInfo = provider() m = MyInfo(foo = 1) möğesininm.foo == 1ileMyInfoörneği olmasını doğrudan sağlar.Ancak  
 Not: Yukarıdaki adımlar,  Bu şekilde,  
 MyInfo, _new_myinfo = provider(init = ...) | 
repository_rule
callable repository_rule(implementation, *, attrs=None, local=False, environ=[], configure=False, remotable=False, doc=None)
Parametreler
| Parametre | Açıklama | 
|---|---|
| implementation | gerekli Bu kuralı uygulayan işlev. Tek bir parametre ( repository_ctx) içermelidir. İşlev, kuralın her örneği için yükleme aşamasında çağrılır. | 
| attrs | dict; veya None;
                                     varsayılan değerNonekuralın tüm özelliklerini bildirmek için kullanılan sözlük. Özellik adından özellik nesnesine eşleme yapar (attr modülüne bakın). _ile başlayan özellikler özeldir ve bir dosyaya etikete yönelik örtülü bir bağımlılık eklemek için kullanılabilir (bir depo kuralı, oluşturulan bir yapıya bağlı olamaz).nameözelliği örtülü olarak eklenir ve belirtilmemelidir. | 
| local | Varsayılan değer False'dir. Bu kuralın yerel sistemden her şeyi getirdiğini ve her getirme işleminde yeniden değerlendirilmesi gerektiğini belirtin. | 
| environ | Dizelerin sırası;
                                     varsayılan değer []Desteği sonlandırıldı. Bu parametrenin desteği sonlandırıldı. Bunun yerine repository_ctx.getenv'ya geçin.Bu depo kuralının bağlı olduğu ortam değişkenlerinin listesini sağlar. Bu listedeki bir ortam değişkeni değişirse depo yeniden getirilir. | 
| configure | varsayılan değer False'dir. Deponun, yapılandırma amacıyla sistemi incelediğini belirtir. | 
| remotable | Varsayılan değer FalseDeneysel'dir. Bu parametre deneyseldir ve herhangi bir zamanda değişebilir. Lütfen bu bilgileri kullanmayın. ---experimental_repo_remote_execUzaktan yürütmeyle uyumlu seçeneğini ayarlayarak deneysel olarak etkinleştirilebilir. | 
| doc | string veya None;
                                     varsayılan değerNoneBelge oluşturma araçları tarafından çıkarılabilen, depo kuralının açıklaması. | 
kural
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=[], exec_compatible_with=[], analysis_test=False, build_setting=None, cfg=None, exec_groups=None, initializer=None, parent=None, extendable=None, subrules=[])Kurallar, .bzl dosyasındaki global değişkenlere atanmalıdır. Global değişkenin adı, kuralın adıdır.
Test kurallarının adı _test ile bitmelidir. Diğer tüm kurallar bu soneki içermemelidir. (Bu kısıtlama yalnızca kurallar için geçerli olup hedefleri için geçerli değildir.)
          
      
Parametreler
| Parametre | Açıklama | 
|---|---|
| implementation | required Bu kuralı uygulayan Starlark işlevi tam olarak bir parametreye sahip olmalıdır: ctx. İşlev, kuralın her örneği için analiz aşamasında çağrılır. Kullanıcı tarafından sağlanan özelliklere erişebilir. Bildirilen tüm çıkışları oluşturmak için işlemler oluşturmalıdır. | 
| test | bool;
                                     varsayılan değer unboundBu kuralın test kuralı olup olmadığı, yani blaze testkomutuna tabi olup olamayacağı. Tüm test kuralları otomatik olarak yürütülebilir kabul edilir. Bir test kuralı içinexecutable = Truedeğerini açıkça ayarlamak gereksizdir (ve önerilmez). Değer varsayılan olarakFalseolur. Daha fazla bilgi için  Kurallar sayfası'na bakın. | 
| attrs | dict;
                                     varsayılan değer {}kuralın tüm özelliklerini bildirmek için kullanılan sözlük. Özellik adından özellik nesnesine eşleme yapar (attr modülüne bakın). _ile başlayan özellikler özeldir ve bir etikete örtülü bağımlılık eklemek için kullanılabilir.nameözelliği örtülü olarak eklenir ve belirtilmemelidir.visibility,deprecation,tags,testonlyvefeaturesözellikleri örtülü olarak eklenir ve geçersiz kılınamaz. Çoğu kural için yalnızca birkaç özellik gerekir. Bellek kullanımını sınırlamak için kural işlevi, attrs boyutuna bir sınır uygular. | 
| outputs | dict; veya None; veya function;
                                     varsayılan değerNoneKullanımdan kaldırılmıştır. Bu parametre artık kullanılmıyor ve yakında tamamen kaldırılacak. Lütfen bu bilgileri kullanmayın. ---incompatible_no_rule_outputs_paramile devre dışı bırakılır. Kodunuzun bu özelliğin yakında kaldırılmasıyla uyumlu olduğunu doğrulamak için bu işareti kullanın.Bu parametre kullanımdan kaldırılmıştır. Kuralları OutputGroupInfoveyaattr.outputkullanacak şekilde taşıyın.Önceden bildirilmiş çıkışları tanımlamak için kullanılan şema.  Bu bağımsız değişkenin değeri bir sözlük veya sözlük oluşturan bir geri çağırma işlevidir. Geri çağırma, hesaplanmış bağımlılık özelliklerine benzer şekilde çalışır: İşlevin parametre adları, kuralın özellikleriyle eşleştirilir. Örneğin,  Sözlükteki her giriş, anahtarın tanımlayıcı, değerin ise çıkışın etiketini belirleyen bir dize şablonu olduğu önceden bildirilmiş bir çıkış oluşturur. Kuralın uygulama işlevinde tanımlayıcı,  
 Uygulamada, en yaygın kullanılan yer tutucu  | 
| executable | bool;
                                     varsayılan değer unboundBu kuralın yürütülebilir olup olmadığı, yani blaze runkomutunun konusu olup olamayacağı. Varsayılan olarakFalsedeğerine ayarlanır. Daha fazla bilgi için  Kurallar sayfası'na bakın. | 
| output_to_genfiles | Varsayılan değer False'dir. Doğruysa dosyalar bin dizini yerine genfiles dizininde oluşturulur. Mevcut kurallarla uyumluluk için (ör. C++ için başlık dosyaları oluştururken) gerekli olmadığı sürece bu işareti ayarlamayın. | 
| fragments | string'lerin sequence'ı;
                                     varsayılan değer []Kuralın hedef yapılandırmada gerektirdiği yapılandırma parçalarının adlarının listesi. | 
| host_fragments | string'lerin sequence'ı;
                                     varsayılan değer []Kuralın ana makine yapılandırmasında gerektirdiği yapılandırma parçalarının adlarının listesi. | 
| _skylark_testable | Varsayılan değer False'dır. (Deneysel) Doğruysa bu kural, Actionssağlayıcısı aracılığıyla kendisine bağlı olan kurallar tarafından incelenmek üzere işlemlerini kullanıma sunar. Sağlayıcı, ctx.created_actions() çağrılarak kuralın kendisi için de kullanılabilir.Bu, yalnızca Starlark kurallarının analiz zamanı davranışını test etmek için kullanılmalıdır. Bu işaret gelecekte kaldırılabilir. | 
| toolchains | sequence;
                                     varsayılan değer []Ayarlandığında, bu kuralın gerektirdiği araç zincirleri kümesi. Liste, herhangi bir kombinasyonda String, Label veya StarlarkToolchainTypeApi nesnelerini içerebilir. Araç zincirleri, mevcut platform kontrol edilerek bulunur ve ctx.toolchainaracılığıyla kural uygulamasına sağlanır. | 
| incompatible_use_toolchain_transition | varsayılan değer FalseKullanımdan kaldırıldı. Artık kullanılmıyor ve kaldırılması gerekiyor. | 
| doc | string; veya None;
                                     varsayılan değerNoneKuralın, doküman oluşturma araçları tarafından çıkarılabilecek açıklaması. | 
| provides | Varsayılan değer []'dir. Uygulama işlevinin döndürmesi gereken sağlayıcıların listesi. Uygulama işlevi, burada listelenen sağlayıcı türlerinden herhangi birini dönüş değerinden çıkarırsa hata oluşur. Ancak uygulama işlevi, burada listelenmeyen ek sağlayıcılar döndürebilir. Listenin her öğesi,  | 
| exec_compatible_with | string'lerin sequence'ı;
                                     varsayılan değer []Bu kural türünün tüm hedefleri için geçerli olan, yürütme platformundaki kısıtlamaların listesi. | 
| analysis_test | Varsayılan değer False'dir. Doğruysa bu kural bir analiz testi olarak değerlendirilir. Not: Analiz testi kuralları öncelikli olarak temel Starlark kitaplıklarında sağlanan altyapı kullanılarak tanımlanır. Yardım için Test bölümüne bakın. Bir kural analiz testi kuralı olarak tanımlanırsa özelliklerinde analysis_test_transition kullanılarak tanımlanan yapılandırma geçişlerinin kullanılmasına izin verilir ancak bazı kısıtlamalar uygulanır: 
 | 
| build_setting | BuildSetting veya None;
                                     varsayılan değerNoneAyarlanırsa bu kuralın ne tür bir build settingolduğunu açıklar.configmodülüne bakın. Bu ayar belirlenirse bu kurala, "build_setting_default" adlı zorunlu bir özellik otomatik olarak eklenir. Bu özelliğin türü, burada iletilen değere karşılık gelir. | 
| cfg | varsayılan değer NoneAyarlanırsa kuralın analizden önce kendi yapılandırmasına uygulayacağı yapılandırma geçişini gösterir. | 
| exec_groups | dict; veya None;
                                     varsayılan değerNoneYürütme grubu adının (dize) exec_groups sözlüğü. Ayarlanırsa kuralların tek bir hedef içinde birden fazla yürütme platformunda işlem yapmasına olanak tanır. Daha fazla bilgi için yürütme grupları dokümanlarını inceleyin. | 
| initializer | varsayılan değer NoneDeneysel: Kuralın özelliklerini başlatan Stalark işlevi. İşlev, kuralın her örneği için yükleme zamanında çağrılır.  Özellik adlarından istenen değerlere bir sözlük döndürmesi gerekir. Döndürülmeyen özellikler etkilenmez. Değer olarak  Başlatıcılar, bir özellik tanımında belirtilen varsayılan değerlerden önce değerlendirilir. Dolayısıyla, başlatıcının imzasındaki bir parametre varsayılan değerler içeriyorsa ( Benzer şekilde, başlatıcının imzasındaki bir parametrenin varsayılan değeri yoksa parametre zorunlu hale gelir. Bu gibi durumlarda, bir özellik tanımındaki varsayılan/zorunlu ayarları atlamak iyi bir uygulamadır. İşlenmeyen özellikler için  Genişletilmiş kurallar söz konusu olduğunda, tüm başlatıcılar alt öğeden üst öğelere doğru çağrılır. Her başlatıcıya yalnızca bildiği herkese açık özellikler iletilir. | 
| parent | varsayılan değer NoneExperimental: the Stalark rule that is extended. Ayarlandığında, herkese açık özellikler ve reklamı yapılan sağlayıcılar birleştirilir. Kural, üst öğedeki executablevetestile eşleşiyor.fragments,toolchains,exec_compatible_withveexec_groupsdeğerleri birleştirilir. Eski veya kullanımdan kaldırılmış parametreler ayarlanmamış olabilir. Üst öğenin gelen yapılandırma geçişicfg, bu kuralın gelen yapılandırmasından sonra uygulanır. | 
| extendable | bool; veya Label; veya string; veya None;
                                     varsayılan değerNoneDeneysel: Bu kuralı hangi kuralların genişletebileceğini tanımlayan bir izin verilenler listesi etiketi. Her zaman uzatmaya izin vermek/vermemek için True/False olarak da ayarlanabilir. Bazel, varsayılan olarak uzantılara her zaman izin verir. | 
| subrules | Alt Kural'ların sırası;
                                     varsayılan değer []Deneysel: Bu kural tarafından kullanılan alt kuralların listesi. | 
seç
unknown select(x, no_match_error='')
select(), bir kural özelliğini yapılandırılabilir hale getiren yardımcı işlevdir. Ayrıntılar için yapı ansiklopedisine bakın.
          
      Parametreler
| Parametre | Açıklama | 
|---|---|
| x | required Yapılandırma koşullarını değerlerle eşleyen bir sözlük. Her anahtar, bir config_setting veya constraint_value örneğini tanımlayan bir etiket ya da etiket dizesidir. Dize yerine ne zaman etiket kullanmanız gerektiğini öğrenmek için makrolarla ilgili dokümanlara bakın. | 
| no_match_error | Varsayılan değer '''dir. Hiçbir koşul eşleşmezse bildirilecek isteğe bağlı özel hata. | 
alt kural
Subrule subrule(implementation, attrs={}, toolchains=[], fragments=[], subrules=[])
Parametreler
| Parametre | Açıklama | 
|---|---|
| implementation | function;
                                     required Bu alt kuralı uygulayan Starlark işlevi | 
| attrs | dict;
                                     varsayılan değer {}Alt kuralın tüm (özel) özelliklerini bildirmek için kullanılan sözlük. Alt kurallar yalnızca etiket türünde (ör. etiket veya etiket listesi) özel özelliklere sahip olabilir. Bu etiketlere karşılık gelen çözümlenmiş değerler, Bazel tarafından alt kuralın uygulama işlevine adlandırılmış bağımsız değişkenler olarak otomatik olarak iletilir (bu nedenle, uygulama işlevinin, özellik adlarıyla eşleşen adlandırılmış parametreleri kabul etmesi gerekir). Bu değerlerin türleri şunlar olacaktır: 
 | 
| toolchains | sequence;
                                     varsayılan değer []Ayarlandığında, bu alt kuralın gerektirdiği araç zincirleri kümesi. Liste, herhangi bir kombinasyonda String, Label veya StarlarkToolchainTypeApi nesnelerini içerebilir. Araç zincirleri, mevcut platform kontrol edilerek bulunur ve ctx.toolchainsaracılığıyla alt kural uygulamasına sağlanır. | 
| fragments | string'lerin sırası;
                                     varsayılan değer []Alt kuralın hedef yapılandırmada gerektirdiği yapılandırma parçalarının adlarının listesi. | 
| subrules | Alt Kural'ların sırası;
                                     varsayılan değer []Bu alt kuralın ihtiyaç duyduğu diğer alt kuralların listesi. | 
tag_class
tag_class tag_class(attrs={}, *, doc=None)
Parametreler
| Parametre | Açıklama | 
|---|---|
| attrs | varsayılan değer {}Bu etiket sınıfının tüm özelliklerini bildirmek için kullanılan sözlük. Özellik adından özellik nesnesine eşleme yapar (attr modülüne bakın). | 
| doc | string; veya None;
                                     varsayılan değerNoneBelge oluşturma araçları tarafından ayıklanabilen etiket sınıfının açıklaması. | 
görünürlük
None visibility(value)Şu anda başlatılmakta olan .bzl modülünün yükleme görünürlüğünü ayarlar.
Bir modülün yükleme görünürlüğü, diğer BUILD ve .bzl dosyalarının bu modülü yükleyip yükleyemeyeceğini belirler. (Bu, dosyanın diğer hedeflerin bağımlılığı olarak görünüp görünmeyeceğini belirleyen temel .bzl kaynak dosyasının hedef görünürlüğünden farklıdır.) Yükleme görünürlüğü, paket düzeyinde çalışır: Bir modülü yüklemek için yükleme işlemini yapan dosyanın, modülün görünürlüğünün verildiği bir pakette bulunması gerekir. Bir modül, görünürlüğünden bağımsız olarak her zaman kendi paketi içinde yüklenebilir.
visibility(), .bzl dosyası başına yalnızca bir kez ve yalnızca üst düzeyde (bir işlevin içinde değil) çağrılabilir. Tercih edilen stil, bu çağrıyı load() ifadelerinin ve bağımsız değişkeni belirlemek için gereken kısa mantığın hemen altına yerleştirmektir.
--check_bzl_visibility işareti yanlış (false) olarak ayarlanırsa yükleme görünürlüğü ihlalleri uyarı verir ancak derleme başarısız olmaz.
          
      
Parametreler
| Parametre | Açıklama | 
|---|---|
| value | gerekli Paket belirtimi dizelerinin listesi veya tek bir paket belirtimi dizesi. Paket özellikleri,  
 "@" söz dizimine izin verilmez. Tüm spesifikasyonlar, mevcut modülün deposuna göre yorumlanır. 
 
 |