Bazel 1.0 yapı sisteminin piyasaya sürülmesi

tanıtıldı açık montaj aletlerinin serbest bırakılması Bazel 1.0, Google mühendisleri tarafından geliştirildi ve şirketin dahili projelerinin çoğunu bir araya getirmek için kullanıldı. Sürüm 1.0, sürümlerin semantik versiyonlarının kullanımına geçişi işaret ediyordu ve aynı zamanda geriye dönük uyumluluğu ihlal eden çok sayıda değişiklik getirmesiyle de dikkate değerdi. Proje kodu tarafından dağıtıldı Apache 2.0 altında lisanslanmıştır.

Bazel gerekli derleyicileri ve testleri çalıştırarak projeyi oluşturur. Derleme sistemi, çok büyük projeler ve birden çok programlama dilinde kod içeren, kapsamlı testler gerektiren ve birden çok platform için oluşturulmuş projeler de dahil olmak üzere Google projelerini en iyi şekilde oluşturmak için sıfırdan tasarlanmıştır. Java, C++, Objective-C, Python, Rust, Go ve diğer birçok dilde kod oluşturmayı ve test etmeyi, ayrıca Android ve iOS için mobil uygulamalar oluşturmayı destekler. Farklı platformlar ve mimariler için tekli montaj dosyalarının kullanımı desteklenir; örneğin, değişiklik yapılmayan bir montaj dosyası hem sunucu sistemi hem de mobil cihaz için kullanılabilir.

Bazel'in ayırt edici özellikleri arasında montaj sürecinin yüksek hızı, güvenilirliği ve tekrarlanabilirliği yer alıyor. Yüksek derleme hızına ulaşmak için Bazel, oluşturma sürecinde önbelleğe alma ve paralelleştirme tekniklerini aktif olarak kullanıyor. BUILD dosyaları, değişiklikler yapıldıktan sonra bileşenleri yeniden oluşturma kararlarının verildiği (yalnızca değiştirilen dosyalar yeniden oluşturulur) ve montaj sürecini paralel hale getiren tüm bağımlılıkları tam olarak tanımlamalıdır. Takımlama aynı zamanda tekrarlanabilir montajı da sağlar; Geliştiricinin makinesinde bir proje oluşturmanın sonucu, sürekli entegrasyon sunucuları gibi üçüncü taraf sistemlerde yapılan geliştirmeyle tamamen aynı olacaktır.

Make ve Ninja'dan farklı olarak Bazel, montaj kuralları oluşturmak için daha üst düzey bir yaklaşım kullanıyor; burada komutların oluşturulmakta olan dosyalara bağlanmasını tanımlamak yerine "çalıştırılabilir bir dosya oluşturmak" gibi daha soyut hazır bloklar kullanılıyor. C++", "C++'da kitaplık oluşturma" veya "C++ için test çalıştırma" ve ayrıca hedef ve derleme platformlarını tanımlama. BUILD metin dosyasında proje bileşenleri, tek tek dosyalar ve derleyici çağrı komutları düzeyinde ayrıntıya girmeden bir grup kitaplık, çalıştırılabilir dosya ve test olarak tanımlanır. Uzantıları bağlama mekanizması aracılığıyla ek işlevsellik uygulanır.

Kaynak: opennet.ru

Yorum ekle