سیاست انتشار

Bazel یک مدل انتشار پشتیبانی طولانی مدت (LTS) دارد که در آن یک نسخه اصلی هر 9 ماه و نسخه های فرعی هر ماه منتشر می شود. این صفحه خط‌مشی انتشار Bazel، از جمله نامزدهای انتشار، جدول زمانی، اطلاعیه‌ها و آزمایش‌ها را پوشش می‌دهد.

نسخه های Bazel را می توان در GitHub یافت.

نامزدها را آزاد کنید

یک نامزد انتشار برای نسخه جدید Bazel معمولاً در ابتدای هر ماه ایجاد می شود. کار توسط یک باگ انتشار در GitHub که تاریخ انتشار هدف را نشان می‌دهد ردیابی می‌شود و به مدیر نسخه فعلی اختصاص داده می‌شود. نامزدهای انتشار باید تمام تست‌های واحد Bazel را پشت سر بگذارند و هیچ رگرسیون ناخواسته‌ای را در پروژه‌های آزمایش‌شده در Buildkite نشان ندهند.

کاندیداهای آزادسازی در بازل دیسکاس اعلام می شوند. در روزهای بعد، تیم بازل گزارش‌های باگ جامعه را برای هرگونه رگرسیون در نامزدها نظارت می‌کند.

رها کردن

در صورت عدم کشف رگرسیون، نامزد پس از یک هفته رسما آزاد می شود. با این حال، رگرسیون ها می توانند آزادی نامزد آزادی را به تاخیر بیندازند. اگر رگرسیون‌هایی پیدا شد، تیم Bazel انتخاب‌های گیلاسی مربوطه را برای کاندیدای انتشار اعمال می‌کند تا آن رگرسیون‌ها را برطرف کند. اگر برای دو روز کاری متوالی که پس از یک هفته از اولین نامزد آزاد شروع می شود، رگرسیون دیگری پیدا نشد، نامزد آزاد می شود.

ویژگی‌های جدید پس از برش، در یک نامزد انتشار انتخاب نمی‌شوند. علاوه بر این، اگر یک ویژگی جدید باگ باشد، این ویژگی ممکن است از نامزد انتشار حذف شود. فقط اشکالاتی که پتانسیل تأثیرگذاری یا شکسته شدن نسخه انتشار را دارند، پس از قطع شدن در کاندید انتشار رفع می شوند.

انتشار فقط در روزی منتشر می شود که روز بعد یک روز کاری است.

اگر مشکل مهمی در آخرین نسخه یافت شود، تیم Bazel با اعمال اصلاح بر روی نسخه، یک انتشار پچ ایجاد می کند. از آنجایی که این وصله به جای ایجاد نسخه جدید، نسخه موجود را به روز می کند، نامزد انتشار وصله می تواند پس از دو روز کاری منتشر شود.

آزمایش کردن

یک بیلد شبانه از تمام پروژه‌هایی که در ci.bazel.build اجرا می‌شوند، با استفاده از باینری‌های Bazel ساخته شده در سر، و باینری‌های آزاد اجرا می‌شوند. پروژه هایی که قرار است تحت تاثیر یک تغییر ناگهانی قرار گیرند، اطلاع رسانی می شوند.

هنگامی که یک نامزد انتشار صادر می شود، سایر پروژه های Google مانند TensorFlow در مجموعه آزمایشی کامل خود با استفاده از باینری های کاندید انتشار آزمایش می شوند. اگر پروژه مهمی با استفاده از Bazel دارید، توصیه می‌کنیم یک فرآیند آزمایش خودکار ایجاد کنید که نامزد انتشار فعلی را ردیابی کند و هرگونه رگرسیون را گزارش کنید.