מפת דרכים של Bazel

סקירה כללית

פרויקט Bazel מתפתח כל הזמן בתגובה לצרכים שלכם – פיתוח תכונות ומתן תמיכה, תחזוקה, חשיבה מחדש ושיפור הביצועים של מוצר הליבה.

במסגרת השינויים האלה, אנחנו שואפים לעדכן את קהילת הקוד הפתוח ולהשאיר אותה פתוחה. מפת הדרכים הזו מתארת את היוזמות והחיזויים הנוכחיים לעתיד של Bazel, ומספקת לכם גישה לעדיפויות העכשוויות ולפרויקטים שוטפים.

מפת הדרכים הזו מהווה תמונת מצב של יעדים, ואין לראות בה אחריות. העדיפויות עשויות להשתנות בהתאם למשוב מהמפתחים ומהלקוחות, או הזדמנויות חדשות בשוק.

כדי לקבל התראות על תכונות חדשות, כולל עדכונים במפת הדרכים, אפשר להצטרף לקהילה של קבוצת Google.

רבעון 4 – מהדורת Bazel 6.0

Q4 כולל את Bazel 6.0 – הגרסה החדשה של תמיכה לטווח ארוך (LTS). Bazel 6.0 מתוכנן לכלול תכונות מתקדמות חדשות ומבוקשות לקהילה, לניהול קשרי תלות, לפיתוח באמצעות Android ועוד.

Bzlmod: מערכת לניהול תלות חיצונית

פלטפורמת Bzlmod פותרת באופן אוטומטי יחסי תלות חולפים, ומאפשרת לפרויקטים להרחיב את היקף הפעילות שלהם תוך שמירה על פתרון מהיר וחסכוני במשאבים. הכלי Bzlmod יושק באופן ניסיוני ב-Bazel 5.0, והוא יהיה זמין בדרך כלל ויספק פתרון לבעיה של התלות ביהלומים.

  • Bzlmod משתנה מ'ניסיוני' ל'זמין בדרך כלל'
  • כולל תמיכה ב-rules_jvm_external, משתמשים יכולים להוריד תלות של Maven בפרויקטים של Java
  • המדריך של Bzlmod Migration מספק כלים, סקריפטים ותיעוד לצוותים שרוצים לאמץ את Bzlmod
  • המאגר המרכזי של Bazel מארח כללי ליבה של Bazel BUILD (rules_jvm_external, rules_go, rules_python, rules_nodejs) ותלויות מרכזיות שנדרשות עבור Bzlmod

מידע נוסף על הפיתוח הזה זמין בעדכון הקהילה של Bzlmod, או לקרוא את מסמך העיצוב המקורי.

יצירת אפליקציות ל-Android עם Bazel

Bazel 6.0 יכלול כלים משופרים ותרומות לתכונות משולבות של הקהילה. לקראת השקת המוצר הנוסף ובסיס קוד הולך וגדל, צוות Bazel יגדיר עדיפות בשילוב של כלים ל-Android עם כללי Bazel ל-Android.

  • מתבצע עדכון של D8 לגרסה 3.3.28 והגדרה שלו כברירת המחדל של דקס.
  • מיזוגים של תכונות מרכזיות שנוספו לקהילה 5.X, כולל תמיכה בתכונות הבאות:
    • עובדים קבועים עם D8
    • שידול באמצעות D8
    • מיזוג תגי "uses-permissions" במניפסטים של Android
    • מכשירי Multiplex בעיבוד משאבי Android

מחזיקי כלים אופציונליים

סקר שביעות הרצון של המפתח שלנו הראה שמחברים של כללים רוצים תמיכה בפיתוח נוסף של כלים. Bazel 6.0 יאפשר למחברים לכתוב כללים באמצעות כלי אופציונלי בעל ביצועים גבוהים, כשהוא זמין להטמעה בפלטפורמות אחרות.

Bazel-JetBgreens* תמיכת IntelliJ IDEA

JetB מלוןs עבדה בשיתוף עם Bazel כדי לנהל ביחד את הפלאגין Bazel IntelliJ IDEA, שתפקידו לתמוך במטרה של הגברת הקהילה וביכולת של גיבוש בקשות לתכונות ולפיתוח.

  • גרסה 2022.2 של פלאגין IntelliJ מספקת תמיכה לגרסה האחרונה של הפלאגין JetBgreens
  • מגביר את התאימות לפיתוח מרחוק
  • מאפשר פיתוח מבוסס-קהילה לתכונות טיסה, כמו תמיכה ב-Scala

מידע נוסף על ההתפתחות הזו זמין בהודעה בבלוג של Bazel-JetBgreens.

פיתוח עתידי

מעתה והלאה, צוות Bazel התחיל לפתח או צפוי לתעדף את התכונות הבאות בשנת 2023, כולל.

שיפור כללי ה-build של Android של Bazel&33

המשיכו להשקיע בחוויית הפיתוח של אפליקציות ל-Android, והתמקדו בתהליך העבודה דרך build, בדיקה ופריסה.

  • העברה אל R8 ותמיכה
  • עדכונים לכללי Android, כולל תרגום לשפה של Starlark
  • תמיכה ב-App Bundle
  • תמיכה בגרסאות NDK האחרונות
  • כיסוי קוד בדיקה

כלי תאימות לרישיונות OSS

המפתחים ביקשו בודק תאימות חזק לרישיון כדי להבטיח את הזמינות והאבטחה של החבילות הכלולות. פרויקט זה מספק מערך של כללים וכלים שנועדו לזהות ולצמצם סיכונים של תאימות ורישיון המשויכים לרכיב תוכנה נתון. תכונות היעד כוללות:

  • היכולת לערוך ביקורת על החבילות שבהן נעשה שימוש ביעד מסוים
  • היכולת ליצור בדיקות תאימות רישיון ספציפיות לארגון.

בקישור הבא אפשר לראות את תהליך כללי_הרישיון הקיים ב-GitHub.

Bzlmod: מערכת לניהול תלות חיצונית

לאחר ההשקה, ב-Bzlmod משפרת את האמינות ויכולת ההתאמה של יחסי תלות חולפים. במהלך שלוש השנים הבאות, כדאי ל-Bzlmod להחליף את WORKSPACE כמערכת ברירת המחדל לניהול קשרי תלות של Bazel workspace. התכונות המטורגטות כוללות:

  • תמיכה לבנייה הרמטית
  • כשמצמידים עותק של גרסת עזר ממוחשב/אופליין, עותק של הכללים המקומיים
  • Bazel Central Registry כוללת תרומה קהילתית קבועה ואימוץ של כללי מפתח ו-Bazel;
  • Bzlmod הוא כלי ברירת המחדל לבניית פרויקטים של Bazel

גרסאות build חתומות

Bazel תספק קבצים בינאריים מהימנים ל-Windows ול-Mac החתומים על ידי מפתחות של Google. התכונה הזאת מאפשרת למפתחים או למפתחים של פלטפורמות מרובות לזהות את המקור של קבצים בינאריים של Bazel ולהגן על המערכות שלהם מבינאריים זדוניים ולא מאומתים.

API רגיל לפלטפורמות

ה-APIs של ה-Platforms API יחזור לתצורה הרגילה של הארכיטקטורה הבנויה במגוון שפות ובפלטפורמות מרובות. באמצעות התכונה הזו, מפתחים יכולים לצמצם שגיאות יקרות בזמן הפיתוח והמורכבות של גרסאות build גדולות.

בניית מדדי ניתוח

טלמטריה של Bazel תספק מדדי זמן בשלבים, שיאפשרו למפתחים לבצע אופטימיזציה של ביצועי ה-build.

ביצוע מרחוק באמצעות "בניינים ללא בייטים"

גרסאות ללא בייטים יעברו אופטימיזציה של הביצועים בכך שהן יאפשרו ל-Bazel להוריד פריטי מידע שנוצרים בתהליך פיתוח (Artifact) בלבד, וכך למנוע מיצירת גרסאות צוואר בקבוק ברוחב הפס של הרשת. התכונות שנוספו לגרסאות build מרחוק כוללות:

  • משתמשים בהורדה אסינכרונית כדי לאפשר פעולה של פעולות מקומיות ומרוחקות לאחר הורדת הפלט התלוי
  • הוספה של תמיכה ב-Simlinks
  • אחזור פלט ביניים מפעולות מרוחקות לאחר השלמת ה-build

*Copyright © 2022 JetBgreens s.r.o. JetBgreens ו-IntelliJ הם סימנים מסחריים רשומים של JetBgreens s.r.o.