Mobil Uygulamalarda Otomatik Semantic Versioning Nasıl Uygulanır?

0 Replies 2 Views
Raters
Participants
Thread Starter #1
Giriş ve Temel Kavramlar
Mobil uygulamalarda sürüm yönetimi, hem kullanıcı deneyimi hem de geliştirme sürecinin sağlıklı ilerlemesi açısından kritik öneme sahiptir. Semantic Versioning (SemVer), bu noktada, uygulama kodunun değişiklik seviyesini net şekilde belirtmek için kullanılan bir standarttır: MAJOR.MINOR.PATCH. Otomatik semver uygulaması ise, sürekli entegrasyon ve dağıtım süreçlerine entegre edilerek, yapılan değişikliklere uygun sürüm numarasını otomatik biçimde belirler.

Otomasyonun Temel Prensipleri
Otomatik semver uygulamasında temel amaç, versiyon numarasını manuel müdahaleye gerek kalmadan, kod tabanındaki değişikliklere göre güncellemektir. Bu, genellikle CI/CD pipeline'lar içinde, sürüm kontrol sistemleri ve kod analizi araçlarıyla entegre edilir.

Değişiklik Seviyelerinin Tanımlanması
İşte, otomatik belirlemede dikkate alınan temel kurallar:
  • MAJOR: Kırıcı değişiklikler, API'lerde geriye dönük uyumsuzluk veya büyük yapısal değişiklikler.
  • MINOR: Yeni özellik eklemeleri veya geriye dönük uyumluluğu bozmadan yapılan geliştirmeler.
  • PATCH: Hata düzeltmeleri, performans iyileştirmeleri ve küçük değişiklikler.


Araçlar ve Entegrasyon
Otomatik semver uygulaması için kullanılabilecek araçlar ve entegrasyonlar şunlardır:
  • Semantic Release: En yaygın kullanılan otomasyon aracıdır. Git commit mesajlarına göre değişiklikleri analiz eder, uygun sürüm numarasını belirler ve otomatik olarak GitHub, GitLab veya Bitbucket gibi platformlarda yeni sürüm oluşturur.
  • Semantic-release GitHub Actions veya GitLab CI/CD entegrasyonu: CI/CD pipeline'ınıza entegre edilerek, her başarılı build sonrası otomatik sürüm güncellemesi sağlar.
  • Conventional Commits Standartları: Commit mesajlarının belirli bir formatta olması, otomatik versiyonlama için kritik önemdedir.


Kod ve Yapılandırma Örneği
Örnek olarak, semantic-release kullanımı şu adımlarla yapılandırılır:
  1. Commit mesajlarının conventional commit formatında olması sağlanır.
  2. Pipeline içerisinde semantic-release komutu çalıştırılır.
  3. SemVer algoritması commit mesajlarına göre otomatik belirlenir.
  4. Sürüm, otomatik olarak package.json veya uygulama yapılandırma dosyasına yansır.
  5. Yeni sürüm, otomatik olarak yayınlanır.


Kod örneği (package.json ve pipeline yapılandırması):

CODE
1234
"scripts": {
  "release": "semantic-release"
}


CI/CD yapılandırması (örneğin GitHub Actions):

CODE
123456789101112131415161718192021222324252627
name: Release

on:
  push:
    branches:
[list]
[*]main
[/list]

jobs:
  release:
    runs-on: ubuntu-latest
    steps:
[list]
[*]uses: actions/checkout@v2
[*]name: Setup Node
[/list]
        uses: actions/setup-node@v2
        with:
          node-version: '14'
[list]
[*]run: npm install
[*]run: npm run release
[/list]
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}


Sonuç ve Değerlendirme
Mobil uygulamalarda otomatik semantic versioning, geliştirme sürecini hızlandırırken, sürüm tutarlılığını ve kullanıcı bilgilendirmesini de kolaylaştırır. Bu süreç, özellikle sürekli entegrasyon ve sürekli teslimat pratikleriyle birleştiğinde, hataları azaltır ve daha güvenilir dağıtımlar sağlar. Bu yaklaşım, kod tabanındaki değişiklikleri netleştirir ve sürüm yönetimini otomatikleştirerek, geliştirme ekiplerinin odak noktası gereksiz detaylardan kurtarır.

You must be logged in to reply.

0 quotes selected