Bosh sahifa Wiki Release

Release

Release — dasturiy mahsulotning ma’lum versiyasini foydalanuvchi yoki boshqa tizimlar foydalanishi uchun rasmiy ravishda tayyorlash va tarqatish natijasi.

Release source code holati, build artifactlari, versiya, hujjat, changelog va tarqatish jarayonini birlashtiradi.

Har build release emas. Build test yoki development uchun vaqtinchalik yaratilishi mumkin. Release esa identifikatsiya qilingan va qo‘llab-quvvatlanadigan mahsulot holatidir.

Release tarkibi

Release quyidagilarni o‘z ichiga olishi mumkin:

Tarkib mahsulot turiga bog‘liq.

Release candidate

Yakuniy release’dan oldingi nomzod release candidate deb ataladi.

3.0.0-rc.1

RC:

  • feature complete;
  • yakuniy testga tayyor;
  • faqat muhim xatolar tuzatiladi;
  • final release bilan bir xil build jarayonidan o‘tadi.

RC’da yangi feature qo‘shilsa, u yangi candidate sifatida qayta test qilinadi.

Stable release

Stable release production foydalanish uchun mo‘ljallangan.

Bu “xatosiz” degani emas.

Stable atamasi:

  • support siyosati mavjud;
  • API contract belgilangan;
  • asosiy testlar o‘tgan;
  • known issue hujjatlashtirilgan;
  • upgrade yo‘li mavjud

ekanini anglatadi.

Release branch

Ba’zi loyihalarda release uchun alohida branch yaratiladi.

Masalan:

release/2.4

Bu branchga:

kiritiladi.

Yangi feature asosiy development branchida davom etadi.

Boshqa model trunk-based development bo‘lib, release tag va feature flag orqali boshqariladi.

Version tag

Release source holati Git tag bilan belgilanadi.

v2.4.1

Annotated yoki signed tag:

haqida ma’lumot saqlaydi.

Tag boshqa commitga ko‘chirilmasligi kerak. O‘zgargan artifact yangi versiya oladi.

Release build

Release build odatda development builddan farq qiladi.

U:

  • optimization;
  • debug flaglarni o‘chirish;
  • minification;
  • code signing;
  • production config;
  • symbolni alohida saqlash;
  • reproducible build

qoidalarini qo‘llaydi.

Secret artifact ichiga compile qilinmaydi.

Artifact

Bir release turli platforma uchun bir nechta artifactga ega bo‘lishi mumkin.

Masalan:

app-2.4.1-linux-x86_64
app-2.4.1-linux-arm64
app-2.4.1-windows-x86_64.exe

Barcha artifactlar bir xil source tag va release metadata bilan bog‘lanadi.

Release pipeline

Avtomatlashtirilgan pipeline:

  1. source holatini tekshiradi;
  2. testlarni bajaradi;
  3. versiyani tasdiqlaydi;
  4. artifact yaratadi;
  5. security scan o‘tkazadi;
  6. checksum va signature yaratadi;
  7. registryga yuklaydi;
  8. changelog chiqaradi;
  9. deploymentni boshlaydi;
  10. natijani qayd etadi.

Pipeline bir xil jarayonni takrorlashga yordam beradi.

Approval

Production release manual yoki avtomatik approval talab qilishi mumkin.

Approval:

asosida beriladi.

Approval faqat formal tugma emas, aniq mezonlarga tayanadi.

Release channel

Mahsulot bir nechta channel orqali tarqatilishi mumkin:

  • nightly;
  • canary;
  • beta;
  • stable;
  • long-term support.

Har channel update tezligi va barqarorlik darajasiga ega.

Foydalanuvchi channelni ongli tanlaydi.

Canary release

Yangi versiya avval foydalanuvchilarning kichik qismiga beriladi.

Kuzatiladi:

Muammo bo‘lmasa traffic bosqichma-bosqich oshiriladi.

Rolling release

Instance’lar navbat bilan yangi versiyaga o‘tadi.

Bir muddat eski va yangi versiyalar birga ishlaydi.

Shu sababli:

mos bo‘lishi kerak.

Blue-green release

Ikki bir xil muhit mavjud:

  • blue — amaldagi;
  • green — yangi.

Yangi muhit testdan o‘tgach traffic almashtiriladi.

Rollback trafficni eski muhitga qaytarish orqali tez bajariladi.

Rollback

Release muvaffaqiyatsiz bo‘lsa oldingi stabil holatga qaytish jarayoni rollback.

Rollback faqat eski binaryni qo‘yishdan iborat bo‘lmasligi mumkin.

Database migration, queue message va external side effect backward-compatible bo‘lishi kerak.

Ba’zi o‘zgarish faqat forward fix orqali tiklanadi.

Release freeze

Muhim sana oldidan yangi feature merge yoki deploy vaqtincha cheklanadi.

Freeze davrida:

  • faqat critical fix;
  • qo‘shimcha review;
  • release stability;
  • operational tayyorgarlik

ustun bo‘ladi.

Release notes

Release notes foydalanuvchi uchun muhim yangiliklarni tushuntiradi.

Unda:

  • asosiy imkoniyatlar;
  • breaking change;
  • upgrade yo‘li;
  • known issue;
  • support status

bo‘lishi mumkin.

Changelogga qaraganda ko‘proq izohli bo‘lishi mumkin.

Known issues

Release vaqtida ma’lum, ammo bloklovchi bo‘lmagan muammolar alohida yoziladi.

Har issue:

  • ta’sir;
  • workaround;
  • rejalashtirilgan fix;
  • platforma

bilan ko‘rsatiladi.

Yashirilgan known issue foydalanuvchi ishonchini pasaytiradi.

Release audit

Release uchun quyidagilar saqlanadi:

  • kim boshladi;
  • qaysi commit;
  • qaysi pipeline;
  • qaysi artifact;
  • qaysi approval;
  • qayerga deploy qilindi;
  • rollback holati.

Bu incident va compliance tahlilida kerak bo‘ladi.

Artifact promotion

Testdan o‘tgan artifact yangi environment uchun qayta build qilinmaydi. Xuddi shu checksumga ega fayl stagingdan productionga promotion qilinadi. Environmentga xos endpoint va secret deployment vaqtida tashqaridan beriladi.

Release health

Release yakunlangan deb hisoblanishidan oldin deploymentdan keyingi kuzatuv oynasi ishlaydi. Unda error rate, latency, queue, database va asosiy business amallari tekshiriladi. Faqat container “running” holati mahsulot sog‘lomligini isbotlamaydi.

Release ownership

Har release uchun mas’ul shaxs yoki jamoa belgilanadi. U rollout, monitoring, communication va rollback qarorini muvofiqlashtiradi. Bu incident paytida qaror kim tomonidan qabul qilinishini aniq saqlaydi.

Bog‘liq tushunchalar

Release candidate, Stable release, Version, Git tag, Artifact, Release pipeline, Canary release, Rolling deployment, Rollback, Changelog