Bzlmod, bağımlılıkları keşfetmek için Bazel kayıt otoritelerinden (Bzel modüllerinin veritabanları) bilgilerini ister. Bzlmod şu anda yalnızca dizin kayıtlarını (belirli bir biçimi kullanan yerel dizinler veya statik HTTP sunucuları) desteklemektedir.
Dizin kaydı
Dizin kaydı; ana sayfa, bakım sorumluları, her sürümün MODULE.bazel
dosyası ve her sürümün kaynağının nasıl alınacağı dahil olmak üzere bir modül listesi hakkında bilgi içeren yerel bir dizin veya statik HTTP sunucusudur. Özellikle kaynak arşivlerin kendisini sunması gerekmez.
Dizin kaydı aşağıdaki biçimde olmalıdır:
/bazel_registry.json
: Kayıt defteriyle ilgili aşağıdaki gibi meta verileri içeren bir JSON dosyası:mirrors
: kaynak arşivleri için kullanılacak yansıtmaların listesini belirtmemodule_base_path
:source.json
dosyasındalocal_repository
türünü içeren modüller için temel yolu belirtme
/modules
: Bu kayıt otoritesindeki her modül için bir alt dizin içeren dizin/modules/$MODULE
: Bu modülün her sürümü için bir alt dizin ve ayrıca:metadata.json
: Aşağıdaki alanları içeren, modülle ilgili bilgileri içeren bir JSON dosyası:homepage
: Proje ana sayfasının URL'simaintainers
: Her biri kayıt defterindeki modülün koruyucusunun bilgilerine karşılık gelen JSON nesnelerinin listesi. Bunun, projenin yazarlarıyla aynı olması gerekmediğini unutmayınversions
: Bu kayıt otoritesinde bu modülün tüm sürümlerinin listesiyanked_versions
: Bu modülün yanked sürümlerinin bir haritası. Anahtarlar yank sürümleri olmalıdır, değerler ise sürümün neden çekildiğinin açıklamaları olmalı ve daha fazla bilgiye
/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ğını nasıl getireceğinizle ilgili bilgileri içeren bir JSON dosyası.- Varsayılan tür, aşağıdaki alanlarla bir
http_archive
deposunu temsil eden "arşiv"dir:url
: Kaynak arşivin URL'siintegrity
: Arşivin Alt Kaynak Bütünlüğü sağlama toplamıstrip_prefix
: Kaynak arşivi ayıklarken çıkarılacak dizin ön ekipatches
: Alınan arşive uygulanacak yama dosyalarını içeren bir eşleme. Yama dosyaları/modules/$MODULE/$VERSION/patches
dizininin altında bulunur. Anahtarlar, yama dosyası adları, değerler ise yama dosyalarının bütünlük sağlamasıdır.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
üzerindekitype
ile aynıdır). Varsayılan olarak, arşiv türü URL'nin dosya uzantısına göre belirlenir. Dosyanın uzantısı 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, aşağıdaki alanları kullanarak
local_repository
deposunu temsil eden yerel bir yolu kullanacak şekilde değiştirilebilir: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
mutlak bir yolsa<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--registry=file://<registry_path>
tarafından kullanılmalıdır. Aksi takdirde, Bazel bir hata mesajı
- Varsayılan tür, aşağıdaki alanlarla bir
patches/
: Yama dosyalarını içeren isteğe bağlı bir dizin. Yalnızcasource.json
"arşiv" türüne sahip olduğunda kullanılır
Bazel Merkezi Kayıt Otoritesi
https://bcr.bazel.build/ adresindeki Bazel Central Registry (BCR), GitHub deposu bazelbuild/bazel-central-registry
tarafından desteklenen içeriklere sahip bir dizin kaydıdır.
https://registry.bazel.build/ adresindeki web ön ucunu kullanarak bu paketin içeriklerine göz atabilirsiniz.
BCR'yi Bazel topluluğu korur ve katkıda bulunanlar, çekme istekleri gönderebilir. BCR katkı kurallarını inceleyin.
BCR, normal dizin kaydı biçimine ek olarak her modül sürümü (/modules/$MODULE/$VERSION/presubmit.yml
) için bir presubmit.yml
dosyası gerektirir. Bu dosya, bu modül sürümünün geçerliliğini kontrol etmek için kullanabileceğiniz birkaç temel derleme ve test hedefini belirtir. BCR'nin CI ardışık düzenleri, modüller arasında birlikte çalışabilirliği sağlamak için bunu da kullanır.
Kayıt otoritelerini seçme
Tekrarlanabilir Bazel işareti --registry
, modül istenecek kayıt defteri listesini belirtmek için kullanılabilir. Böylece projenizi, üçüncü taraf veya dahili kayıt defterinden bağımlılıkları getirecek şekilde ayarlayabilirsiniz. Daha önceki kayıtlara
öncelik verilir. Kolaylık sağlaması için projenizin .bazelrc
dosyasına bir --registry
işaretleri listesi ekleyebilirsiniz.
Kayıt defteriniz GitHub'da barındırılıyorsa (örneğin, bazelbuild/bazel-central-registry
öğesinin çatalı olarak) --registry
değeriniz için raw.githubusercontent.com
altında ham GitHub adresi bulunmalıdır. Örneğin, my-org
çatalının main
kolunda --registry=https://raw.githubusercontent.com/my-org/bazel-central-registry/main/
değerini ayarlarsınız.
--registry
işaretinin kullanılması Bazel Central Registry'nin varsayılan olarak kullanılmasını durdurur, ancak --registry=https://bcr.bazel.build
kodunu ekleyerek söz konusu özelliği tekrar ekleyebilirsiniz.