ภาพรวม
โปรเจ็กต์ Bazel พัฒนาอย่างต่อเนื่องเพื่อตอบสนองความต้องการของคุณ ไม่ว่าจะเป็นการพัฒนาฟีเจอร์และการสนับสนุนไปพร้อมกับการดูแลรักษา การจัดระเบียบใหม่ และปรับปรุงประสิทธิภาพของผลิตภัณฑ์หลัก
การเปลี่ยนแปลงเหล่านี้มีจุดประสงค์เพื่อให้ชุมชนโอเพนซอร์สได้รับข้อมูลและมีส่วนร่วมอยู่เสมอ แผนกลยุทธ์นี้อธิบายถึงโครงการริเริ่มในปัจจุบันและการคาดการณ์สำหรับอนาคตของการพัฒนา Bazel ซึ่งจะช่วยให้คุณเห็นลำดับความสำคัญในปัจจุบันและโปรเจ็กต์ที่กำลังดำเนินอยู่
แผนภาพนี้แสดงภาพเป้าหมายโดยสังเขป และไม่ควรถือเป็นการรับประกัน ลำดับความสำคัญอาจเปลี่ยนแปลงตามความคิดเห็นของนักพัฒนาแอปและลูกค้า หรือโอกาสใหม่ๆ ในตลาด
หากต้องการรับการแจ้งเตือนเกี่ยวกับฟีเจอร์ใหม่ๆ รวมถึงข้อมูลอัปเดตเกี่ยวกับแผนงานนี้ โปรดเข้าร่วมชุมชน Google Group
ไตรมาสที่ 4 — เปิดตัว Bazel 6.0
ไตรมาสที่ 4 จะนำ Bazel 6.0 ซึ่งเป็นเวอร์ชันการสนับสนุนระยะยาว (LTS) ใหม่มาให้คุณ Bazel 6.0 มีแผนที่จะรวมฟีเจอร์ใหม่ที่มีประสิทธิภาพและชุมชนเรียกร้องเข้ามาสำหรับการจัดการทรัพยากร การพัฒนาด้วย Android และอื่นๆ
Bzlmod: ระบบการจัดการทรัพยากร Dependency ภายนอก
Bzlmod จะแก้ไขการพึ่งพาแบบเปลี่ยนผ่านโดยอัตโนมัติ ซึ่งช่วยให้โปรเจ็กต์ปรับขนาดได้อย่างรวดเร็วและประหยัดทรัพยากร Bzlmod ซึ่งเปิดตัวแบบทดลองใน Bazel 5.0 จะพร้อมใช้งานในรุ่นทั่วไปและมอบโซลูชันสำหรับปัญหาการพึ่งพาแบบเพชร
- Bzlmod เปลี่ยนจาก "ทดลองใช้" เป็น "พร้อมให้บริการสำหรับผู้ใช้ทั่วไป"
- รองรับ
rules\_jvm\_external
ซึ่งช่วยให้ผู้ใช้ดาวน์โหลด Dependency ของ Maven สำหรับโปรเจ็กต์ Java ได้ - คู่มือการย้ายข้อมูล Bzlmod มีเครื่องมือ สคริปต์ และเอกสารประกอบสำหรับทีมที่ต้องการใช้ Bzlmod
- ที่เก็บข้อมูลส่วนกลางของ Bazel โฮสต์กฎ
BUILD
หลักของ Bazel (rules\_jvm\_external
,rules\_go
,rules\_python
,rules\_nodejs
) และข้อกําหนดเบื้องต้นที่สําคัญที่จําเป็นสําหรับ Bzlmod
ดูข้อมูลเพิ่มเติมเกี่ยวกับการพัฒนานี้ได้ในการอัปเดตชุมชน Bzlmod หรืออ่านเอกสารการออกแบบต้นฉบับ
บิลด์แอป Android ด้วย Bazel
Bazel 6.0 จะมีเครื่องมือที่ปรับปรุงแล้วและการรวมฟีเจอร์ที่ชุมชนมีส่วนร่วม ทีม Bazel จะให้ความสำคัญกับการผสานรวมเครื่องมือสร้าง Android เข้ากับกฎ Bazel Android เพื่อรองรับการใช้งานที่เพิ่มขึ้นและฐานโค้ดที่ขยายตัว
- อัปเดต D8 เป็นเวอร์ชัน 3.3.28 และตั้งเป็น Dexer เริ่มต้น
- ผสานรวมกับฟีเจอร์หลักที่ชุมชนมีส่วนร่วมซึ่งเพิ่มเข้ามาใน 5.X รวมถึงการรองรับสิ่งต่อไปนี้
- ผู้ปฏิบัติงานแบบถาวรที่มี D8
- กระบวนการ Desugaring โดยใช้ D8
- การผสานแท็ก "uses-permissions" ในไฟล์ Manifest ของ Android
- เพิ่มจำนวนผู้ปฏิบัติงานในการประมวลผลทรัพยากร Android
เครื่องมือทางเทคนิคที่ไม่บังคับ
แบบสํารวจความพึงพอใจของนักพัฒนาซอฟต์แวร์แสดงให้เห็นว่าผู้เขียนกฎต้องการการสนับสนุนในการพัฒนาเครื่องมือเพิ่มเติม Bazel 6.0 จะช่วยให้ผู้เขียนเขียนกฎโดยใช้เครื่องมือทางเทคนิคแบบไม่บังคับที่มีประสิทธิภาพสูงได้เมื่อพร้อมใช้งานพร้อมกับการติดตั้งใช้งานสำรองสำหรับแพลตฟอร์มอื่นๆ
การรองรับ Bazel-JetBrains* IntelliJ IDEA
JetBrains ได้ร่วมมือกับ Bazel เพื่อดูแลรักษาปลั๊กอิน Bazel IntelliJ IDEA ร่วมกัน ซึ่งสอดคล้องกับเป้าหมายในการเพิ่มการดูแลชุมชนและเปิดโอกาสให้ส่งคำขอและการพัฒนาฟีเจอร์
- ปลั๊กอิน IntelliJ v. 2022.2 รองรับปลั๊กอิน JetBrains เวอร์ชันล่าสุด
- เพิ่มความเข้ากันได้กับการพัฒนาจากระยะไกล
- พัฒนาฟีเจอร์บนเที่ยวบินที่ขับเคลื่อนโดยชุมชนต่อไป เช่น การรองรับ Scala
อ่านข้อมูลเพิ่มเติมเกี่ยวกับการพัฒนานี้ได้ที่ประกาศในบล็อกของ Bazel-JetBrains
การพัฒนาในอนาคต
ในอนาคต ทีม Bazel ได้เริ่มพัฒนาหรือคาดว่าจะให้ความสำคัญกับฟีเจอร์ต่อไปนี้ในปี 2023 และหลังจากนั้น
การปรับปรุงกฎการสร้าง Android ของ Bazel
ลงทุนอย่างต่อเนื่องในประสบการณ์การพัฒนาแอป Android โดยมุ่งเน้นที่เวิร์กโฟลว์ผ่านการสร้าง การทดสอบ และการนำไปใช้
- การย้ายข้อมูลและการสนับสนุนสำหรับ R8
- การอัปเดตกฎ Android รวมถึงการแปลเป็นภาษา Starlark
- การรองรับ App Bundle
- การรองรับ NDK เวอร์ชันล่าสุด
- ทดสอบการครอบคลุมของโค้ด
เครื่องมือการปฏิบัติตามข้อกำหนดของใบอนุญาต OSS
นักพัฒนาแอปต้องการเครื่องมือตรวจสอบการปฏิบัติตามข้อกำหนดของใบอนุญาตที่มีประสิทธิภาพสูงเพื่อให้มั่นใจว่าแพ็กเกจที่รวมอยู่จะพร้อมใช้งานและปลอดภัย โปรเจ็กต์นี้มีชุดกฎและเครื่องมือที่จะช่วยระบุและลดความเสี่ยงด้านข้อกำหนดและการอนุญาตให้ใช้สิทธิที่เกี่ยวข้องกับคอมโพเนนต์ซอฟต์แวร์หนึ่งๆ ฟีเจอร์เป้าหมาย ได้แก่
- ความสามารถในการตรวจสอบแพ็กเกจที่ใช้โดยเป้าหมายหนึ่งๆ
- ความสามารถในการสร้างการตรวจสอบการปฏิบัติตามข้อกำหนดของใบอนุญาตสำหรับองค์กรโดยเฉพาะ
ดูการใช้งาน rules_license ที่อยู่ระหว่างดำเนินการบน GitHub
Bzlmod: ระบบการจัดการทรัพยากร Dependency ภายนอก
เมื่อเปิดตัว Bzlmod จะปรับปรุงความสามารถในการปรับขนาดและความน่าเชื่อถือของ transitive dependencies ในอีก 3 ปีข้างหน้า Bzlmod มีเป้าหมายที่จะแทนที่ WORKSPACE
ในฐานะระบบย่อยสำหรับจัดการทรัพยากร Workspace ของ Bazel โดยค่าเริ่มต้น ฟีเจอร์ที่กำหนดเป้าหมาย ได้แก่
- การรองรับบิลด์แบบปิด
- การปักหมุดกฎการอ้างอิงเวอร์ชันไปยังสําเนาในเครื่องในโหมดผู้ให้บริการ/ออฟไลน์
- รีจิสทรีส่วนกลางของ Bazel ประกอบด้วยการมีส่วนร่วมของชุมชนเป็นประจำและการนำกฎและโปรเจ็กต์หลักของ Bazel มาใช้
- Bzlmod กลายเป็นเครื่องมือเริ่มต้นสำหรับการสร้างโปรเจ็กต์ Bazel
บิวด์ที่ลงชื่อ
Bazel จะจัดเตรียมไบนารีที่เชื่อถือได้สำหรับ Windows และ Mac ที่ลงนามด้วยคีย์ Google ฟีเจอร์นี้ช่วยให้นักพัฒนาซอฟต์แวร์/นักพัฒนาซอฟต์แวร์สำหรับระบบปฏิบัติการหลายแพลตฟอร์มระบุแหล่งที่มาของไบนารี Bazel และปกป้องระบบจากไบนารีที่ไม่ได้รับการยืนยันซึ่งอาจเป็นอันตรายได้
Standardized Platforms API
Platforms API ใหม่จะกำหนดมาตรฐานการกำหนดค่าสถาปัตยกรรมสำหรับบิลด์หลายภาษาและหลายแพลตฟอร์ม ฟีเจอร์นี้ช่วยให้นักพัฒนาแอปลดข้อผิดพลาดและลดความซับซ้อนที่อาจเกิดขึ้นในช่วงการพัฒนาได้ ซึ่งช่วยลดค่าใช้จ่ายที่อาจเกิดขึ้น
สร้างเมตริกการวิเคราะห์
ข้อมูลการติดตามของ Bazel จะแสดงเมตริกเวลาของระยะการวิเคราะห์ ซึ่งช่วยให้นักพัฒนาซอฟต์แวร์เพิ่มประสิทธิภาพการสร้างของตนเองได้
การดำเนินการระยะไกลด้วย "บิลด์ที่ไม่มีไบต์"
บิลด์ที่ไม่มีไบต์จะเพิ่มประสิทธิภาพโดยอนุญาตให้ Bazel ดาวน์โหลดอาร์ติแฟกต์ที่จำเป็นเท่านั้น ซึ่งจะช่วยป้องกันไม่ให้บิลด์เกิดปัญหาคอขวดกับแบนด์วิดท์ของเครือข่าย ฟีเจอร์ที่เพิ่มเข้ามาสําหรับบิลด์ระยะไกลมีดังนี้
- ใช้การดาวน์โหลดแบบไม่พร้อมกันเพื่อให้การดำเนินการในเครื่องและจากระยะไกลเริ่มต้นขึ้นทันทีที่ดาวน์โหลดเอาต์พุตที่เกี่ยวข้อง
- เพิ่มการรองรับลิงก์สัญลักษณ์
- เรียกข้อมูลเอาต์พุตระดับกลางจากการดําเนินการระยะไกลเมื่อบิลด์เสร็จสมบูรณ์
*ลิขสิทธิ์ © 2022 JetBrains s.r.o. JetBrains และ IntelliJ เป็นเครื่องหมายการค้าจดทะเบียนของ JetBrains s.r.o.