ภาพรวม
โปรเจ็กต์ Bazel พัฒนาอย่างต่อเนื่องเพื่อตอบสนองความต้องการของคุณ โดยการพัฒนาฟีเจอร์และให้การสนับสนุนพร้อมทั้งดูแล ปรับโครงสร้าง และปรับปรุงประสิทธิภาพของผลิตภัณฑ์หลัก
การเปลี่ยนแปลงเหล่านี้มีขึ้นเพื่อให้ชุมชนโอเพนซอร์สของเราได้รับข้อมูลและมีส่วนร่วม แผนกลยุทธ์นี้อธิบายถึงโครงการริเริ่มในปัจจุบันและการคาดการณ์เกี่ยวกับการพัฒนา Bazel ในอนาคต ซึ่งจะช่วยให้คุณทราบถึงลำดับความสำคัญในปัจจุบันและโปรเจ็กต์ที่กำลังดำเนินการอยู่
แผนงานนี้แสดงภาพรวมของเป้าหมาย และไม่ควรถือเป็นการรับประกัน ลำดับความสำคัญอาจเปลี่ยนแปลงได้ตามความคิดเห็นของนักพัฒนาแอปและลูกค้า หรือโอกาสใหม่ๆ ในตลาด
หากต้องการรับการแจ้งเตือนเกี่ยวกับฟีเจอร์ใหม่ๆ รวมถึงการอัปเดตแผนงานนี้ โปรดเข้าร่วมชุมชน Google Group
ไตรมาสที่ 4 - เปิดตัว Bazel 6.0
ไตรมาสที่ 4 จะมี Bazel 6.0 ซึ่งเป็นเวอร์ชันการสนับสนุนระยะยาว (LTS) ใหม่ Bazel 6.0 มีแผนที่จะรวมฟีเจอร์ใหม่ที่มีประสิทธิภาพและฟีเจอร์ที่ชุมชนร้องขอสำหรับการจัดการทรัพยากร Dependency, การพัฒนาด้วย Android และอื่นๆ
Bzlmod: ระบบการจัดการทรัพยากร Dependency ภายนอก
Bzlmod จะแก้ปัญหาการอ้างอิงแบบทรานซิทีฟโดยอัตโนมัติ ทำให้โปรเจ็กต์ปรับขนาดได้ในขณะที่ยังคงรวดเร็วและประหยัดทรัพยากร Bzlmod ซึ่งเปิดตัวในเวอร์ชันทดลองใน Bazel 5.0 จะพร้อมใช้งานโดยทั่วไปและเป็นโซลูชันสำหรับปัญหาการขึ้นต่อกันแบบไดมอนด์
- Bzlmod เปลี่ยนจาก "ทดลอง" เป็น "พร้อมให้บริการสำหรับผู้ใช้ทั่วไป"
- รวมถึงรองรับ
rules\_jvm\_external
ซึ่งช่วยให้ผู้ใช้ดาวน์โหลดทรัพยากร Dependency ของ Maven สำหรับโปรเจ็กต์ Java ได้ - Bzlmod Migration Guide มีเครื่องมือ สคริปต์ และเอกสารประกอบสำหรับทีมที่ต้องการใช้ 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 ซึ่งรวมถึงการรองรับรายการต่อไปนี้
- Persistent Worker ที่มี D8
- Desugaring โดยใช้ D8
- การผสานแท็ก "uses-permissions" ในไฟล์ Manifest ของ Android
- Multiplex Worker ในการประมวลผลทรัพยากร Android
Toolchain ที่ไม่บังคับ
แบบสำรวจความพึงพอใจของนักพัฒนาซอฟต์แวร์แสดงให้เห็นว่าผู้เขียนกฎต้องการการสนับสนุนสำหรับการพัฒนา Toolchain เพิ่มเติม Bazel 6.0 จะอนุญาตให้ผู้เขียนเขียนกฎโดยใช้เครื่องมือเชนประสิทธิภาพสูงที่ไม่บังคับเมื่อพร้อมใช้งานพร้อมการใช้งานสำรองสำหรับแพลตฟอร์มอื่นๆ
การรองรับ Bazel-JetBrains* IntelliJ IDEA
JetBrains ได้ร่วมเป็นพาร์ทเนอร์กับ Bazel เพื่อร่วมดูแลปลั๊กอิน Bazel IntelliJ IDEA โดยมีเป้าหมายเพื่อเพิ่มการดูแลชุมชนและเปิดโอกาสให้มีการขอฟีเจอร์และการพัฒนา
- ปลั๊กอิน IntelliJ เวอร์ชัน 2022.2 รองรับปลั๊กอิน JetBrains เวอร์ชันล่าสุด
- เพิ่มความเข้ากันได้กับการพัฒนาจากระยะไกล
- ส่งเสริมการพัฒนาที่ขับเคลื่อนโดยชุมชนสำหรับฟีเจอร์ที่อยู่ระหว่างการพัฒนา เช่น การรองรับ Scala
อ่านข้อมูลเพิ่มเติมเกี่ยวกับการพัฒนาครั้งนี้ได้ที่ประกาศในบล็อกของ Bazel-JetBrains
การพัฒนาในอนาคต
ในอนาคต ทีม Bazel ได้เริ่มพัฒนาหรือคาดว่าจะจัดลําดับความสําคัญของฟีเจอร์ต่อไปนี้ในปี 2023 และหลังจากนั้น
การปรับปรุงกฎการบิลด์ Android ของ Bazel
ลงทุนอย่างต่อเนื่องในประสบการณ์การพัฒนาแอป Android โดยมุ่งเน้นที่เวิร์กโฟลว์ผ่านการสร้าง การทดสอบ และการทำให้ใช้งานได้
- การย้ายข้อมูลและการรองรับ R8
- การปรับปรุงกฎของ Android ซึ่งรวมถึงการแปลเป็นภาษา Starlark
- การรองรับ App Bundle
- การรองรับ NDK เวอร์ชันล่าสุด
- ทดสอบการครอบคลุมของโค้ด
เครื่องมือการปฏิบัติตามข้อกำหนดของใบอนุญาต OSS
นักพัฒนาแอปขอเครื่องมือตรวจสอบการปฏิบัติตามข้อกำหนดของใบอนุญาตที่มีประสิทธิภาพเพื่อให้มั่นใจว่าแพ็กเกจที่รวมไว้จะพร้อมใช้งานและปลอดภัย โปรเจ็กต์นี้มีชุดกฎและเครื่องมือที่จะช่วยระบุและลดความเสี่ยงด้านการปฏิบัติตามข้อกำหนดและใบอนุญาตที่เชื่อมโยงกับคอมโพเนนต์ซอฟต์แวร์หนึ่งๆ ฟีเจอร์เป้าหมายมีดังนี้
- ความสามารถในการตรวจสอบแพ็กเกจที่เป้าหมายที่กำหนดใช้
- ความสามารถในการสร้างการตรวจสอบการปฏิบัติตามข้อกำหนดของใบอนุญาตที่เฉพาะเจาะจงขององค์กร
ดูการติดตั้งใช้งาน rules_license ที่อยู่ระหว่างดำเนินการใน GitHub
Bzlmod: ระบบการจัดการทรัพยากร Dependency ภายนอก
เมื่อเปิดตัว Bzlmod จะช่วยปรับปรุงความสามารถในการปรับขนาดและความน่าเชื่อถือของทรัพยากร Dependency แบบทรานซิทีฟ ในอีก 3 ปีข้างหน้า Bzlmod มีเป้าหมายที่จะมาแทนที่ WORKSPACE
ในฐานะระบบย่อยการจัดการการขึ้นต่อกันของพื้นที่ทำงาน Bazel เริ่มต้น ฟีเจอร์เป้าหมายมีดังนี้
- การรองรับบิลด์แบบปิด
- การปักหมุดเวอร์ชันอ้างอิงของกฎในโหมดผู้ให้บริการ/ออฟไลน์ไปยังสำเนาในเครื่อง
- รีจิสทรีกลางของ Bazel มีการสนับสนุนจากชุมชนอย่างสม่ำเสมอและการนำกฎและโปรเจ็กต์หลักของ Bazel ไปใช้
- Bzlmod กลายเป็นเครื่องมือเริ่มต้นสำหรับการสร้างโปรเจ็กต์ Bazel
บิลด์ที่ลงนาม
Bazel จะจัดหาไบนารีที่เชื่อถือได้สำหรับ Windows และ Mac ซึ่งลงนามด้วยคีย์ของ Google ฟีเจอร์นี้ช่วยให้นักพัฒนาซอฟต์แวร์/DevOps แบบหลายแพลตฟอร์มระบุแหล่งที่มาของไบนารี Bazel และปกป้องระบบจากไบนารีที่เป็นอันตรายและไม่ได้รับการยืนยัน
API ของแพลตฟอร์มที่ได้มาตรฐาน
Platforms API ใหม่จะกำหนดการกำหนดค่าสถาปัตยกรรมสำหรับการสร้างหลายภาษาและหลายแพลตฟอร์มให้เป็นมาตรฐาน ฟีเจอร์นี้ช่วยให้นักพัฒนาแอปสามารถลดข้อผิดพลาดที่มีค่าใช้จ่ายสูงในระหว่างการพัฒนาและความซับซ้อนในการบิลด์ขนาดใหญ่ได้
สร้างเมตริกการวิเคราะห์
การวัดระยะไกลของ Bazel จะให้เมตริกเวลาในระยะการวิเคราะห์ ซึ่งช่วยให้นักพัฒนาซอฟต์แวร์เพิ่มประสิทธิภาพการบิลด์ของตนเองได้
การดำเนินการจากระยะไกลด้วย "Builds without the Bytes"
Builds without the Bytes จะเพิ่มประสิทธิภาพโดยอนุญาตให้ Bazel ดาวน์โหลดเฉพาะอาร์ติแฟกต์ที่จำเป็นเท่านั้น เพื่อป้องกันไม่ให้การบิลด์ติดขัดเนื่องจากแบนด์วิดท์ของเครือข่าย ฟีเจอร์ที่เพิ่มเข้ามาสำหรับการสร้างจากระยะไกลมีดังนี้
- ใช้การดาวน์โหลดแบบไม่พร้อมกันเพื่อให้การดำเนินการในเครื่องและระยะไกลเริ่มขึ้นทันทีที่ดาวน์โหลดเอาต์พุตที่ขึ้นต่อกัน
- เพิ่มการรองรับลิงก์สัญลักษณ์
- ดึงข้อมูลเอาต์พุตระดับกลางจากการดำเนินการระยะไกลเมื่อการสร้างเสร็จสมบูรณ์
*Copyright © 2022 JetBrains s.r.o. JetBrains และ IntelliJ เป็นเครื่องหมายการค้าจดทะเบียนของ JetBrains s.r.o.