AXV

Taglar va SemVer

git tag (lightweight va annotated), tagni push qilish, SemVer MAJOR.MINOR.PATCH, GitHub Release

10-sinfDevOps6-hafta · 17-dars

Bugun nimalarni o'rganamiz?

Git taglar

Versiya belgisi

SemVer

MAJOR.MINOR.PATCH

GitHub Release

Nashr

Takrorlash

Yo'qolgan commit ni topish uchun qaysi buyruq?

git reflog HEAD harakatlarini ko'rsatadi.
01

Git taglar

Versiya belgisi

Tag oqimi

Commit git tag -a git pushorigin tag GitHub dako'rinadi Tag push qilinmasa, GitHub da bo'lmaydi

Tag buyruqlari


git tag v0.9.0
git tag -a v1.0.0 -m "Birinchi barqaror versiya"
git tag -l
git show v1.0.0
git push origin v1.0.0
git tag -d v0.9.0
  
Tag ni push qilingan keyin o'zgartirmang yoki o'chirmang: boshqalar ham uni ishlatadi. Yangi tag yarating.

Mini-test

Tag ni GitHub ga yuborish buyrug'i?

Taglar alohida yuboriladi.
02

SemVer

MAJOR.MINOR.PATCH

Qaysi raqam oshadi

Xato tuzatildi:PATCH Yangiimkoniyat: MINOR Buzuvchio'zgarish: MAJOR Tag: v2.5.0 Past raqamlar 0 ga tushadi

Versiyani oshirish


def bump(v, qism):
    major, minor, patch = map(int, v.split("."))
    if qism == "major":
        return f"{major + 1}.0.0"
    if qism == "minor":
        return f"{major}.{minor + 1}.0"
    return f"{major}.{minor}.{patch + 1}"

print(bump("2.4.1", "minor"))
  
MINOR oshganda PATCH 0 bo'ladi, MAJOR oshganda MINOR va PATCH 0 bo'ladi.

Mini-test

2.4.1 da xato tuzatilsa, yangi versiya?

Xato tuzatish — PATCH.
03

GitHub Release

Nashr

Release yaratish

Kod tayyor Tag v1.0.0 Release notes Publish Tag + tavsif = release

gh bilan release


git tag -a v1.0.0 -m "1.0.0"
git push origin v1.0.0
gh release create v1.0.0 --title "1.0.0" --notes "Birinchi barqaror versiya"
gh release list
  
gh ni birinchi marta gh auth login bilan ulash kerak. Release notes ni tag nomi emas, o'zgarishlar mazmuni bilan yozing.

Mini-test

Release asosida nima turadi?

Release tag ga bog'lanadi.

Lightweight va annotated tag

Lightweight

Oddiy ko'rsatkich, xabarsiz
VS

Annotated

Muallif, sana va xabar bilan; release uchun

Release uchun annotated tavsiya etiladi.

Atamalar. Bosing

tag

bosing

Commit ga doimiy belgi

SemVer

bosing

MAJOR.MINOR.PATCH versiyalash

Release

bosing

Tag asosidagi nashr sahifasi

Rollback

bosing

Oldingi barqaror versiyaga qaytish

Release chiqarish

1. Tayyorlang

Testlar o'tdi, main toza.

2. Tag

v1.0.0 ni yarating.

3. Release

GitHub da publish.

SemVer qoidalari

O'zgarishOshadiMisol
Xato tuzatishPATCH2.4.1 → 2.4.2
Yangi imkoniyatMINOR2.4.2 → 2.5.0
Buzuvchi o'zgarishMAJOR2.5.0 → 3.0.0
Sinov nashripre-release3.0.0-rc.1
Birinchi barqaror1.0.00.x dan 1.0.0 ga

Pastga bosing: qoidalar

Tag va release

  1. git tag -a v1.0.0 -m "1.0.0" bajaring.
  2. git push origin v1.0.0 bilan yuboring.
  3. GitHub da Releases bo'limida release yarating.

Versiya xatosi


git tag version1
git push
  

Versiya xatosi


git tag -a v1.0.0 -m "1.0.0"
git push origin v1.0.0
  

SemVer raqamlarda

0
ta raqam: MAJOR.MINOR.PATCH
0
ta tag turi: lightweight va annotated
0
ta buyruq tag ni yuboradi: git push origin v1.0.0

Versiya raqami jamoaga o'zgarish xarakterini aytadi.

Amaliy topshiriq 20 daqiqa

OsonTag yarating: v1.0.0 annotated tag ni xabar bilan yarating.
OsonTagni yuboring: Tag ni GitHub ga yuboring.
O'rtaVersiya oshirish: 2.4.1 dan yangi imkoniyat qo'shilsa, qaysi versiya?
O'rtaBuzuvchi o'zgarish: 2.5.0 da API buzildi. Yangi versiya?
QiyinRelease: gh bilan v1.0.0 release yarating.
BonusRollback: Oldingi v0.9.0 ga qaytish yo'lini yozing.

Dars xulosasi

Tag

git tag -a v1.0.0 -m, git push origin v1.0.0.

SemVer

MAJOR.MINOR.PATCH qoidalari.

Release

GitHub Release va release notes.

Uyga vazifa: Tag, SemVer va release.

Keyingi dars: GitHub Flow

Jamoaviy kollaboratsiya

6-hafta · 18-dars