Published on

Git: versiyalash, teglar (tags) va relizlar

Authors

Bu darsda loyihani rasmiy ravishda chiqarishga tayyorlash jarayoni ko'rib chiqiladi: versiya raqamini yangilash, commit-ga teg qo'shish va GitHub-da reliz e'lon qilish.


1. Versiyalash — Version va Build raqamlari

Xcode-da versiya tuzilmasi

Xcode-da har bir ilovaning ikkita raqami bor:

  • Version (Marketing Version) — foydalanuvchilarga ko'rinadigan versiya: 1.0.0
  • Build Number — texnik raqam, har bir build-da ortib boradi: 1, 2, 3...

Versiya raqami formati

MAJOR.MINOR.PATCH
RaqamQachon o'zgaradiMisol
MAJORKatta o'zgarishlar, yangi konsept1.0.0 → 2.0.0
MINORYangi funksionallik, mavjud tuzilma o'zgarmaydi1.0.0 → 1.1.0
PATCHXatolik tuzatish, kichik o'zgarish1.0.0 → 1.0.1

Ilova hali chiqarilmagan, ishlab chiqilish bosqichida bo'lsa — 1.0-dan past raqam ishlatiladi:

0.0.10.1.00.9.01.0.0 (birinchi rasmiy reliz)

Build raqami strategiyasi

Eski yondashuv: build raqami sifatida sana ishlatilgan — masalan, 20240303.

Zamonaviy yondashuv (Xcode Cloud bilan mos): build raqami har safar bittaga oshib boradi — 1, 2, 3... Versiya qancha bo'lishidan qat'i nazar, build raqami doimo ortib ketaveradi.

Versiya o'zgarganda commit qilish

Majburiy emas, lekin versiya o'zgartirish tarixda ko'rinib turishi foydali:

Commit xabari: release: increment version to 1.0.0 (build 2)

2. Teglar (Tags)

Teg — commit tarixidagi muayyan bir commit-ni muhim sifatida belgilovchi yorliq. Minglab commit orasidan kerakli relizni tezda topish uchun ishlatiladi.

Teglar odatda quyidagi holatlarda qo'yiladi:

  • Yangi versiya relizi (1.0.0, 1.0.1)
  • Muhim yangilanish yoki katta merge

Xcode-da teg qo'shish

  1. Source Control → Repositories → commit tarixini oching
  2. Teglanmoqchi bo'lgan commit ustiga o'ng tugma bosing
  3. Tag "commit-nomi"... → nom kiriting (masalan, 1.0.0)
  4. Create bosing

Teg local-da yaratiladi — remote-ga alohida push qilish kerak.

Tegni remote-ga push qilish

Xcode-da: Integrate → Push va Include tags opsiyasini belgilang.

Teg push qilinmasa, GitHub-da ko'rinmaydi va reliz uchun ishlatib bo'lmaydi.

Teg nomlash

Ko'p ishlatiluvchi formatlar:

1.0.0
v1.0.0

Ba'zida reliz bo'lmagan muhim commit-lar uchun tavsiflovchi nom ishlatiladi:

docs-fix-2024-03
major-refactor-auth

3. GitHub-da Reliz e'lon qilish

GitHub release-i — teg orqali muayyan commit-ga bog'langan rasmiy e'lon. Foydalanuvchilar va hamkorlar uchun "Nima yangi?" ma'lumotini beradi.

Reliz yaratish

  1. GitHub repo sahifasida Releases → Create a new release
  2. Choose a tag — oldin push qilingan teg tanlanadi
  3. Release title — odatda versiya raqami
  4. Description — reliz haqida qisqa ma'lumot

Reliz tavsifi uchun tavsiyalar

Shaxsiy yoki kichik loyihalar uchun:

## v1.0.0 — 2024 yil 3 mart

Dastlabki rasmiy reliz.

Katta loyihalar yoki ochiq manba uchun:

## v1.0.1 — 2024 yil 3 mart

### O'zgarishlar

- Settings ekranidagi xatolik tuzatildi
- Login sahifasi yuklanishi tezlashtirildi

### Yangi funksionallik

- Qorong'i rejim qo'llab-quvvatlandi

Generate release notes funksiyasi

GitHub oxirgi teg va joriy teg orasidagi barcha merge-larni avtomatik sanab chiqadi. Branchlar to'g'ri merge qilingan loyihalarda bu juda foydali — o'zgarishlarni qo'lda yozishning hojati yo'q.

Tugmani bosish: Generate release notes

Reliz holatlari

  • Publish release — hoziroq ochiq qiling
  • Save as draft — keyinchalik tahrirlash uchun saqlang
  • Pre-release — hali ishlab chiqarishda emas, sinov versiyasi

4. To'liq versiyalash jarayoni

Yangi reliz tayyorlashda odatdagi ketma-ketlik:

1. Xcode-da Version va Build raqamini yangilang
2. O'zgarishni commit qiling:
   "release: increment version to 1.0.1 (build 3)"
3. GitHub-ga push qiling
4. Kerakli commit-ga teg qo'ying: 1.0.1
5. Tegni ham push qiling (Include tags)
6. GitHubReleasesCreate new release
7. Tegni tanlang, tavsif yozing, publish qiling

5. Teglar va branchlar bilan ishlash

Xcode-da Source Control → Repositories bo'limida Tags papkasi ko'rinadi. Tegga bosish — o'sha commit-ga o'tish imkonini beradi. Teg ustiga o'ng tugma bosib, o'sha holatdan yangi branch yaratish ham mumkin:

Teg 1.0.0Create Branch from Tag → hotfix-1.0.0

Bu eski versiyaga tuzatish qo'shish kerak bo'lganda foydali — hozirgi rivojlanishni to'xtatmasdan.


Xulosa

Bu darsda o'rganildi:

  • MAJOR.MINOR.PATCH — versiya raqami formati va qachon qaysi qismni oshirish
  • Build raqami — har bir build-da bittadan oshib boruvchi texnik raqam
  • Teg — commit tarixidagi muhim nuqtani belgilovchi yorliq; local yaratilgandan so'ng alohida push qilinadi
  • GitHub Release — teg asosida yaratilgan rasmiy e'lon; Generate release notes o'zgarishlarni avtomatik sanaydi
  • Reliz holatlari: Publish, Draft, Pre-release
  • Eski versiyaga tuzatish uchun teg ustidan yangi branch yaratish mumkin

Keyingi darsda git flow — professional muhitda butun jarayon qanday tashkil etilishi ko'rib chiqiladi.

Buy mea coffee