Bosh sahifa Wiki Changelog

Changelog

Changelog — dastur, kutubxona, API yoki boshqa mahsulot versiyalari bo‘yicha foydalanuvchiga muhim o‘zgarishlarni tartibli ko‘rsatadigan hujjat.

Changelog oddiy Git commitlar ro‘yxati emas. U o‘zgarishlarni mahsulotdan foydalanadigan odam nuqtai nazaridan tushunarli shaklda jamlaydi.

Asosiy vazifasi yangi versiyada nima qo‘shilgani, nima tuzatilgani, qanday breaking change mavjudligi va qaysi qismlar eskirganini ko‘rsatishdir.

Changelog tarkibi

Har release bo‘limida odatda quyidagi guruhlar ishlatiladi:

  • Added — yangi imkoniyatlar;
  • Changed — mavjud xatti-harakatdagi o‘zgarishlar;
  • Deprecated — kelajakda olib tashlanadigan imkoniyatlar;
  • Removed — o‘chirilgan imkoniyatlar;
  • Fixed — tuzatilgan xatolar;
  • Security — xavfsizlik tuzatishlari.

Loyiha ehtiyojiga qarab performance, documentation yoki migration alohida bo‘lim bo‘lishi mumkin.

Versiya bo‘limi

Changelog release versiyasi va sanasini ko‘rsatadi.

## [2.4.0] - 2026-07-14

Pre-release uchun:

## [3.0.0-rc.1] - 2026-07-10

Sana release qachon foydalanuvchiga taqdim etilganini bildiradi.

Unreleased bo‘limi

Hali release qilinmagan o‘zgarishlar Unreleased bo‘limida yig‘iladi.

## [Unreleased]

### Added
- CSV eksport imkoniyati.

Release paytida bu yozuvlar yangi versiya bo‘limiga ko‘chiriladi.

Bu jamoaga kelayotgan o‘zgarishlarni oldindan ko‘rish imkonini beradi.

Foydalanuvchi nuqtai nazari

Yaxshi changelog ichki implementation detallarini emas, foydalanuvchiga ta’sirini yozadi.

Yomon yozuv:

Refactored PaymentServiceFactory.

Yaxshiroq yozuv:

To‘lovni qayta yuborishda duplicate transaction yuz berishi tuzatildi.

Ichki class nomi foydalanuvchiga ma’no bermasligi mumkin.

Breaking change

Backward-compatible bo‘lmagan o‘zgarish aniq ko‘rsatiladi.

Changelog quyidagilarni beradi:

  • eski xatti-harakat;
  • yangi xatti-harakat;
  • kimga ta’sir qiladi;
  • migration qadamlari;
  • olib tashlangan API;
  • yangi minimum version.

Faqat “breaking changes mavjud” yozuvi yetarli emas.

Migration havolasi

Katta major release uchun changelog qisqa umumiy ma’lumot beradi, batafsil migration guide’ga havola qiladi.

Migration guide:

ni tushuntiradi.

Commit log bilan farqi

Commit log developer faoliyatini qayd etadi.

Unda:

bo‘lishi mumkin.

Changelog esa release consumeri uchun kerakli ma’lumotni saralaydi.

Bitta release yuzlab commitdan iborat bo‘lsa ham, changelog o‘nlab tushunarli yozuvdan iborat bo‘lishi mumkin.

Pull request bilan bog‘lanish

Har changelog yozuvi issue yoki pull requestga havola berishi mumkin.

Bu qo‘shimcha context va muhokamani topishga yordam beradi.

Ammo changelogni tushunish uchun foydalanuvchi havolani ochishga majbur bo‘lmasligi kerak.

Asosiy ma’no yozuvning o‘zida bo‘ladi.

Avtomatik changelog

Conventional commit yoki pull request label orqali changelog avtomatik yaratilishi mumkin.

Masalan:

  • feat — Added;
  • fix — Fixed;
  • securitySecurity;
  • breaking — major o‘zgarish.

Avtomatik generator tartib va linklarni soddalashtiradi.

Biroq commit matni foydalanuvchi uchun yetarli bo‘lmasa, release oldidan tahrir qilinadi.

Qo‘lda yuritiladigan changelog

Qo‘lda yozish mahsulot tilini nazorat qilishga imkon beradi.

Kamchiligi — developer yozuv qo‘shishni unutishi mumkin.

Jarayonga:

qo‘shiladi.

Changelog fragment

Har pull request alohida kichik fragment yaratadi.

Masalan:

changes/1245.fixed.md

Release pipeline fragmentlarni guruhlab, changelogga qo‘shadi va fragment fayllarini olib tashlaydi.

Bu parallel ishlayotgan katta jamoada bitta changelog faylidagi merge conflictni kamaytiradi.

Security yozuvi

Security zaifligi to‘liq ekspluatatsiya tafsilotlari e’lon qilinmasdan yozilishi mumkin.

Yozuv:

  • ta’sirlangan versiyalar;
  • tuzatilgan versiya;
  • severity;
  • workaround;
  • advisory identifikatori

ni ko‘rsatadi.

Foydalanuvchi yangilanish zarurligini aniq tushunishi kerak.

Deprecation yozuvi

Deprecated imkoniyat uchun:

  • qaysi API;
  • nima uchun;
  • qaysi alternativ;
  • qaysi versiyada olib tashlanadi

ko‘rsatiladi.

Bu clientlarga major release’dan oldin migration qilish imkonini beradi.

O‘zgarmas tarix

Release qilingan changelog yozuvi tarixiy hujjatdir.

Keyin typo tuzatilishi mumkin, ammo o‘sha release mazmuni yashirincha o‘zgartirilmaydi.

Noto‘g‘ri ma’lumot bo‘lsa correction aniq qayd etiladi.

Format

Changelog:

ko‘rinishida bo‘lishi mumkin.

Repositorydagi text format version control va diff uchun qulay.

Release notes bilan farqi

Release notes ko‘proq marketing, muhim yangilik va upgrade yo‘riqnomasini o‘z ichiga olishi mumkin.

Changelog esa barcha muhim texnik o‘zgarishlarni izchil tarixda saqlaydi.

Ba’zi loyihalarda ular bitta hujjatda birlashtiriladi.

Changelog sifati

Yaxshi changelog yozuvi:

  • aniq;
  • qisqa;
  • foydalanuvchi tilida;
  • category ichida;
  • versiya bilan bog‘langan;
  • migration zarur bo‘lsa ko‘rsatgan;
  • issue linki bilan tasdiqlangan.

“Bugfixes and improvements” kabi umumiy yozuv amaliy ma’lumot bermaydi.

Yozuvlarni birlashtirish

Bir release ichida bir muammoga oid bir nechta commit foydalanuvchi uchun bitta changelog bandiga birlashtiriladi. Masalan, database xatosi uchun test, refactoring va yakuniy fix uchta commit bo‘lsa ham, changelog bitta aniq natijani yozadi.

Saralash tartibi

Yozuvlar odatda muhimlik bo‘yicha tartiblanadi. Breaking change va security tuzatishi yuqorida, kichik ichki o‘zgarishlar pastda joylashadi. Bu foydalanuvchiga release xavfini tez baholashga yordam beradi.

Ko‘p mahsulotli repository

Monorepo ichida har package mustaqil versiyalansa, umumiy changelog bilan birga package bo‘yicha alohida yozuvlar ham yuritilishi mumkin. Bir package’dagi o‘zgarish boshqasiga ta’sir qilsa dependency va minimal mos versiya aniq ko‘rsatiladi.

Bog‘liq tushunchalar

Release notes, Versioning, SemVer, Breaking change, Deprecation, Migration guide, Git tag, Conventional Commits, Security advisory