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