Bazel kayıt otoriteleri

Sorun bildir Kaynağı göster Gece · 7,3 · 7,2 · 7,1 · 7,0 · 6,5

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 ve source.json dosyası tarafından belirtilen modülün kaynak URL'si protokolü. Örneğin, bir modülün kaynak URL'si https://foo.com/bar/baz ve mirrors şunu içeriyor: ["https://mirror1.com/", "https://example.com/mirror2/"], ardından Bazel'in deneyeceği URL'ler sırasıyla https://mirror1.com/foo.com/bar/baz, https://example.com/mirror2/foo.com/bar/baz ve son olarak orijinal kaynak URL'nin kendisi https://foo.com/bar/baz.
    • module_base_path: source.json dosyasında local_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'si
      • maintainers: Her biri kayıt defterindeki modülün koruyucu bilgilerini içerir. Bunun yazarlarla aynı olması gerekmediğini unutmayın proje
      • versions: Bu modülün şurada bulunacak tüm sürümlerinin listesi: bu kayıt
      • yanked_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ün MODULE.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'si
        • integrity: Alt Kaynak Dürüstlük arşivin sağlama toplamı
        • strip_prefix: Ayıklanırken çıkarılacak dizin öneki. kaynak arşivi
        • patches: 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: Unix patch'in --strip bağımsız değişkeniyle aynıdır.
        • archive_type: İndirilen dosyanın arşiv türü (http_archive dosyasındaki type 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ır
          • path göreli bir yol ve module_base_path bir mutlak yol, <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 şu kullanıcılar tarafından kullanılmalıdır: --registry=file://<registry_path> Aksi takdirde, Bazel hata bildir
    • patches/: Yama dosyalarını içeren isteğe bağlı bir dizin; yalnızca aşağıdaki durumlarda kullanılır source.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.