Publishing Go Modules
Go modullarini nashr qilish
O'z paketingizni boshqa dasturchilar ham ishlatishi uchun, uni alohida qilib "nashr etish" shart emas — Go modullari ochiq git repozitoriysida bo'lishning o'zi kifoya. Boshqa loyiha uni go get github.com/username/repo bilan to'g'ridan-to'g'ri import qila oladi. Muhim qism — versiyalash: qaysi o'zgarishlar xavfsiz, qaysilari emasligini bildiruvchi tizim.
Go moduli semantik versiyalash (semver)dan foydalanadi: vMAJOR.MINOR.PATCH, masalan v1.2.3. Har bir qism boshqa ma'noni bildiradi:
- •PATCH (v1.2.3 → v1.2.4) — orqaga mos xato tuzatish
- •MINOR (v1.2.3 → v1.3.0) — orqaga mos yangi funksiya
- •MAJOR (v1.2.3 → v2.0.0) — orqaga mos kelmaydigan o'zgarish
Nashr qilish jarayoni oddiy: kodni git'ga commit qilasiz, so'ngra shu commit'ga semver formatidagi git tegi (tag) qo'yasiz (masalan, git tag v1.2.4 va git push --tags). Shundan keyin go get orqali boshqalar aynan shu versiyani yuklab olishi mumkin. Bu darsda siz versiya raqamlarini semver qoidalariga muvofiq oshirishni dasturlaysiz — bu chindan nashr qilishdan oldin har doim qo'lda yoki CI orqali bajariladigan amaliy qadam.
>_ Exercise
NextPatchVersion(current string) (string, error) funksiyasini yozing. current — "vMAJOR.MINOR.PATCH" shaklida bo'lishi kerak (masalan, "v1.2.3"). Funksiya PATCH qismini bittaga oshirib, yangi versiya qatorini qaytaradi. Agar current "v" bilan boshlanmasa yoki uchta qismga ega bo'lmasa (yoki PATCH qismi son bo'lmasa), mos xato bilan "", err qaytaring.
Stuck? Reveal a hint to help you.
Key Takeaway
Key Takeaway:
Go modullarini nashr qilish — kodni git tegi (masalan, v1.2.4) bilan belgilashdan iborat, alohida "nashr qilish" xizmati shart emas. Semantik versiyalash (MAJOR.MINOR.PATCH) versiya raqamining o'zi orqali o'zgarishning xavfliligini bildiradi.
$ go run main.go
Kodingizni ishga tushiring