Bzlmod, Bazel kayıtlarından (Bazel modüllerinin veritabanları) bilgi isteyerek bağımlılıklarını keşfeder. Bzlmod şu anda yalnızca dizin kayıtlarını (belirli bir biçimi izleyen yerel dizinler veya statik HTTP sunucuları) desteklemektedir.
Dizin kayıt otoritesi
Dizin kayıt otoritesi, ana sayfaları, bakım verenleri, her bir sürümün MODULE.bazel
dosyası ve her bir sürümün kaynağının nasıl alınacağı da dahil olmak üzere bir modül listesi hakkında bilgi içeren yerel bir dizin veya statik bir HTTP sunucusudur. Kaynak arşivlerin kendisini sunması gerekmez.
Dizin sicil dairesi aşağıdaki biçime uygun olmalıdır:
/bazel_registry.json
: Kayıt otoritesinin meta verilerini içeren bir JSON dosyası (ör.mirrors
: Kaynak arşivler için kullanılacak aynaların listesini belirtmemodule_base_path
:source.json
dosyasındalocal_repository
türüne sahip modüllerin temel yolunu belirtme
/modules
: Bu kayıt defterindeki her modül için bir alt dizin içeren bir dizin/modules/$MODULE
: Bu modülün her sürümü için bir alt dizin içeren bir dizin ve aşağıdakiler:metadata.json
: Modül hakkında bilgi içeren bir JSON dosyası. Aşağıdaki alanlara sahiptir:homepage
: Projenin ana sayfasının URL'simaintainers
: Her biri kayıt defterindeki modülün bir koruyucusunun bilgilerine karşılık gelen JSON nesnelerinin listesi. Bu kullanıcıların, projenin yazarlarıyla aynı olmayabileceğini unutmayın.versions
: Bu modülün bu kayıt defterinde bulunan tüm sürümlerinin listesiyanked_versions
: Bu modülün geri çekilen sürümlerinin haritası. Anahtarlar, kaldırılacak sürümler, değerler ise sürümün neden kaldırıldığının açıklamaları olmalıdır. İdeal olarak, daha fazla bilginin bağlantısı da sağlanmalıdır.
/modules/$MODULE/$VERSION
: Aşağıdaki 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ın nasıl alınacağıyla ilgili bilgileri içeren bir JSON dosyası- Varsayılan tür, aşağıdaki alanlara sahip bir
http_archive
deposunu temsil eden "arşiv"dir:url
: Kaynak arşivin URL'siintegrity
: Arşivin alt öğe bütünlüğü sağlama toplamıstrip_prefix
: Kaynak arşivi ayıklanırken kaldırılacak bir dizin ön ekipatches
: Ayıklanan arşive uygulanacak yama dosyalarını içeren bir harita. Yama dosyaları/modules/$MODULE/$VERSION/patches
dizininde bulunur. Anahtarlar, düzeltme dosyası adları, değerler ise düzeltme dosyalarının bütünlük sağlama sağlama toplamıdır.patch_strip
: Unixpatch
işlevinin--strip
bağımsız değişkeniyle aynıdır.archive_type
: İndirilen dosyanın arşiv türü (http_archive
'dekitype
ile aynıdır). Varsayılan olarak arşiv türü, URL'nin dosya uzantısından belirlenir. Dosyanın uzantısı yoksa aşağıdakilerden 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 alanlarla bir git deposu kullanacak şekilde değiştirilebilir:
type
:git_repository
- https://bazel.build/rules/lib/repo/git adresinde açıklanan aşağıdaki alanlar:
remote
commit
shallow_since
tag
init_submodules
verbose
strip_prefix
- Tür, aşağıdaki alanlara sahip bir
local_repository
deposunu temsil eden yerel bir yol kullanacak şekilde değiştirilebilir:type
:local_path
path
: Deponun yerel yolu. Aşağıdaki şekilde hesaplanır:path
mutlak bir yolsa olduğu gibi kalırpath
göreli bir yolsa vemodule_base_path
mutlak bir yolsa<module_base_path>/<path>
olarak çözümlenir.- Hem
path
hem demodule_base_path
göreli yolsa<registry_path>/<module_base_path>/<path>
olarak çözülür. Kayıt otoritesi yerel olarak barındırılmalı ve--registry=file://<registry_path>
tarafından kullanılmalıdır. Aksi takdirde Bazel hata verir.
- Varsayılan tür, aşağıdaki alanlara sahip bir
patches/
: Yalnızcasource.json
"arşiv" türüne sahip olduğunda kullanılan, yama dosyalarını içeren isteğe bağlı bir dizin
Bazel Merkezi Kaydı
https://bcr.bazel.build/ adresindeki Bazel Merkezi Kaydı (BCR), bazelbuild/bazel-central-registry
GitHub deposu tarafından desteklenen içeriklerin yer aldığı bir dizin kaydıdır.
İçeriğine https://registry.bazel.build/ adresindeki web ön ucunu kullanarak göz atabilirsiniz.
BCR, Bazel topluluğu tarafından yönetilir ve katkıda bulunanların çekme isteğinde bulunmasına izin verilir. BCR katkı yönergelerine bakın.
BCR, normal bir dizin sicil dairesi biçimini izlemenin yanı sıra her modül sürümü için bir presubmit.yml
dosyası (/modules/$MODULE/$VERSION/presubmit.yml
) 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üzenlerinde de modüller arasında birlikte çalışabilirliği sağlamak için bu yöntem kullanılır.
Kayıt otoritelerini seçme
Tekrarlanabilir Bazel işareti --registry
, modül isteğinde bulunulacak kayıt defteri listesini belirtmek için kullanılabilir. Böylece projenizi, bağımlılıklarını üçüncü taraf veya dahili kayıt defterinden alacak şekilde ayarlayabilirsiniz. Önceki kayıtlar önceliklidir. Kolaylık sağlamak için projenizin .bazelrc
dosyasına --registry
işaretlerinin listesini ekleyebilirsiniz.
Kayıt deponuz GitHub'da barındırılıyorsa (örneğin, bazelbuild/bazel-central-registry
'ün çatalı olarak) --registry
değerinizin raw.githubusercontent.com
altında ham bir GitHub adresine ihtiyacı vardır. Örneğin, my-org
çatalının main
dalında --registry=https://raw.githubusercontent.com/my-org/bazel-central-registry/main/
değerini ayarlarsınız.
--registry
işareti kullanıldığında Bazel Merkezi Kaydı varsayılan olarak kullanılamaz ancak --registry=https://bcr.bazel.build
işareti ekleyerek tekrar ekleyebilirsiniz.