Daftar Istilah Bazel

Laporkan masalah Lihat sumber {/18/}{/1/}

Action

Perintah yang akan dijalankan selama build, misalnya, panggilan ke compiler yang menggunakan artefak sebagai input dan menghasilkan artefak lain sebagai output. Meliputi metadata seperti argumen command line, tombol tindakan, variabel lingkungan, dan artefak input/output yang dideklarasikan.

Lihat juga: Dokumentasi aturan

Cache tindakan

Cache pada disk yang menyimpan pemetaan tindakan yang dieksekusi ke output yang dibuatnya. Kunci cache disebut kunci tindakan. Komponen inti untuk model inkrementalitas Bazel. Cache disimpan dalam direktori dasar output sehingga tetap bertahan saat server Bazel dimulai ulang.

Grafik tindakan

Grafik dalam memori yang berisi tindakan dan artefak yang dibaca dan dihasilkan oleh tindakan tersebut. Grafik ini mungkin menyertakan artefak yang ada sebagai file sumber (misalnya, dalam sistem file) serta artefak menengah/final yang dihasilkan yang tidak disebutkan dalam file BUILD. Diproduksi selama fase analisis dan digunakan selama fase eksekusi.

Kueri grafik tindakan (aquery)

Alat kueri yang dapat mengkueri atas tindakan build. Hal ini memberikan kemampuan untuk menganalisis bagaimana aturan build diterjemahkan ke dalam pekerjaan yang sebenarnya dilakukan.

Tombol tindakan

Kunci cache tindakan. Dihitung berdasarkan metadata tindakan, yang dapat mencakup perintah yang akan dieksekusi dalam tindakan, flag compiler, lokasi library, atau header sistem, bergantung pada tindakannya. Memungkinkan Bazel meng-cache atau membatalkan masing-masing tindakan dengan pasti.

Fase analisis

Fase kedua pembangunan. Memproses grafik target yang ditentukan dalam file BUILD untuk menghasilkan grafik tindakan dalam memori yang menentukan urutan tindakan yang akan dijalankan selama fase eksekusi. Ini adalah fase saat implementasi aturan dievaluasi.

Artefak

File sumber atau file yang dihasilkan. Dapat juga berupa direktori file, yang dikenal sebagai artefak pohon.

Artefak dapat menjadi input untuk beberapa tindakan, tetapi hanya boleh dihasilkan oleh maksimal satu tindakan.

Artefak yang sesuai dengan target file dapat ditangani dengan label.

Aspek

Mekanisme bagi aturan untuk membuat tindakan tambahan dalam dependensinya. Misalnya, jika target A bergantung pada B, target dapat menerapkan aspek pada A yang melintasi atas edge dependensi ke B, dan menjalankan tindakan tambahan di B untuk membuat dan mengumpulkan file output tambahan. Tindakan tambahan ini di-cache dan digunakan kembali di antara target yang memerlukan aspek yang sama. Dibuat dengan fungsi Starlark Build API aspect(). Dapat digunakan, misalnya, guna membuat metadata untuk IDE dan membuat tindakan untuk analisis lint.

Lihat juga: Dokumentasi aspek

Aspek di aspek

Mekanisme komposisi saat aspek dapat diterapkan pada hasil aspek lainnya. Misalnya, aspek yang menghasilkan informasi untuk digunakan oleh IDE dapat diterapkan di atas aspek yang menghasilkan file .java dari proto.

Agar aspek A dapat diterapkan di atas aspek B, penyedia yang diiklankan B di atribut provides-nya harus sesuai dengan yang dideklarasikan A dalam atribut required_aspect_providers-nya.

Atribut

Parameter ke aturan, yang digunakan untuk menyatakan informasi build per target. Contohnya mencakup srcs, deps, dan copts, yang masing-masing mendeklarasikan file sumber, dependensi, dan opsi compiler kustom target. Atribut tertentu yang tersedia untuk target tertentu bergantung pada jenis aturannya.

{i>.bazelrc<i}

File konfigurasi Bazel digunakan untuk mengubah nilai default untuk flag startup dan command flag, serta untuk menentukan grup opsi umum yang nantinya dapat ditetapkan bersama pada command line Bazel menggunakan flag --config. Bazel dapat menggabungkan setelan dari beberapa file bazelrc (seluruh sistem, per-workspace, per pengguna, atau dari lokasi kustom), dan file bazelrc juga dapat mengimpor setelan dari file bazelrc lainnya.

Blaze

Versi internal Google Bazel. Sistem build utama Google untuk repositori mono-nya.

BUILD File

File BUILD adalah file konfigurasi utama yang memberi tahu Bazel output software yang akan di-build, dependensinya, dan cara mem-build-nya. Bazel mengambil file BUILD sebagai input dan menggunakan file tersebut untuk membuat grafik dependensi serta memperoleh tindakan yang harus diselesaikan untuk membangun output software menengah dan akhir. File BUILD menandai direktori dan subdirektori apa pun yang tidak berisi file BUILD sebagai paket, serta dapat berisi target yang dibuat oleh aturan. File tersebut juga dapat diberi nama BUILD.bazel.

File BUILD.bazel

Lihat File BUILD. Lebih diutamakan daripada file BUILD dalam direktori yang sama.

File .bzl

File yang menentukan aturan, makro, dan konstanta yang ditulis dalam Starlark. File ini kemudian dapat diimpor ke dalam file BUILD menggunakan fungsi load().

Buat grafik

Grafik dependensi yang dibuat dan dilalui Bazel untuk melakukan build. Mencakup node seperti target, target yang dikonfigurasi, tindakan, dan artefak. Build dianggap selesai jika semua artefak yang bergantung pada kumpulan target yang diminta diverifikasi sebagai terbaru.

Setelan build

Bagian dari konfigurasi yang ditentukan Starlark. Transitions dapat menetapkan setelan build untuk mengubah konfigurasi subgrafik. Jika diekspos kepada pengguna sebagai flag command line, juga dikenal sebagai flag build.

Clean build

Build yang tidak menggunakan hasil build sebelumnya. Proses ini umumnya lebih lambat daripada build inkremental tetapi biasanya dianggap lebih benar. Bazel menjamin build bersih dan inkremental selalu benar.

Model klien-server

Klien command line bazel akan otomatis memulai server latar belakang pada mesin lokal untuk menjalankan perintah Bazel. Server tetap bertahan saat perintah tersebut dijalankan, tetapi akan otomatis berhenti setelah tidak aktif selama beberapa waktu (atau secara eksplisit melalui penonaktifan bazel). Memisahkan Bazel menjadi server dan klien membantu mengamortisasi waktu startup JVM dan mendukung build inkremental yang lebih cepat karena grafik tindakan tetap berada dalam memori di berbagai perintah.

Perintah

Digunakan pada command line untuk memanggil fungsi Bazel yang berbeda, seperti bazel build, bazel test, bazel run, dan bazel query.

Flag perintah

Sekumpulan tanda khusus untuk perintah. Flag perintah ditentukan setelah perintah (bazel build <command flags>). Flag dapat berlaku untuk satu atau beberapa perintah. Misalnya, --configure adalah flag khusus untuk perintah bazel sync, tetapi --keep_going berlaku untuk sync, build, test, dan lainnya. Tanda sering digunakan untuk tujuan konfigurasi, sehingga perubahan nilai tanda dapat menyebabkan Bazel membatalkan grafik dalam memori dan memulai ulang fase analisis.

Configuration

Informasi di luar definisi aturan yang memengaruhi cara aturan menghasilkan tindakan. Setiap build memiliki setidaknya satu konfigurasi yang menentukan platform target, variabel lingkungan tindakan, dan tanda build command line. Transisi dapat membuat konfigurasi tambahan, seperti untuk alat host atau kompilasi silang.

Lihat juga: Konfigurasi

Pemangkasan konfigurasi

Proses yang hanya menyertakan bagian konfigurasi yang benar-benar diperlukan target. Misalnya, jika Anda mem-build //:j biner Java dengan //:c dependensi C++, tidak sia-sia untuk menyertakan nilai --javacopt dalam konfigurasi //:c karena mengubah --javacopt secara tidak perlu merusak kemampuan cache build C++.

Kueri yang dikonfigurasi (cquery)

Alat kueri yang membuat kueri melalui target yang dikonfigurasi (setelah fase analisis selesai). Artinya, select() dan tanda build (seperti --platforms) ditampilkan secara akurat dalam hasil.

Lihat juga: dokumentasi kueri

Target yang dikonfigurasi

Hasil evaluasi target dengan konfigurasi. Fase analisis menghasilkan hal ini dengan menggabungkan opsi build dengan target yang perlu di-build. Misalnya, jika //:foo dibuat untuk dua arsitektur yang berbeda dalam build yang sama, maka akan memiliki dua target yang dikonfigurasi: <//:foo, x86> dan <//:foo, arm>.

Ketepatan

Build akan benar jika output-nya mencerminkan status input transitifnya dengan tepat. Untuk mencapai build yang benar, Bazel berusaha agar hermetik, dapat direproduksi, serta membuat analisis build dan eksekusi tindakan deterministik.

Dependensi

Tepi terarah antara dua target. //:foo target memiliki dependensi target pada //:bar target jika nilai atribut //:foo berisi referensi ke //:bar. //:foo memiliki dependensi tindakan pada //:bar jika suatu tindakan dalam //:foo bergantung pada artefak input yang dibuat oleh tindakan dalam //:bar.

Depset

Struktur data untuk mengumpulkan data tentang dependensi transitif. Dioptimalkan sehingga penggabungan depset menghemat waktu dan ruang, karena biasanya ada depset yang sangat besar (ratusan ribu file). Diterapkan untuk merujuk ke depset lain secara rekursif untuk alasan efisiensi ruang. Implementasi aturan tidak boleh "meratakan" depset dengan mengonversinya menjadi daftar kecuali aturan tersebut berada di level teratas grafik build. Meratakan depset besar akan menimbulkan konsumsi memori yang besar. Juga dikenal sebagai kumpulan bertingkat dalam implementasi internal Bazel.

Lihat juga: Dokumentasi Depset

Cache disk

Toko blob on-disk lokal untuk fitur penyimpanan cache jarak jauh. Dapat digunakan bersama dengan toko blob jarak jauh yang sebenarnya.

Distdir

Direktori hanya baca yang berisi file yang akan diambil Bazel dari internet menggunakan aturan repositori. Memungkinkan build berjalan sepenuhnya secara offline.

Eksekusi dinamis

Strategi eksekusi yang memilih antara eksekusi lokal dan jarak jauh berdasarkan berbagai heuristik, dan menggunakan hasil eksekusi dari metode yang berhasil dan lebih cepat. Tindakan tertentu dijalankan lebih cepat secara lokal (misalnya, penautan) dan tindakan lainnya lebih cepat dari jarak jauh (misalnya, kompilasi yang sangat dapat diparalelkan). Strategi eksekusi dinamis dapat memberikan waktu build inkremental dan bersih sebaik mungkin.

Fase eksekusi

Fase ketiga pembangunan. Menjalankan tindakan dalam grafik tindakan yang dibuat selama fase analisis. Tindakan ini memanggil file yang dapat dieksekusi (compiler, skrip) untuk membaca dan menulis artefak. Strategi memunculkan mengontrol cara tindakan ini dieksekusi: secara lokal, jarak jauh, dinamis, di-sandbox, Docker, dan sebagainya.

Root eksekusi

Direktori di direktori base output workspace tempat tindakan lokal dieksekusi dalam build yang tidak di-sandbox. Konten direktori sebagian besar berupa symlink artefak input dari ruang kerja. Root eksekusi juga berisi symlink ke repositori eksternal sebagai input lain, dan direktori bazel-out untuk menyimpan output. Disiapkan selama fase pemuatan dengan membuat forest symlink direktori yang mewakili penutupan transitif paket yang menjadi dependensi build. Dapat diakses dengan bazel info execution_root pada command line.

File

Lihat Artefak.

Hermetikitas

Build bersifat hermetik jika tidak ada pengaruh eksternal pada operasi build dan pengujiannya, sehingga membantu memastikan bahwa hasilnya bersifat determenistik dan benar. Misalnya, build hermetic biasanya melarang akses jaringan ke tindakan, membatasi akses ke input yang dideklarasikan, menggunakan stempel waktu dan zona waktu tetap, membatasi akses ke variabel lingkungan, dan menggunakan seed tetap untuk generator angka acak

Build inkremental

Build inkremental menggunakan kembali hasil build sebelumnya untuk mengurangi waktu build dan penggunaan resource. Pemeriksaan dependensi dan penyimpanan cache bertujuan untuk memberikan hasil yang benar untuk jenis build ini. Build inkremental adalah kebalikan dari build bersih.

Label

ID untuk target. Label yang sepenuhnya memenuhi syarat seperti //path/to/package:target terdiri dari // untuk menandai direktori utama ruang kerja, path/to/package sebagai direktori yang berisi file BUILD yang mendeklarasikan target, dan :target sebagai nama target yang dideklarasikan dalam file BUILD yang disebutkan di atas. Dapat juga diawali dengan @my_repository//<..> untuk menunjukkan bahwa target dideklarasikan di repositori eksternal bernama my_repository.

Fase pemuatan

Fase pertama build tempat Bazel mengurai file WORKSPACE, BUILD, dan .bzl untuk membuat paket. Makro dan fungsi tertentu seperti glob() dievaluasi dalam fase ini. Disisipkan dengan fase kedua build, fase analisis, untuk membuat grafik target.

Macro

Mekanisme untuk menyusun beberapa deklarasi target aturan secara bersamaan dalam satu fungsi Starlark. Memungkinkan penggunaan kembali pola deklarasi aturan umum di seluruh file BUILD. Diluaskan ke deklarasi target aturan pokok selama fase pemuatan.

Lihat juga: Dokumentasi makro

Mnemonik

String pendek yang dapat dibaca manusia yang dipilih oleh penulis aturan untuk memahami dengan cepat performa tindakan dalam aturan. Mnemonik dapat digunakan sebagai ID untuk pemilihan strategi memunculkan. Beberapa contoh mnemonik tindakan adalah Javac dari aturan Java, CppCompile dari aturan C++, dan AndroidManifestMerger dari aturan Android.

Aturan native

Aturan yang disertakan dalam Bazel dan diterapkan di Java. Aturan tersebut muncul dalam file .bzl sebagai fungsi dalam modul native (misalnya, native.cc_library atau native.java_library). Aturan yang ditentukan pengguna (non-native) dibuat menggunakan Starlark.

Basis output

Direktori khusus workspace untuk menyimpan file output Bazel. Digunakan untuk memisahkan output dari hierarki sumber workspace. Terletak di root pengguna output.

Grup output

Sekelompok file yang diharapkan akan dibangun saat Bazel selesai membangun target. Aturan menempatkan output biasanya di "grup output default" (misalnya file .jar dari java_library, .a, dan .so untuk target cc_library). Grup output default adalah grup output yang artefak-nya dibuat saat target diminta pada command line. Aturan dapat menentukan lebih banyak grup output bernama yang dapat ditentukan secara eksplisit dalam file BUILD (aturan filegroup) atau command line (flag --output_groups).

Root pengguna output

Direktori khusus pengguna untuk menyimpan {i>output<i} Bazel. Nama direktori diperoleh dari nama pengguna sistem milik pengguna. Mencegah konflik file output jika beberapa pengguna mem-build project yang sama di sistem secara bersamaan. Berisi subdirektori yang sesuai dengan output build setiap ruang kerja, juga dikenal sebagai basis output.

Package (Paket)

Kumpulan target yang ditentukan oleh file BUILD. Nama paket adalah jalur file BUILD yang terkait dengan root ruang kerja. Paket dapat berisi sub-paket, atau subdirektori yang berisi file BUILD, sehingga membentuk hierarki paket.

Grup paket

Target yang mewakili sekumpulan paket. Sering digunakan dalam nilai atribut visibility.

Platform

"Jenis mesin" yang terlibat dalam build. Ini mencakup mesin yang dijalankan Bazel di platform "host"), alat build mesin yang digunakan untuk mengeksekusi alat (platform "exec"), dan target mesin dibuat ("platform target").

Penyedia

Skema yang menjelaskan unit informasi untuk diteruskan di antara target aturan di sepanjang hubungan dependensi. Biasanya, file ini berisi informasi seperti opsi compiler, file sumber atau output transitif, dan metadata build. Sering digunakan bersama dengan depset untuk menyimpan data transitif akumulasi secara efisien. Contoh penyedia bawaan adalah DefaultInfo.

Lihat juga: Dokumentasi penyedia

Kueri (konsep)

Proses menganalisis grafik build untuk memahami properti target dan struktur dependensi. Bazel mendukung tiga varian kueri: query, cquery, dan aquery.

query (perintah)

Alat kueri yang beroperasi melalui grafik target pasca-fase pemuatan build. Proses ini relatif cepat, tetapi tidak dapat menganalisis efek select(), tanda build, artefak, atau tindakan build.

Lihat juga: Petunjuk kueri, Referensi kueri

Cache repositori

Cache file bersama yang dapat diberi alamat konten yang didownload oleh Bazel untuk build, yang dapat dibagikan di seluruh ruang kerja. Mengaktifkan build offline setelah download awal. Umumnya digunakan untuk meng-cache file yang didownload melalui aturan repositori seperti http_archive dan API aturan repositori seperti repository_ctx.download. File hanya disimpan dalam cache jika checksum SHA-256 ditentukan untuk download.

Kemampuan reproduksi

Properti build atau pengujian yang satu set input untuk build atau pengujian akan selalu menghasilkan kumpulan output yang sama setiap saat, terlepas dari waktu, metode, atau lingkungan. Perhatikan bahwa ini tidak selalu berarti bahwa output benar atau output yang diinginkan.

Aturan

Skema untuk menentukan target aturan dalam file BUILD, seperti cc_library. Dari perspektif penulis file BUILD, aturan terdiri dari serangkaian atribut dan logika kotak hitam. Logika ini memberi tahu target aturan cara menghasilkan artefak output dan meneruskan informasi ke target aturan lainnya. Dari perspektif penulis .bzl, aturan adalah cara utama untuk memperluas Bazel guna mendukung bahasa dan lingkungan pemrograman baru.

Aturan dibuat instance-nya untuk menghasilkan target aturan pada fase pemuatan. Dalam target aturan fase analisis, tujuan menyampaikan informasi ke dependensi downstreamnya dalam bentuk penyedia, dan mendaftarkan tindakan yang menjelaskan cara membuat artefak output-nya. Tindakan ini dijalankan di fase eksekusi.

Lihat juga: Dokumentasi aturan

Target aturan

Target yang merupakan instance aturan. Berbeda dengan target file dan grup paket. Harap bedakan dengan rule.

{i>Runfile<i}

Dependensi runtime dari target yang dapat dieksekusi. Biasanya, yang dapat dieksekusi adalah output yang dapat dieksekusi dari aturan pengujian, dan runfile adalah dependensi data runtime pengujian. Sebelum pemanggilan file yang dapat dieksekusi (selama pengujian bazel), Bazel menyiapkan hierarki runfile bersama pengujian yang dapat dieksekusi sesuai dengan struktur direktori sumbernya.

Lihat juga: Dokumentasi Runfiles

Sandboxing

Teknik untuk mengisolasi tindakan yang berjalan di dalam root eksekusi yang dibatasi dan sementara, sehingga membantu memastikan bahwa perintah tersebut tidak membaca input yang tidak dideklarasikan atau menulis output yang tidak dideklarasikan. Sandboxing sangat meningkatkan hermetisitas, tetapi biasanya menimbulkan biaya performa, dan memerlukan dukungan dari sistem operasi. Biaya performa bergantung pada platform. Di Linux, hal ini tidak signifikan, tetapi di macOS, hal ini dapat membuat sandbox tidak dapat digunakan.

Rangka Langit

Skyframe adalah framework evaluasi paralel, fungsional, dan inkremental inti Bazel.

Pengecapan

Fitur untuk menyematkan informasi tambahan ke dalam artefak yang dibuat Bazel. Misalnya, hal ini dapat digunakan untuk kontrol sumber, waktu build, dan ruang kerja lainnya atau informasi terkait lingkungan untuk build rilis. Aktifkan melalui tanda dan aturan --workspace_status_command yang mendukung atribut stempel.

Starlark

Bahasa ekstensi untuk menulis aturan dan makro. Subset Python terbatas (sintaksis dan gramatikal) yang ditujukan untuk tujuan konfigurasi dan performa yang lebih baik. Menggunakan ekstensi file .bzl. File BUILD menggunakan versi Starlark yang lebih terbatas (seperti tidak ada definisi fungsi def), yang sebelumnya dikenal sebagai Skylark.

Lihat juga: Dokumentasi bahasa Starlark

Tanda startup

Kumpulan tanda yang ditentukan antara bazel dan perintah, misalnya, build bazel --host_jvm_debug. Tanda ini mengubah konfigurasi server Bazel, sehingga setiap perubahan pada flag startup akan menyebabkan server dimulai ulang. Flag startup tidak spesifik untuk perintah apa pun.

Target

Objek yang ditentukan dalam file BUILD dan diidentifikasi dengan label. Target merepresentasikan unit ruang kerja yang dapat dibangun dari perspektif pengguna akhir.

Target yang dideklarasikan dengan membuat instance aturan disebut target aturan. Bergantung pada aturannya, dependensi tersebut dapat dijalankan (seperti cc_binary) atau dapat diuji (seperti cc_test). Target aturan biasanya bergantung pada target lain melalui atributnya (seperti deps); dependensi ini membentuk dasar dari grafik target.

Selain target aturan, ada juga target file dan target grup paket. Target file sesuai dengan artefak yang direferensikan dalam file BUILD. Sebagai kasus khusus, file BUILD dari paket apa pun selalu dianggap sebagai target file sumber dalam paket tersebut.

Target ditemukan selama fase pemuatan. Selama fase analisis, target dikaitkan dengan konfigurasi build untuk membentuk target yang dikonfigurasi.

Grafik target

Grafik dalam memori yang berisi target dan dependensinya. Diproduksi selama fase pemuatan dan digunakan sebagai input untuk fase analisis.

Pola target

Cara untuk menentukan grup target pada command line. Pola yang umum digunakan adalah :all (semua target aturan), :* (semua aturan + target file), ... (paket saat ini, dan semua sub-paket secara rekursif). Dapat digunakan dalam kombinasi, misalnya, //...:* berarti semua target aturan dan file di semua paket secara rekursif dari root ruang kerja.

Pengujian

Aturan target dibuat dari aturan pengujian sehingga berisi pengujian yang dapat dieksekusi. Kode hasil nol dari penyelesaian file yang dapat dieksekusi menunjukkan keberhasilan pengujian. Kontrak pasti antara Bazel dan pengujian (seperti variabel lingkungan pengujian, metode pengumpulan hasil pengujian) ditentukan dalam Encyclopedia Pengujian.

Toolchain

Sekumpulan alat untuk membangun output untuk suatu bahasa. Biasanya, toolchain mencakup compiler, penaut, penafsir, atau/dan linter. Toolchain juga dapat bervariasi menurut platform, yaitu, komponen toolchain compiler Unix mungkin berbeda untuk varian Windows, meskipun toolchain untuk bahasa yang sama. Memilih rantai alat yang tepat untuk platform dikenal sebagai resolusi toolchain.

Target tingkat teratas

Target build adalah level teratas jika diminta pada command line Bazel. Misalnya, jika //:foo bergantung pada //:bar, dan bazel build //:foo dipanggil, maka untuk build ini, //:foo adalah level teratas, dan //:bar bukan level atas, meskipun kedua target harus di-build. Perbedaan penting antara target level atas dan non-level atas adalah tanda perintah yang ditetapkan pada command line Bazel (atau melalui .bazelrc) akan menetapkan konfigurasi untuk target level atas, tetapi dapat dimodifikasi dengan transisi untuk target non-level atas.

Transisi

Pemetaan status konfigurasi dari satu nilai ke nilai lainnya. Memungkinkan target dalam grafik build memiliki konfigurasi yang berbeda, meskipun instance tersebut dibuat dari aturan yang sama. Penggunaan transisi yang umum adalah dengan transisi terpisah, dengan bagian tertentu grafik target dipisahkan dengan konfigurasi berbeda untuk setiap fork. Misalnya, seseorang dapat membangun APK Android dengan biner native yang dikompilasi untuk ARM dan x86 menggunakan transisi terpisah dalam satu build.

Lihat juga: Transisi yang ditentukan pengguna

Artefak pohon

Artefak yang mewakili kumpulan file. Karena file ini bukan artefak itu sendiri, tindakan yang beroperasi pada file tersebut harus mendaftarkan artefak pohon sebagai input atau outputnya.

Visibilitas

Salah satu dari dua mekanisme untuk mencegah dependensi yang tidak diinginkan dalam sistem build: visibilitas target untuk mengontrol apakah target dapat diandalkan oleh target lain; dan visibilitas pemuatan untuk mengontrol apakah file BUILD atau .bzl dapat memuat file .bzl tertentu. Tanpa konteks, biasanya "visibilitas" mengacu pada visibilitas target.

Lihat juga: Dokumentasi visibilitas

Workspace

Direktori yang berisi file WORKSPACE dan kode sumber untuk software yang ingin Anda bangun. Label yang dimulai dengan // berhubungan dengan direktori ruang kerja.

File WORKSPACE

Menentukan direktori sebagai workspace. File ini boleh kosong, meskipun biasanya berisi deklarasi repositori eksternal untuk mengambil dependensi tambahan dari jaringan atau sistem file lokal.