Reliz uchun tekshiruv roʻyxati (npm + macOS)¶
Repo ildizidan pnpm (Node 22+) dan foydalaning. Teg qoʻyish/nashr qilishdan oldin ishchi daraxt toza ekanini tekshiring.
Operatorni ishga tushirish¶
Operator “release” deganda, darhol quyidagi preflight bosqichlarini bajaring (toʻsiq boʻlmasa, ortiqcha savollarsiz):
- Ushbu hujjatni va
docs/platforms/mac/release.mdni oʻqing. ~/.profiledan env o‘zgaruvchilarni yuklang vaSPARKLE_PRIVATE_KEY_FILE+ App Store Connect o‘zgaruvchilari o‘rnatilganini tasdiqlang (SPARKLE_PRIVATE_KEY_FILE~/.profileichida bo‘lishi kerak).- Zarur bo‘lsa, Sparkle kalitlarini
~/Library/CloudStorage/Dropbox/Backup/Sparkledan oling.
- Versiya va metamaʼlumotlar
- [ ]
package.jsonversiyasini oshiring (masalan,2026.1.29). - [ ] Extension paket versiyalari + changeloglarni moslashtirish uchun
pnpm plugins:syncni ishga tushiring. - [ ] CLI/versiya satrlarini yangilang:
src/cli/program.tsva Baileys user agent nisrc/provider-web.tsichida. - [ ] Paket metamaʼlumotlarini (name, description, repository, keywords, license) tasdiqlang va
binxaritasiopenclawuchunopenclaw.mjsga ishora qilayotganini tekshiring. - [ ] Agar dependency’lar oʻzgargan boʻlsa,
pnpm-lock.yamlyangiligi uchunpnpm installni ishga tushiring.
- Build va artefaktlar
- [ ] Agar A2UI kirishlari oʻzgargan boʻlsa,
pnpm canvas:a2ui:bundleni ishga tushiring va yangilangansrc/canvas-host/a2ui/a2ui.bundle.jsfaylini commit qiling. - [ ]
pnpm run build(dist/ni qayta generatsiya qiladi). - [ ] npm paketidagi
filesbarcha zarurdist/*papkalarni (ayniqsa headless node + ACP CLI uchundist/node-host/**vadist/acp/**) oʻz ichiga olganini tekshiring. - [ ]
dist/build-info.jsonmavjudligini va unda kutilgancommitxeshi borligini tasdiqlang (npm o‘rnatishlarida CLI banner shundan foydalanadi). - [ ] Ixtiyoriy: build’dan so‘ng
npm pack --pack-destination /tmp; tarball tarkibini tekshiring va uni GitHub relizi uchun saqlab qo‘ying (commit qilmang).
- Changelog va hujjatlar
- [ ]
CHANGELOG.mdni foydalanuvchiga ko‘rinadigan yangiliklar bilan yangilang (agar yo‘q bo‘lsa, fayl yarating); yozuvlar versiya bo‘yicha qatʼiy kamayish tartibida bo‘lsin. - [ ] README misollari/flag’lari joriy CLI xatti-harakatiga (ayniqsa yangi buyruqlar yoki opsiyalar) mos ekanini tekshiring.
- Validatsiya
- [ ]
pnpm build - [ ]
pnpm check - [ ]
pnpm test(yoki coverage kerak bo‘lsapnpm test:coverage) - [ ]
pnpm release:check(npm pack tarkibini tekshiradi) - [ ]
OPENCLAW_INSTALL_SMOKE_SKIP_NONROOT=1 pnpm test:install:smoke(Docker install smoke test, tezkor yo‘l; relizdan oldin majburiy) - Agar oldingi npm relizi buzilganligi maʼlum bo‘lsa, preinstall bosqichi uchun
OPENCLAW_INSTALL_SMOKE_PREVIOUS=<last-good-version>yokiOPENCLAW_INSTALL_SMOKE_SKIP_PREVIOUS=1ni o‘rnating. - [ ] (Ixtiyoriy) To‘liq installer smoke (non-root + CLI coverage qo‘shadi):
pnpm test:install:smoke - [ ] (Ixtiyoriy) Installer E2E (Docker,
curl -fsSL https://openclaw.ai/install.sh | bashni ishga tushiradi, onboarding qiladi, so‘ng haqiqiy tool call’larni bajaradi): pnpm test:install:e2e:openai(OPENAI_API_KEYtalab qilinadi)pnpm test:install:e2e:anthropic(ANTHROPIC_API_KEYtalab qilinadi)pnpm test:install:e2e(ikkala kalit ham talab qilinadi; ikkala provider’ni ishga tushiradi)- [ ] (Ixtiyoriy) O‘zgartirishlaringiz yuborish/qabul qilish yo‘llariga taʼsir qilgan bo‘lsa, web gateway’ni tezkor tekshirib chiqing.
- macOS ilovasi (Sparkle)
- [ ] macOS ilovasini build qiling + imzolang, so‘ng tarqatish uchun zip qiling.
- [ ] Sparkle appcast’ni (HTML izohlar
scripts/make_appcast.shorqali) generatsiya qiling vaappcast.xmlni yangilang. - [ ] Ilova zip faylini (va ixtiyoriy dSYM zip) GitHub reliziga biriktirish uchun tayyor saqlang.
- [ ] Aniq buyruqlar va zarur env o‘zgaruvchilar uchun macOS release ga amal qiling.
APP_BUILDraqamli va monoton bo‘lishi kerak (-betasiz), shunda Sparkle versiyalarni to‘g‘ri solishtiradi.- Agar notarization qilinsa, App Store Connect API env o‘zgaruvchilaridan yaratilgan
openclaw-notarykeychain profilidan foydalaning (qarang: macOS release).
- Nashr qilish (npm)
- [ ] git status toza ekanini tasdiqlang; kerak bo‘lsa commit va push qiling.
- [ ] Zarur bo‘lsa,
npm login(2FA ni tekshiring). - [ ]
npm publish --access public(pre-relizlar uchun--tag betadan foydalaning). - [ ] Registry’ni tekshiring:
npm view openclaw version,npm view openclaw dist-tags, vanpx -y openclaw@X.Y.Z --version(yoki--help).
Nosozliklarni bartaraf etish (2.0.0-beta2 relizidan eslatmalar)¶
- npm pack/publish osilib qoladi yoki juda katta tarball hosil qiladi:
dist/OpenClaw.appichidagi macOS app bundle (va reliz zip’lari) paketga qo‘shilib ketadi. Bunipackage.jsondagifilesorqali publish tarkibini whitelist qilish bilan tuzating (dist subdir’lar, docs, skills’ni qo‘shing; app bundle’larni chiqarib tashlang).npm pack --dry-runbilandist/OpenClaw.appro‘yxatda yo‘qligini tasdiqlang. - dist-tags uchun npm auth web loop: OTP so‘rovini olish uchun legacy auth’dan foydalaning:
NPM_CONFIG_AUTH_TYPE=legacy npm dist-tag add openclaw@X.Y.Z latestnpxtekshiruviECOMPROMISED: Lock compromisedbilan muvaffaqiyatsiz tugaydi: yangi cache bilan qayta urinib ko‘ring:NPM_CONFIG_CACHE=/tmp/npm-cache-$(date +%s) npx -y openclaw@X.Y.Z --version- Kechikkan tuzatishdan keyin tag’ni qayta yo‘naltirish kerak: tag’ni majburan yangilang va push qiling, so‘ng GitHub relizi artefaktlari hanuz mosligini tekshiring:
git tag -f vX.Y.Z && git push -f origin vX.Y.Z
- GitHub relizi + appcast
- [ ] Teg qo‘ying va push qiling:
git tag vX.Y.Z && git push origin vX.Y.Z(yokigit push --tags). - [ ]
vX.Y.Zuchun GitHub relizini yarating/yangilang, sarlavhaopenclaw X.Y.Zbo‘lsin (faqat tag emas); body qismida shu versiya uchun to‘liq changelog bo‘limi (Highlights + Changes + Fixes) inline ko‘rinishda bo‘lsin (yalang‘och havolalarsiz) va body ichida sarlavha takrorlanmasin. - [ ] Artefaktlarni biriktiring:
npm packtarball (ixtiyoriy),OpenClaw-X.Y.Z.zip, vaOpenClaw-X.Y.Z.dSYM.zip(agar generatsiya qilingan bo‘lsa). - [ ] Yangilangan
appcast.xmlni commit qiling va push qiling (Sparkle main’dan feed oladi). - [ ] Toza vaqtinchalik papkadan (
package.jsonsiz),npx -y openclaw@X.Y.Z send --helpni ishga tushirib, install/CLI entrypoint’lar ishlashini tasdiqlang. - [ ] Reliz eslatmalarini eʼlon qiling/ulashing.
Plugin nashr qilish qamrovi (npm)¶
Biz faqat @openclaw/* scope ostidagi mavjud npm plugin’larni nashr qilamiz. npm’da mavjud bo‘lmagan, lekin bundle qilingan plugin’lar faqat disk-tree ko‘rinishida qoladi (extensions/** ichida tarqatiladi).
Ro‘yxatni aniqlash jarayoni:
npm search @openclaw --jsonni ishga tushiring va paket nomlarini oling.extensions/*/package.jsonichidagi nomlar bilan solishtiring.- Faqat kesishma (npm’da allaqachon mavjud bo‘lganlar) ni nashr qiling.
Joriy npm plugin ro‘yxati (zaruratga ko‘ra yangilang):
- @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
Reliz eslatmalarida, shuningdek, sukut bo‘yicha yoqilmagan yangi ixtiyoriy bundle qilingan plugin’lar ham alohida qayd etilishi kerak (masalan: tlon).