ภาพรวม
สวัสดีปีใหม่ชุมชน Bazel ในปีใหม่นี้ เรามีแผนที่จะนํารายละเอียดแผนกลยุทธ์ปี 2023 ของเราไปใช้ ในปีที่แล้ว เราได้เผยแพร่แผนกลยุทธ์ปี 2022 ด้วยแผน Bazel 6.0 เราหวังว่าแผนกลยุทธ์ที่ระบุไว้จะให้ข้อมูลความต้องการเกี่ยวกับเครื่องมือสร้างของคุณ เนื่องจากโปรเจ็กต์ Bazel มีการเปลี่ยนแปลงอย่างต่อเนื่องเพื่อตอบสนองต่อความต้องการของคุณ เราจึงต้องการแชร์ข้อมูลอัปเดตเกี่ยวกับปี 2023
ด้วยการเปลี่ยนแปลงเหล่านี้ เราจึงต้องการแจ้งให้ชุมชนโอเพนซอร์สรับทราบข้อมูลอยู่เสมอ แผนกลยุทธ์นี้อธิบายถึงโครงการริเริ่มและการคาดการณ์ในปัจจุบันสําหรับอนาคตของการพัฒนา Bazel เพื่อให้คุณมองเห็นลําดับความสําคัญในปัจจุบันและโครงการที่ดําเนินอยู่
รุ่น Bazel 7.0
เราวางแผนที่จะนําการสนับสนุนระยะยาว (LTS) ของ Bazel 7.0 ไปให้คุณในช่วงปลายปี 2023 Bazel 7.0 มีเป้าหมายเพื่อส่งมอบสินค้าที่กําลังดําเนินการหลายรายการ และยังคงทํางานอย่างต่อเนื่องผ่านการปรับปรุงฟีเจอร์ที่ผู้ใช้ต้องการ
การแชร์แคชข้ามแพลตฟอร์มที่ดีขึ้น
เปิดใช้การแชร์อาร์ติแฟกต์ที่แคชไว้ในแพลตฟอร์มการสร้างในเครื่อง (Mac) และแพลตฟอร์มระยะไกล (Linux) ต่างๆ เป็นหลักเพื่อให้พัฒนา Java/Kotlin และ Android ได้ ส่งผลให้เกิดประสิทธิภาพที่ดีขึ้นและการใช้งานแคชที่มีประสิทธิภาพ
แอป Android ที่สร้างด้วย Bazel
ไฟล์ Manifest และการผสานการผสานทรัพยากรเป็น v30.1.3 เพื่อให้นักพัฒนาแอป Android สามารถใช้ฟีเจอร์การผสานไฟล์ Manifest ที่ใหม่กว่าได้ เช่น tools:node="merge"
การปรับปรุงการดําเนินการจากระยะไกล
Bazel 7.0 ให้การรองรับการดําเนินการแบบไม่พร้อมกัน ซึ่งช่วยให้การดําเนินการจากระยะไกลรวดเร็วขึ้นด้วยการทําให้สถานะดีขึ้น โดยระบุงาน
Bzlmod: ระบบการจัดการทรัพยากร Dependency ภายนอก
Bzlmod แก้ไขทรัพยากร Dependency ชั่วคราวโดยอัตโนมัติ ทําให้โปรเจ็กต์สามารถปรับขนาดได้ในขณะที่ยังคงทํางานได้อย่างรวดเร็วและมีประสิทธิภาพ Bazel 7.0 มีการเพิ่มประสิทธิภาพหลายอย่างในฟังก์ชันการจัดการทรัพยากร Dependency ภายนอกของ Bazel ซึ่งได้แก่
- Bzlmod เปิดโดยค่าเริ่มต้นสําหรับการจัดการทรัพยากร Dependency ภายนอกใน Bazel
- ล็อกการรองรับไฟล์ - เปิดใช้บิลด์ที่ดึงดูดความสนใจด้วย Bzlmod
- การรองรับผู้ให้บริการ/โหมดออฟไลน์ - อนุญาตให้ผู้ใช้เรียกใช้บิลด์ที่มีทรัพยากร Dependency ที่ดาวน์โหลดไว้ล่วงหน้า
- รองรับแคชที่เก็บทั้งหมด (ไม่เพียงดาวน์โหลดอาร์ติแฟกต์เท่านั้น รวมถึงเนื้อหาที่เก็บสุดท้ายด้วย)
- Bazel Central Registry ประกอบด้วยการสนับสนุนของชุมชนและการนํากฎและโปรเจ็กต์ Bazel ที่สําคัญไปใช้เป็นประจํา
สร้างเมตริกการวิเคราะห์
Bazel 7.0 แสดงเมตริกเวลาในการวิเคราะห์ข้อมูล ช่วยให้นักพัฒนาซอฟต์แวร์เพิ่มประสิทธิภาพบิลด์ของตนเองได้
บิลด์ที่ไม่ได้เปิดใช้ไบต์ตามค่าเริ่มต้น
บิลด์ที่ไม่มี Bytes เพิ่มประสิทธิภาพการทํางานโดยหลีกเลี่ยงการดาวน์โหลดอาร์ติแฟกต์ระดับกลาง และป้องกันไม่ให้บิลด์ของคอขวดในแบนด์วิดท์เครือข่าย ฟีเจอร์ที่เพิ่มมีดังนี้
การรองรับการกําจัดแคชระยะไกลด้วยบริการเช่า เพื่อให้ผู้ใช้ไม่พบข้อผิดพลาดเมื่ออาร์ติแฟกต์ถูกนําออกก่อนเวลาอันควร
แก้ไขช่องว่างของฟีเจอร์ในการรองรับ symlink
แสดงตัวเลือกในการเรียกข้อมูลเอาต์พุตระดับกลางจากการดําเนินการระยะไกล
สร้างประสิทธิภาพด้วย Skymeld
Bazel 7.0 ขอแนะนํา Skymeld ซึ่งเป็นโหมดการประเมินที่ลดเวลาได้รับสิทธิ์ของบิลด์แบบหลายเป้าหมาย Skymeld กําจัดอุปสรรคระหว่างการวิเคราะห์และระยะการดําเนินการเพื่อปรับปรุงความเร็วในการสร้าง โดยเฉพาะบิลด์ที่มีเป้าหมายระดับบนสุดหลายรายการ อย่างไรก็ตาม สําหรับบิลด์เป้าหมายเดียวนั้น คาดว่าไม่มีความแตกต่างอย่างมีนัยสําคัญ
ระบบนิเวศและเครื่องมือสําหรับ Bazel
แอป Android ที่สร้างด้วย Bazel
- ย้ายกฎดั้งเดิมของ Android ไปยัง Starlark: สําหรับ Bazel 7.0 กฎของ Android จะย้ายไปยัง Starlark เพื่อแยกการพัฒนาจาก Bazel ออก และเพื่อเปิดใช้การสนับสนุนของชุมชนที่ดียิ่งขึ้น นอกจากนี้ เราได้ทําให้กฎเหล่านี้เป็นอิสระจากไบนารี Bazel หลัก ซึ่งทําให้เราสามารถเผยแพร่บ่อยขึ้น
- การย้ายข้อมูลกฎ Android ไปยัง Starlark
- การรองรับ R8: อนุญาตให้นักพัฒนาแอป Android ใช้การเพิ่มประสิทธิภาพที่อัปเดต R8 ได้
- การติดตั้งบนอุปกรณ์เคลื่อนที่: ช่วยให้นักพัฒนาแอป Android ได้พัฒนา ทดสอบ และนําการเปลี่ยนแปลงแอป Android ไปใช้ได้อย่างรวดเร็วผ่านการติดตั้งบนอุปกรณ์เคลื่อนที่เวอร์ชันอัปเดต
เครื่องมือการสร้างข้อมูลซอฟต์แวร์ (BillOM) และเครื่องมือสําหรับการปฏิบัติตามข้อกําหนดของใบอนุญาต OSS
Bazel ช่วยให้นักพัฒนาซอฟต์แวร์สร้างข้อมูลเพื่อช่วยสร้าง SBOM เอาต์พุตข้อมูลนี้ในรูปแบบข้อความหรือ JSON และอาจจัดรูปแบบให้เป็นไปตามข้อกําหนดของ SPDX หรือ CycloneDX ได้อย่างง่ายดาย นอกจากนี้ กระบวนการนี้ยังใช้กฎเพื่อประกาศใบอนุญาตโมดูล Bazel ที่มี รวมถึงเครื่องมือในการสร้างกระบวนการเกี่ยวกับการประกาศเหล่านั้น ดูการใช้งาน Rules_license ที่กําลังดําเนินการอยู่ใน GitHub
บิลด์ที่ลงนาม
Bazel มีไบนารีที่เชื่อถือได้สําหรับ Windows และ Mac ที่รับรองด้วยคีย์ Google ฟีเจอร์นี้ช่วยให้นักพัฒนาซอฟต์แวร์/การพัฒนาหลายแพลตฟอร์มระบุแหล่งที่มาของไบนารีของ Bazel และปกป้องระบบจากไบนารีที่อาจเป็นอันตรายและไม่ได้รับการยืนยัน
การย้ายข้อมูลกฎ Java, C++ และ Python ไปยัง Starlark
ย้ายข้อมูลชุดกฎ Java, C++ และ Python ไปยัง Starlark โดยสมบูรณ์ ความพยายามนี้อนุญาตให้ผู้ใช้ Bazel แยกเฉพาะชุดกฎเท่านั้น ไม่ใช่ฐานของโค้ดไบนารี Bazel ซึ่งช่วยให้ผู้ใช้
- อัปเดตและปรับแต่งกฎตามต้องการ
- อัปเดตกฎแยกจาก Bazel
Bazel-JetBrains* รองรับ IntelliJ IDEA
การอัปเดตปลั๊กอิน IntelliJ ที่เพิ่มขึ้นเพื่อรองรับปลั๊กอิน JetBrains รุ่นล่าสุด
เราจัดทําแผนกลยุทธ์นี้มาเพื่อกําหนดเป้าหมาย และไม่ควรใช้การรับประกัน ซึ่งอาจมีการเปลี่ยนแปลงไปตามความคิดเห็นของนักพัฒนาซอฟต์แวร์และลูกค้า หรือโอกาสใหม่ๆ ในตลาด
หากต้องการรับการแจ้งเตือนเกี่ยวกับฟีเจอร์ใหม่ๆ รวมถึงการอัปเดตแผนกลยุทธ์นี้ ให้เข้าร่วมชุมชน Google Group
*ลิขสิทธิ์ © 2022 JetBrains s.r.o. JetBrains และ IntelliJ เป็นเครื่องหมายการค้าจดทะเบียนของ JetBrains s.r.o