Bazel kayıt otoriteleri

Sorun bildirin Kaynağı göster

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 belirtme
    • module_base_path: source.json dosyasında local_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'si
      • maintainers: 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ın
      • versions: Bu kayıt otoritesinde bu modülün tüm sürümlerinin listesi
      • yanked_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ün MODULE.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'si
        • integrity: Arşivin Alt Kaynak Bütünlüğü sağlama toplamı
        • strip_prefix: Kaynak arşivi ayıklarken çıkarılacak dizin ön eki
        • patches: 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: Unix patch'in --strip bağımsız değişkeniyle aynıdır.
        • archive_type: İndirilen dosyanın arşiv türü (http_archive üzerindeki type 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ır
          • path göreli bir yol ve module_base_path mutlak bir yolsa <module_base_path>/<path> olarak çözümlenir
          • path ve module_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ı
    • patches/: Yama dosyalarını içeren isteğe bağlı bir dizin. Yalnızca source.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.