Bzlmod, Bazel'dan bilgilerini isteyerek bağımlılıkları tespit ediyor kayıtlar: Bazel modüllerinin veritabanları. Bzlmod şu anda yalnızca dizin kayıtları: yerel dizinler veya statik HTTP sunucuları belirli bir biçim alır.
Dizin kaydı
Dizin kayıt defteri, aşağıdakileri içeren bir yerel dizin veya statik HTTP sunucusudur:
ana sayfaları, bakımını yapan kişiler, modüller
Her sürümün MODULE.bazel
dosyası ve her sürümün kaynağının nasıl getirileceği
sürümünü değil. Özellikle kaynak arşivlerin kendisini sunması gerekmez.
Dizin kaydı aşağıdaki biçimde olmalıdır:
/bazel_registry.json
: Kayıt defterinin meta verilerini içeren bir JSON dosyası örneğin:mirrors
: Kaynak arşivler için kullanılacak yansıtmaların listesini belirtir. Yansıtılan URL, aynanın kendisinin birleşimidir vesource.json
dosyası tarafından belirtilen modülün kaynak URL'si protokolü. Örneğin, bir modülün kaynak URL'sihttps://foo.com/bar/baz
vemirrors
şunu içeriyor:["https://mirror1.com/", "https://example.com/mirror2/"]
, ardından Bazel'in deneyeceği URL'ler sırasıylahttps://mirror1.com/foo.com/bar/baz
,https://example.com/mirror2/foo.com/bar/baz
ve son olarak orijinal kaynak URL'nin kendisihttps://foo.com/bar/baz
.module_base_path
:source.json
dosyasındalocal_repository
türü
/modules
: Bu dizindeki her modülün alt dizinini içeren kayıt otoritesi/modules/$MODULE
: Her sürüm için bir alt dizin içeren dizin ele aldık:metadata.json
: Modül hakkında bilgi içeren bir JSON dosyası, şu alanları kullanın:homepage
: Proje ana sayfasının URL'simaintainers
: Her biri kayıt defterindeki modülün koruyucu bilgilerini içerir. Bunun yazarlarla aynı olması gerekmediğini unutmayın projeversions
: Bu modülün şurada bulunacak tüm sürümlerinin listesi: bu kayıtyanked_versions
: Yanked haritası sürümleri hakkında daha fazla bilgi edinin. Anahtarlar yank versiyonları olmalı, değerler de veya daha fazla videoya yönlendiren bir bağlantı içermesi tercih edilir. bilgi
/modules/$MODULE/$VERSION
: Şu dosyaları içeren bir dizin:MODULE.bazel
: Bu modül sürümününMODULE.bazel
dosyasısource.json
: bu modül sürümünün kaynağı- Varsayılan tür olan "arşiv",
http_archive
deposunu temsil eder. şu alanları kullanın:url
: Kaynak arşivin URL'siintegrity
: Alt Kaynak Dürüstlük arşivin sağlama toplamıstrip_prefix
: Ayıklanırken çıkarılacak dizin öneki. kaynak arşivipatches
: arşiv. Yama dosyaları/modules/$MODULE/$VERSION/patches
dizini. Anahtarlar değerler, yama dosyası adlarının bütünlük sağlaması yama dosyalarınıpatch_strip
: Unixpatch
'in--strip
bağımsız değişkeniyle aynıdır.archive_type
: İndirilen dosyanın arşiv türü (http_archive
dosyasındakitype
ile aynı). Varsayılan olarak, arşiv türü URL'nin dosya uzantısına göre belirlenir. Dosyada uzantı yoksa şunlardan birini açıkça belirtebilirsiniz:"zip"
,"jar"
,"war"
,"aar"
,"tar"
,"tar.gz"
,"tgz"
,"tar.xz"
,"txz"
,"tar.zst"
,"tzst"
,tar.bz2
,"ar"
veya"deb"
.
- Tür, şu alanlarla bir git deposu kullanacak şekilde değiştirilebilir:
type
:git_repository
- https://bazel.build/rules/lib/repo/git adresinde açıklanan alanlar:
remote
commit
shallow_since
tag
init_submodules
verbose
strip_prefix
- Tür, bir sunucuyu temsil eden yerel bir yolu kullanacak şekilde değiştirilebilir.
Şu alanları içeren
local_repository
deposu:type
:local_path
path
: Deponun yerel yolu. Şu şekilde hesaplanır:path
mutlak bir yolsa olduğu gibi kalırpath
göreli bir yol vemodule_base_path
bir mutlak yol,<module_base_path>/<path>
olarak çözümlenirpath
vemodule_base_path
göreli yollarsa<registry_path>/<module_base_path>/<path>
olarak çözümlenir. Kayıt defteri, yerel olarak barındırılmalı ve şu kullanıcılar tarafından kullanılmalıdır:--registry=file://<registry_path>
Aksi takdirde, Bazel hata bildir
- Varsayılan tür olan "arşiv",
patches/
: Yama dosyalarını içeren isteğe bağlı bir dizin; yalnızca aşağıdaki durumlarda kullanılırsource.json
içinde "arşivle" tür
Bazel Merkezi Kayıt Otoritesi
https://bcr.bazel.build/ adresindeki Bazel Central Registry (BCR), bir dizindir
GitHub deposu tarafından desteklenen içeriklere sahip kayıt defteri
bazelbuild/bazel-central-registry
.
Şu adreste bulunan web ön ucunu kullanarak bu içeriğin içeriklerine göz atabilirsiniz:
https://registry.bazel.build/.
BCR'yi Bazel topluluğu korur ve katkıda bulunanlar, geri bildirimde bulunabilirler pull istekleri. BCR katkısını inceleyin yönergelerimize bakın.
BCR, normal bir dizin kaydı biçimine ek olarak,
her modül sürümü için bir presubmit.yml
dosyası
(/modules/$MODULE/$VERSION/presubmit.yml
). Bu dosyada proje yönetiminde
bu modülün geçerliliğini kontrol etmek için kullanabileceğiniz derleme ve test hedefleri
sürümünü değil. BCR'nin CI ardışık düzenleri, birlikte çalışabilirliği sağlamak için de bunu kullanır.
bazı yöntemleri de kullanabilirsiniz.
Kayıt otoritelerini seçme
Tekrarlanabilir Bazel işareti --registry
,
kayıt defterleri yükleyebilirsiniz. Böylece projenizi,
bağımlılığınızı kontrol altında tutabilirsiniz. Daha önceki kayıtlarda
önceliklendirme. Kolaylık sağlaması açısından --registry
işaretlerini
Projenizin .bazelrc
dosyası.
Kayıt defteriniz GitHub üzerinde barındırılıyorsa (örneğin,
bazelbuild/bazel-central-registry
), --registry
değeriniz için ham veri gerekiyor
raw.githubusercontent.com
altında GitHub adresi. Örneğin, main
my-org
çatalın şubesini seçerseniz:
--registry=https://raw.githubusercontent.com/my-org/bazel-central-registry/main/
.
--registry
işaretinin kullanılması, Bazel Central Registry'nin
varsayılan olarak ayarlandı, ancak --registry=https://bcr.bazel.build
ekleyerek tekrar ekleyebilirsiniz.