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:
- version;
- source tag;
- executable yoki package;
- container image;
- checksum;
- digital signature;
- changelog;
- release notes;
- migration guide;
- SBOM;
- deployment manifest;
- debug symbol;
- source archive.
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:
- bugfix;
- documentation;
- security patch;
- release metadata
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:
- source holatini tekshiradi;
- testlarni bajaradi;
- versiyani tasdiqlaydi;
- artifact yaratadi;
- security scan o‘tkazadi;
- checksum va signature yaratadi;
- registryga yuklaydi;
- changelog chiqaradi;
- deploymentni boshlaydi;
- 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