Glosarium Bazel

Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda.
Laporkan masalah Lihat sumber

Tindakan

Perintah untuk dijalankan selama proses build, misalnya, panggilan ke compiler yang mengambil artefak sebagai input dan menghasilkan artefak lain sebagai output. Mencakup metadata seperti argumen command line, kunci tindakan, variabel lingkungan, dan artefak input/output yang dideklarasikan.

Lihat juga: Dokumentasi aturan

Cache tindakan

Cache di disk yang menyimpan pemetaan tindakan yang dijalankan ke output yang dihasilkannya. Kunci cache dikenal sebagai kunci tindakan. Komponen inti untuk model inkrementalitas Bazel. Cache disimpan dalam direktori dasar output dan bertahan setelah server dimulai ulang oleh Bazel.

Grafik tindakan

Grafik dalam memori dari tindakan dan artefak yang dibaca dan dibuat oleh tindakan ini. Grafik dapat mencakup artefak yang ada sebagai file sumber (misalnya dalam sistem file) serta artefak perantara/akhir yang dihasilkan yang tidak disebutkan dalam file BUILD. Diproduksi selama fase analisis dan digunakan selama fase eksekusi.

Kueri grafik tindakan (kueri)

Alat kueri yang dapat mengkueri melalui tindakan build. Hal ini memberikan kemampuan untuk menganalisis cara terjemahan aturan build menjadi build pekerjaan sebenarnya.

Tombol tindakan

Kunci cache dari tindakan. Dihitung berdasarkan metadata tindakan, yang dapat mencakup perintah yang akan dieksekusi dalam tindakan, tanda compiler, lokasi library, atau header sistem, bergantung pada tindakan. Memungkinkan Bazel meng-cache atau membatalkan tindakan individual secara deterministik.

Fase analisis

Fase kedua build. Memproses grafik target yang ditentukan dalam file BUILD untuk menghasilkan grafik tindakan dalam memori yang menentukan urutan tindakan yang akan dijalankan selama fase eksekusi. Pada tahap inilah implementasi aturan dievaluasi.

Artefak

File sumber atau file yang dihasilkan. Juga dapat berupa direktori file, yang dikenal sebagai artefak pohon.

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

Artefak yang sesuai dengan target file dapat ditangani oleh label.

Aspek

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

Lihat juga: Dokumentasi aspek

Aspek aspek

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

Untuk aspek A yang akan diterapkan di atas aspek B, penyedia yang diiklankan B dalam atribut provides-nya harus cocok dengan yang dideklarasikan A dalam atribut required_aspect_providers nya.

Atribut

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

.bazel

File konfigurasi Bazel digunakan untuk mengubah nilai default flag startup dan flag perintah, serta menentukan grup opsi umum yang kemudian dapat ditetapkan bersama pada command line Bazel menggunakan flag --config. Bazel dapat menggabungkan setelan dari beberapa file bazel (sistem, per ruang kerja, 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.

BUILD File

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

File BUILD.bazel

Lihat File BUILD. Diprioritaskan daripada file BUILD dalam direktori yang sama.

File .bzl

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

Buat grafik

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

Setelan build

Bagian konfigurasi yang ditentukan oleh Starlark. Transisi dapat menetapkan setelan build untuk mengubah konfigurasi subgrafik. Jika ditampilkan kepada pengguna sebagai flag command line, juga dikenal sebagai flag build.

Build bersih

Build yang tidak menggunakan hasil build sebelumnya. Ini umumnya lebih lambat daripada build inkremental, tetapi umumnya dianggap lebih benar. Bazel menjamin bahwa build yang bersih dan inkremental selalu benar.

Model server klien

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

Perintah

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

Tanda perintah

Kumpulan tanda khusus untuk perintah. Tanda perintah ditentukan setelah perintah (bazel build <command flags>). Tanda 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. Flag sering digunakan untuk tujuan konfigurasi, sehingga perubahan pada nilai flag dapat menyebabkan Bazel membatalkan grafik dalam memori dan memulai ulang fase analisis.

Konfigurasi

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 flag 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 biner Java //:j dengan dependensi C++ //:c, tidak akan ada gunanya untuk menyertakan nilai --javacopt dalam konfigurasi //:c karena mengubah --javacopt tidak perlu akan merusak cache C++ yang tidak diperlukan.

Kueri yang dikonfigurasi (cquery)

Alat kueri yang membuat kueri pada target yang dikonfigurasi (setelah fase analisis selesai). Ini berarti select() dan flag build (seperti --platforms) tercermin secara akurat dalam hasil.

Lihat juga: dokumentasi kueri

Target yang dikonfigurasi

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

Ketepatan

Build akan benar jika outputnya dengan tepat mencerminkan status input transitifnya. Untuk mencapai build yang benar, Bazel berusaha menjadi hermetic, dapat direproduksi, dan membuat analisis build serta eksekusi tindakan deterministik.

Dependensi

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

Depset

Struktur data untuk mengumpulkan data tentang dependensi transitif. Dioptimalkan agar menggabungkan depset menghemat waktu dan ruang, karena biasanya memiliki depset yang sangat besar (ratusan ribu file). Diimplementasikan untuk merujuk secara berulang ke depset lain demi alasan efisiensi ruang. Implementasi Aturan tidak boleh "meratakan" depset dengan mengonversinya menjadi daftar kecuali aturan berada di level teratas grafik build. Perataan depset besar menimbulkan konsumsi memori yang besar. Juga dikenal sebagai kumpulan bertingkat dalam implementasi internal Bazel.

Lihat juga: Dokumentasi depset

Cache disk

Penyimpanan blob on-disk lokal untuk fitur caching 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 lebih cepat berhasil. Tindakan tertentu dieksekusi lebih cepat secara lokal (misalnya, penautan) dan yang lainnya lebih cepat dari jarak jauh (misalnya, kompilasi yang sangat paralel). Strategi eksekusi dinamis dapat memberikan waktu build inkremental dan bersih terbaik.

Fase eksekusi

Fase ketiga build. 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 spawn mengontrol cara tindakan ini dijalankan: secara lokal, jarak jauh, secara dinamis, di-sandbox, docker, dan sebagainya.

Root eksekusi

Direktori di direktori dasar output ruang kerja tempat tindakan lokal dieksekusi dalam build yang tidak di-sandbox. Konten direktori sebagian besar merupakan symlink dari 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 hutan symlink direktori yang mewakili penutupan transitif paket yang digunakan build. Dapat diakses dengan bazel info execution_root pada command line.

File

Lihat Artefak.

Hermetik

Build bersifat hermetic jika tidak ada pengaruh eksternal pada operasi build dan pengujiannya, yang membantu memastikan bahwa hasilnya bersifat deterministik dan benar. Misalnya, build hermetik 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 caching bertujuan untuk memberikan hasil yang benar bagi 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 di file BUILD yang disebutkan di atas. Mungkin 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. Di-sisipkan dengan fase kedua build, fase analisis, untuk membuat grafik target.

Macro

Mekanisme untuk menulis beberapa deklarasi target aturan bersama-sama dalam satu fungsi Starlark. Mengaktifkan penggunaan kembali pola deklarasi aturan umum di seluruh file BUILD. Memperluas ke deklarasi target aturan yang mendasarinya selama fase pemuatan.

Lihat juga: Dokumentasi makro

Mnemonik

String singkat yang dapat dibaca manusia yang dipilih oleh penulis aturan untuk memahami dengan cepat apa yang dilakukan oleh tindakan dalam aturan. Mnemonic dapat digunakan sebagai ID untuk pilihan strategi spawn. Beberapa contoh mnemonik tindakan adalah Javac dari aturan Java, CppCompile dari aturan C++, dan AndroidManifestMerger dari aturan Android.

Aturan native

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

Basis output

Direktori khusus ruang kerja 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 dibuat saat Bazel selesai mem-build target. Aturan menempatkan output biasa di "grup output default" (misalnya, file .jar dari java_library, .a, dan .so untuk target cc_library). Grup output default adalah grup output yang artefaknya 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 output Bazel. Nama direktori berasal dari nama pengguna sistem pengguna. Mencegah konflik file output jika beberapa pengguna membuat project yang sama pada sistem secara bersamaan. Berisi subdirektori yang sesuai dengan output build ruang kerja individual, juga dikenal sebagai dasar output.

Paket

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

Grup paket

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

Platform

"Jenis mesin" yang digunakan dalam build. Ini termasuk mesin yang dijalankan Bazel (platform "host"), mesin build mesin yang berjalan pada platform "exec"), dan target mesin dibuat untuk ("platform target").

Penyedia

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

Lihat juga: Dokumentasi penyedia

Kueri (konsep)

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

kueri (perintah)

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

Lihat juga: Petunjuk kueri, Referensi kueri

Cache repositori

Cache bersama yang dapat dialamatkan oleh konten pada file yang didownload oleh Bazel untuk build. File ini 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 di-cache hanya jika checksum SHA-256-nya ditentukan untuk download.

Reproduksibilitas

Properti build atau pengujian yang memiliki serangkaian input ke build atau pengujian akan selalu menghasilkan kumpulan output yang sama setiap saat, terlepas dari waktu, metode, atau lingkungannya. Perhatikan bahwa output 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 kumpulan 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 untuk mendukung lingkungan dan bahasa pemrograman baru.

Aturan dibuat untuk menghasilkan target aturan dalam fase pemuatan. Pada aturan fase analisis, targetkan informasi ke dependensi downstreamnya dalam bentuk penyedia, dan daftarkan tindakan yang menjelaskan cara membuat artefak outputnya. Tindakan ini dijalankan dalam fase eksekusi.

Lihat juga: Dokumentasi aturan

Target aturan

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

Runfile

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

Lihat juga: Dokumentasi Runfiles

Sandboxing

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

Bingkai langit-langit

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

Pengecapan

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

Starlark

Bahasa ekstensi untuk menulis aturan dan makro. Subkumpulan Python yang dibatasi (secara sintaksis dan tata bahasa) yang ditujukan untuk tujuan konfigurasi, dan untuk performa yang lebih baik. Menggunakan ekstensi file .bzl. File BUILD menggunakan versi Starlark yang lebih terbatas (misalnya, 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 --host_jvm_debug bazel. Flag ini mengubah konfigurasi server Bazel, sehingga setiap perubahan pada flag startup menyebabkan server dimulai ulang. Tanda startup tidak khusus untuk perintah apa pun.

Target

Objek yang ditentukan dalam file BUILD dan diidentifikasi oleh label. Target merepresentasikan unit Workspace yang dapat di-build dari perspektif pengguna akhir.

Target yang dideklarasikan dengan membuat instance aturan disebut target aturan. Bergantung pada aturan, target 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 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 target dan dependensinya. Diproduksi selama fase pemuatan dan digunakan sebagai input pada fase analisis.

Pola target

Cara 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 aturan dan target file di semua paket secara rekursif dari root ruang kerja.

Pengujian

Target aturan dibuat dari aturan pengujian, sehingga berisi pengujian yang dapat dieksekusi. Kode pengembalian nol dari penyelesaian yang dapat dieksekusi menunjukkan keberhasilan pengujian. Kontrak yang tepat antara Bazel dan pengujian (seperti variabel lingkungan pengujian, metode pengumpulan hasil pengujian) ditetapkan dalam Encyclopedia Pengujian.

Toolchain

Serangkaian alat untuk membuat output untuk suatu bahasa. Biasanya, toolchain meliputi compiler, penaut, penafsir, dan/atau linter. Toolchain juga dapat bervariasi berdasarkan platform, yaitu, komponen toolchain compiler Unix mungkin berbeda untuk varian Windows, meskipun toolchain itu untuk bahasa yang sama. Pemilihan toolchain yang tepat untuk platform ini 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 atas, dan //:bar bukan level atas, meskipun kedua target harus dibuat. Perbedaan penting antara target tingkat atas dan non-tingkat atas adalah bahwa tanda perintah yang ditetapkan pada command line Bazel (atau melalui .bazelrc) akan menetapkan konfigurasi untuk target tingkat atas, tetapi dapat dimodifikasi oleh transisi untuk target non-tingkat atas.

Transition

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

Lihat juga: Transisi yang ditetapkan pengguna

Artefak hierarki

Artefak yang mewakili kumpulan file. Karena file ini sendiri bukan artefak, tindakan yang beroperasi pada file tersebut harus mendaftarkan artefak hierarki 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 bergantung pada target lainnya; dan visibilitas pemuatan untuk mengontrol apakah file BUILD atau .bzl dapat memuat file .bzl yang ditentukan. Tanpa konteks, biasanya "visibilitas" mengacu pada visibilitas target.

Lihat juga: Dokumentasi visibilitas

Ruang Kerja

Direktori yang berisi file WORKSPACE dan kode sumber untuk software yang ingin Anda buat. Label yang dimulai dengan // bersifat relatif terhadap direktori ruang kerja.

File WORKSPACE

Menentukan direktori sebagai ruang kerja. File dapat kosong, meskipun biasanya berisi deklarasi repositori eksternal untuk mengambil dependensi tambahan dari jaringan atau sistem file lokal.