سياسة الإصدار
لدى OpenClaw ثلاثة مسارات إصدار عامة:- stable: إصدارات موسومة تُنشر إلى npm
betaافتراضيًا، أو إلى npmlatestعند الطلب الصريح - beta: وسوم الإصدارات التمهيدية التي تُنشر إلى npm
beta - dev: الرأس المتحرك لفرع
main
تسمية الإصدارات
- إصدار الإصدار المستقر:
YYYY.M.D- وسم Git:
vYYYY.M.D
- وسم Git:
- إصدار التصحيح للإصدار المستقر:
YYYY.M.D-N- وسم Git:
vYYYY.M.D-N
- وسم Git:
- إصدار beta التمهيدي:
YYYY.M.D-beta.N- وسم Git:
vYYYY.M.D-beta.N
- وسم Git:
- لا تُضِف أصفارًا بادئة للشهر أو اليوم
latestيعني إصدار npm المستقر المُرقّى الحاليbetaيعني هدف تثبيت beta الحالي- تُنشر الإصدارات المستقرة وتصحيحات الإصدارات المستقرة إلى npm
betaافتراضيًا؛ ويمكن لمشغّلي الإصدار استهدافlatestصراحةً، أو ترقية بنية beta مُعتمدة لاحقًا - كل إصدار من OpenClaw يشحن حزمة npm وتطبيق macOS معًا
وتيرة الإصدار
- تبدأ الإصدارات عبر beta أولًا
- يتبع الإصدار المستقر فقط بعد التحقق من أحدث إصدار beta
- إجراء الإصدار التفصيلي، والموافقات، وبيانات الاعتماد، وملاحظات الاستعادة مخصّصة للمشرفين فقط
الفحوصات التمهيدية للإصدار
- شغّل
pnpm build && pnpm ui:buildقبلpnpm release:checkحتى تتوفر عناصر الإصدار المتوقعةdist/*وحزمة واجهة المستخدم Control UI من أجل خطوة التحقق من الحزمة - شغّل
pnpm release:checkقبل كل إصدار موسوم - الفحص التمهيدي لـ npm على الفرع الرئيسي يشغّل أيضًا
OPENCLAW_LIVE_TEST=1 OPENCLAW_LIVE_CACHE_TEST=1 pnpm test:live:cacheقبل تغليف tarball، باستخدام كلٍّ من أسرار سير العملOPENAI_API_KEYوANTHROPIC_API_KEY - شغّل
RELEASE_TAG=vYYYY.M.D node --import tsx scripts/openclaw-npm-release-check.ts(أو وسم beta/التصحيح المطابق) قبل الموافقة - بعد النشر إلى npm، شغّل
node --import tsx scripts/openclaw-npm-postpublish-verify.ts YYYY.M.D(أو إصدار beta/التصحيح المطابق) للتحقق من مسار التثبيت المنشور في السجل داخل بادئة مؤقتة جديدة - تستخدم أتمتة الإصدار لدى المشرفين الآن أسلوب الفحص التمهيدي ثم الترقية:
- يجب أن يجتاز النشر الفعلي إلى npm
preflight_run_idناجحًا - إصدارات npm المستقرة تضبط افتراضيًا على
beta - يمكن أن يستهدف نشر npm المستقر
latestصراحةً عبر مُدخل سير العمل - ما زالت ترقية npm المستقرة من
betaإلىlatestمتاحة بوصفها وضعًا يدويًا صريحًا ضمن سير العمل الموثوقOpenClaw NPM Release - ما زال وضع الترقية هذا يحتاج إلى
NPM_TOKENصالح في بيئةnpm-releaseلأن إدارةdist-tagفي npm منفصلة عن النشر الموثوق macOS Releaseالعام مخصّص للتحقق فقط- يجب أن يجتاز النشر الخاص الفعلي لتطبيق mac بنجاح مرحلتي
preflight_run_idوvalidate_run_idالخاصتين بـ mac الخاص - تعمل مسارات النشر الفعلية على ترقية العناصر المُحضّرة بدلًا من إعادة بنائها مرة أخرى
- يجب أن يجتاز النشر الفعلي إلى npm
- بالنسبة إلى إصدارات التصحيح المستقرة مثل
YYYY.M.D-N، يتحقق مُراجع ما بعد النشر أيضًا من مسار الترقية نفسه داخل بادئة مؤقتة منYYYY.M.DإلىYYYY.M.D-Nحتى لا تترك تصحيحات الإصدار تثبيتات عامة أقدم بصمت على الحمولة الأساسية للإصدار المستقر - يفشل الفحص التمهيدي لإصدار npm بشكل مغلق ما لم تتضمن tarball كلا الملفين
dist/control-ui/index.htmlوحمولة غير فارغة ضمنdist/control-ui/assets/حتى لا نشحن لوحة تحكم متصفح فارغة مرة أخرى - إذا لامس عمل الإصدار تخطيط CI، أو بيانات توقيت الإضافات، أو مصفوفات الاختبار
السريعة، فأعد توليد وراجِع مخرجات مصفوفة سير العمل
checks-fast-extensionsالمملوكة للمخطِّط من.github/workflows/ci.ymlقبل الموافقة حتى لا تصف ملاحظات الإصدار تخطيط CI قديمًا - يتضمن استعداد إصدار macOS المستقر أيضًا أسطح المحدِّث:
- يجب أن ينتهي إصدار GitHub بملفات
.zipو.dmgو.dSYM.zipالمعبّأة - يجب أن يشير
appcast.xmlعلىmainإلى ملف zip المستقر الجديد بعد النشر - يجب أن يحتفظ التطبيق المعبّأ بمعرّف حزمة غير مخصّص للتصحيح، وعنوان URL
غير فارغ لخلاصة Sparkle، و
CFBundleVersionيساوي أو يتجاوز حد بناء Sparkle الأدنى القياسي لذلك الإصدار
- يجب أن ينتهي إصدار GitHub بملفات
مُدخلات سير عمل NPM
يقبلOpenClaw NPM Release مُدخلات يتحكم فيها المشغّل كما يلي:
tag: وسم الإصدار المطلوب، مثلv2026.4.2أوv2026.4.2-1أوv2026.4.2-beta.1preflight_only: القيمةtrueللتحقق/البناء/التغليف فقط، وfalseلمسار النشر الفعليpreflight_run_id: مطلوب في مسار النشر الفعلي حتى يعيد سير العمل استخدام tarball المُحضّر من تشغيل الفحص التمهيدي الناجحnpm_dist_tag: وسم npm المستهدف لمسار النشر؛ والقيمة الافتراضية هيbetapromote_beta_to_latest: القيمةtrueلتخطي النشر ونقل بنيةbetaمستقرة منشورة مسبقًا إلىlatest
- يمكن لوسوم الإصدارات المستقرة والتصحيحية النشر إلى
betaأوlatest - يمكن لوسوم إصدارات beta التمهيدية النشر إلى
betaفقط - يجب أن يستخدم مسار النشر الفعلي قيمة
npm_dist_tagنفسها المستخدمة أثناء الفحص التمهيدي؛ ويتحقق سير العمل من تلك البيانات الوصفية قبل متابعة النشر - يجب أن يستخدم وضع الترقية وسمًا مستقرًا أو تصحيحيًا، و
preflight_only=false، وpreflight_run_idفارغًا، وnpm_dist_tag=beta - يتطلب وضع الترقية أيضًا
NPM_TOKENصالحًا في بيئةnpm-releaseلأنnpm dist-tag addما زال يحتاج إلى مصادقة npm العادية
تسلسل إصدار npm المستقر
عند إصدار إصدار npm مستقر:- شغّل
OpenClaw NPM Releaseمعpreflight_only=true - اختر
npm_dist_tag=betaلتدفق beta-first العادي، أوlatestفقط عندما تريد عمدًا نشر إصدار مستقر مباشر - احفظ
preflight_run_idالناجح - شغّل
OpenClaw NPM Releaseمرة أخرى معpreflight_only=false، وtagنفسه، وnpm_dist_tagنفسه، وpreflight_run_idالمحفوظ - إذا وصل الإصدار إلى
beta، فشغّلOpenClaw NPM Releaseلاحقًا باستخدامtagالمستقر نفسه، وpromote_beta_to_latest=true، وpreflight_only=false، وpreflight_run_idفارغ، وnpm_dist_tag=betaعندما تريد نقل تلك البنية المنشورة إلىlatest
npm-release ووجود NPM_TOKEN
صالح في تلك البيئة.
ويُبقي ذلك مسار النشر المباشر ومسار الترقية من beta أولًا
موثَّقين ومرئيين للمشغّل.
المراجع العامة
.github/workflows/openclaw-npm-release.ymlscripts/openclaw-npm-release-check.tsscripts/package-mac-dist.shscripts/make_appcast.sh
openclaw/maintainers/release/README.md
لدليل التشغيل الفعلي.