ریلیز چیک لسٹ (npm + macOS)¶
ریپو روٹ سے pnpm (Node 22+) استعمال کریں۔ ٹیگ/پبلش کرنے سے پہلے ورکنگ ٹری کو صاف رکھیں۔
آپریٹر ٹرگر¶
جب آپریٹر “release” کہے، فوراً یہ پری فلائٹ کریں (جب تک رکاوٹ نہ ہو کوئی اضافی سوال نہ کریں):
- اس دستاویز اور
docs/platforms/mac/release.mdکو پڑھیں۔ ~/.profileسے env لوڈ کریں اور تصدیق کریں کہSPARKLE_PRIVATE_KEY_FILE+ App Store Connect ویری ایبلز سیٹ ہیں (SPARKLE_PRIVATE_KEY_FILE کو~/.profileمیں ہونا چاہیے)۔- اگر ضرورت ہو تو
~/Library/CloudStorage/Dropbox/Backup/Sparkleسے Sparkle کیز استعمال کریں۔
- ورژن اور میٹاڈیٹا
- [ ]
package.jsonورژن بڑھائیں (مثلاً2026.1.29)۔ - [ ] ایکسٹینشن پیکیج ورژنز + چینج لاگز ہم آہنگ کرنے کے لیے
pnpm plugins:syncچلائیں۔ - [ ] CLI/ورژن اسٹرنگز اپڈیٹ کریں:
src/cli/program.tsاور Baileys یوزر ایجنٹsrc/provider-web.tsمیں۔ - [ ] پیکیج میٹاڈیٹا (نام، تفصیل، ریپوزٹری، کی ورڈز، لائسنس) کی تصدیق کریں اور یہ کہ
binمیپopenclawکے لیےopenclaw.mjsکی طرف اشارہ کرتا ہے۔ - [ ] اگر ڈیپنڈنسیز بدلی ہیں تو
pnpm installچلائیں تاکہpnpm-lock.yamlتازہ ہو۔
- بلڈ اور آرٹی فیکٹس
- [ ] اگر A2UI ان پٹس بدلے ہیں تو
pnpm canvas:a2ui:bundleچلائیں اور کسی بھی اپڈیٹ شدہsrc/canvas-host/a2ui/a2ui.bundle.jsکو کمیٹ کریں۔ - [ ]
pnpm run build(جس سےdist/دوبارہ بنتا ہے)۔ - [ ] تصدیق کریں کہ npm پیکیج
filesمیں تمام مطلوبہdist/*فولڈرز شامل ہیں (خصوصاًdist/node-host/**اورdist/acp/**ہیڈلیس نوڈ + ACP CLI کے لیے)۔ - [ ] تصدیق کریں کہ
dist/build-info.jsonموجود ہے اور اس میں متوقعcommitہیش شامل ہے (CLI بینر npm انسٹالز کے لیے یہی استعمال کرتا ہے)۔ - [ ] اختیاری: بلڈ کے بعد
npm pack --pack-destination /tmp؛ ٹاربال کے مواد کا معائنہ کریں اور GitHub ریلیز کے لیے محفوظ رکھیں (اسے کمیٹ نہ کریں)۔
- چینج لاگ اور دستاویزات
- [ ]
CHANGELOG.mdکو صارف کے سامنے نمایاں نکات کے ساتھ اپڈیٹ کریں (اگر فائل موجود نہ ہو تو بنائیں)؛ اندراجات کو ورژن کے لحاظ سے سختی سے نزولی ترتیب میں رکھیں۔ - [ ] یقینی بنائیں کہ README کی مثالیں/فلگز موجودہ CLI رویے سے مطابقت رکھتے ہیں (خاص طور پر نئی کمانڈز یا اختیارات)۔
- تصدیق
- [ ]
pnpm build - [ ]
pnpm check - [ ]
pnpm test(یا اگر کوریج آؤٹ پٹ درکار ہو توpnpm test:coverage) - [ ]
pnpm release:check(npm pack کے مواد کی تصدیق کرتا ہے) - [ ]
OPENCLAW_INSTALL_SMOKE_SKIP_NONROOT=1 pnpm test:install:smoke(Docker انسٹال اسموک ٹیسٹ، فاسٹ پاتھ؛ ریلیز سے پہلے لازم) - اگر فوراً پچھلی npm ریلیز معلوم طور پر خراب ہو تو پری انسٹال مرحلے کے لیے
OPENCLAW_INSTALL_SMOKE_PREVIOUS=<last-good-version>یاOPENCLAW_INSTALL_SMOKE_SKIP_PREVIOUS=1سیٹ کریں۔ - [ ] (اختیاری) مکمل انسٹالر اسموک (نان روٹ + CLI کوریج شامل کرتا ہے):
pnpm test:install:smoke - [ ] (اختیاری) انسٹالر E2E (Docker،
curl -fsSL https://openclaw.ai/install.sh | bashچلاتا ہے، آن بورڈ کرتا ہے، پھر حقیقی ٹول کالز چلاتا ہے): pnpm test:install:e2e:openai(درکار:OPENAI_API_KEY)pnpm test:install:e2e:anthropic(درکار:ANTHROPIC_API_KEY)pnpm test:install:e2e(دونوں کیز درکار؛ دونوں فراہم کنندگان چلاتا ہے)- [ ] (اختیاری) اگر تبدیلیاں send/receive راستوں کو متاثر کرتی ہوں تو ویب گیٹ وے کی اسپاٹ چیک کریں۔
- macOS ایپ (Sparkle)
- [ ] macOS ایپ بلڈ + سائن کریں، پھر تقسیم کے لیے zip بنائیں۔
- [ ] Sparkle ایپ کاسٹ بنائیں (HTML نوٹس
scripts/make_appcast.shکے ذریعے) اورappcast.xmlاپڈیٹ کریں۔ - [ ] ایپ zip (اور اختیاری dSYM zip) کو GitHub ریلیز کے ساتھ منسلک کرنے کے لیے تیار رکھیں۔
- [ ] درست کمانڈز اور مطلوبہ env vars کے لیے macOS release پر عمل کریں۔
APP_BUILDلازماً عددی + یکساں بڑھتا ہوا ہو (کوئی-betaنہیں) تاکہ Sparkle ورژنز کا درست موازنہ کرے۔- اگر نوٹریائزیشن کر رہے ہوں تو App Store Connect API env vars سے بنے ہوئے
openclaw-notaryکی چین پروفائل استعمال کریں (دیکھیں macOS release)۔
- شائع کریں (npm)
- [ ] تصدیق کریں کہ git اسٹیٹس صاف ہے؛ ضرورت کے مطابق کمیٹ اور پُش کریں۔
- [ ] ضرورت ہو تو
npm login(2FA کی تصدیق)۔ - [ ]
npm publish --access public(پری ریلیزز کے لیے--tag betaاستعمال کریں)۔ - [ ] رجسٹری کی تصدیق کریں:
npm view openclaw version،npm view openclaw dist-tags، اورnpx -y openclaw@X.Y.Z --version(یا--help)۔
خرابیوں کا ازالہ (2.0.0-beta2 ریلیز سے نوٹس)¶
- npm pack/publish لٹک جاتا ہے یا بہت بڑا ٹاربال بناتا ہے:
dist/OpenClaw.appمیں موجود macOS ایپ بنڈل (اور ریلیز زپس) پیکیج میں شامل ہو جاتے ہیں۔ حل:package.jsonکےfilesکے ذریعے پبلش مواد کو وائٹ لسٹ کریں (dist سب ڈائریکٹریز، ڈاکس، اسکلز شامل کریں؛ ایپ بنڈلز خارج کریں)۔npm pack --dry-runکے ذریعے تصدیق کریں کہdist/OpenClaw.appدرج نہیں ہے۔ - dist-tags کے لیے npm auth ویب لوپ: OTP پرامپٹ حاصل کرنے کے لیے لیگیسی auth استعمال کریں:
NPM_CONFIG_AUTH_TYPE=legacy npm dist-tag add openclaw@X.Y.Z latestnpxکی تصدیقECOMPROMISED: Lock compromisedکے ساتھ ناکام ہوتی ہے: تازہ کیش کے ساتھ دوبارہ کوشش کریں:NPM_CONFIG_CACHE=/tmp/npm-cache-$(date +%s) npx -y openclaw@X.Y.Z --version- دیر سے فکس کے بعد ٹیگ کو دوبارہ پوائنٹ کرنا ہو: ٹیگ کو فورس اپڈیٹ کریں اور پُش کریں، پھر یقینی بنائیں کہ GitHub ریلیز کے اثاثے اب بھی مطابقت رکھتے ہیں:
git tag -f vX.Y.Z && git push -f origin vX.Y.Z
- GitHub ریلیز + ایپ کاسٹ
- [ ] ٹیگ کریں اور پُش کریں:
git tag vX.Y.Z && git push origin vX.Y.Z(یاgit push --tags)۔ - [ ]
vX.Y.Zکے لیے GitHub ریلیز بنائیں/تازہ کریں جس کا عنوانopenclaw X.Y.Zہو (صرف ٹیگ نہیں)؛ باڈی میں اس ورژن کے لیے مکمل چینج لاگ سیکشن (Highlights + Changes + Fixes) شامل ہونا چاہیے، inline (خالی لنکس نہیں)، اور باڈی کے اندر عنوان دوبارہ نہ دہرایا جائے۔ - [ ] اثاثے منسلک کریں:
npm packٹاربال (اختیاری)،OpenClaw-X.Y.Z.zip، اورOpenClaw-X.Y.Z.dSYM.zip(اگر بنائے گئے ہوں)۔ - [ ] اپڈیٹ شدہ
appcast.xmlکو کمیٹ کریں اور پُش کریں (Sparkle main سے فیڈ لیتا ہے)۔ - [ ] ایک صاف عارضی ڈائریکٹری سے (کوئی
package.jsonنہیں)،npx -y openclaw@X.Y.Z send --helpچلائیں تاکہ انسٹال/CLI انٹری پوائنٹس کی تصدیق ہو سکے۔ - [ ] اعلان کریں/ریلیز نوٹس شیئر کریں۔
پلگ اِن پبلش اسکوپ (npm)¶
ہم صرف موجودہ npm پلگ اِنز کو @openclaw/* اسکوپ کے تحت شائع کرتے ہیں۔ وہ بنڈلڈ
پلگ اِنز جو npm پر نہیں ہیں صرف ڈسک ٹری رہتے ہیں (پھر بھی
extensions/** میں بھیجے جاتے ہیں)۔
فہرست اخذ کرنے کا عمل:
npm search @openclaw --jsonچلائیں اور پیکیج نام حاصل کریں۔extensions/*/package.jsonناموں کے ساتھ موازنہ کریں۔- صرف انٹرسیکشن (جو پہلے سے npm پر ہیں) شائع کریں۔
موجودہ npm پلگ اِن فہرست (ضرورت کے مطابق اپڈیٹ کریں):
- @openclaw/bluebubbles
- @openclaw/diagnostics-otel
- @openclaw/discord
- @openclaw/feishu
- @openclaw/lobster
- @openclaw/matrix
- @openclaw/msteams
- @openclaw/nextcloud-talk
- @openclaw/nostr
- @openclaw/voice-call
- @openclaw/zalo
- @openclaw/zalouser
ریلیز نوٹس میں نئے اختیاری بنڈل پلگ اِنز کا بھی ذکر ہونا چاہیے جو بطورِ طے شدہ فعال نہیں ہوتے (مثال: tlon)۔