frappe_docker/.github/RELEASE_GUIDE.md
ubden 1e46cdd3f2 feat: Enhance Dokploy with automated release workflows and documentation updates
- Added new GitHub Actions workflows for automatic tagging and release creation.
- Updated Dockerfile to fix the path for `apps.json` during the build process.
- Introduced a comprehensive release guide and version tracking file.
- Enhanced README with new badges for build status and latest release.
- Documented troubleshooting steps and deployment processes in the new release guide.
2025-10-13 23:02:01 +03:00

6.1 KiB
Raw Blame History

Release Kılavuzu

Bu doküman, Frappe ERPNext Dokploy projesinde yeni versiyon yayınlama sürecini açıklar.

🏷️ Versiyon Numaralandırma

Projede Semantic Versioning kullanılır:

MAJOR.MINOR.PATCH
  • MAJOR: Uyumsuz API değişiklikleri
  • MINOR: Geriye uyumlu yeni özellikler
  • PATCH: Geriye uyumlu bug fix'ler

Örnekler

  • 1.0.0 - İlk stable release
  • 1.1.0 - Yeni özellik eklendi
  • 1.1.1 - Bug fix
  • 2.0.0 - Breaking change

📋 Release Öncesi Checklist

1. Kod Hazırlığı

  • Tüm özellikler tamamlandı
  • Testler passed (varsa)
  • Linter/formatter çalıştırıldı
  • Breaking changes dokümante edildi
  • Migration guide hazırlandı (breaking change varsa)

2. Dokümantasyon

  • CHANGELOG.md güncellendi
  • dokploy/VERSION dosyası güncellendi
  • README.md gerekirse güncellendi
  • Environment variables değişiklikleri .env.example'a eklendi
  • Migration notları eklendi (gerekirse)

3. Testing

  • Development'ta test edildi
  • Staging'de test edildi (varsa)
  • Docker image build testi yapıldı
  • Deployment testi yapıldı

🚀 Release Süreci

Yöntem 1: GitHub UI ile (Önerilen)

  1. GitHub'a gidin

    • Repository: https://github.com/ubden/frappe_docker
  2. Actions sekmesine tıklayın

  3. "Create Release Tag" workflow'u seçin

  4. "Run workflow" butonuna tıklayın

  5. Versiyon numarasını girin

    • Format: 1.0.0 (v prefix olmadan)
    • Pre-release ise checkbox'ı işaretleyin
  6. "Run workflow" butonuna tıklayın

  7. Workflow tamamlanmasını bekleyin

    • Tag oluşturulacak
    • GitHub Release oluşturulacak
    • Docker image build edilecek

Yöntem 2: Manuel Git Tag

# 1. Local'e en son değişiklikleri çekin
git checkout main
git pull origin main

# 2. VERSION dosyasını güncelleyin
echo "1.0.0" > dokploy/VERSION

# 3. CHANGELOG.md'yi güncelleyin
nano dokploy/CHANGELOG.md

# 4. Değişiklikleri commit edin
git add dokploy/VERSION dokploy/CHANGELOG.md
git commit -m "Bump version to 1.0.0"
git push origin main

# 5. Tag oluşturun
git tag -a v1.0.0 -m "Release v1.0.0"

# 6. Tag'i push edin
git push origin v1.0.0

# 7. GitHub'da manuel release oluşturun
# https://github.com/ubden/frappe_docker/releases/new

📝 CHANGELOG Güncelleme

dokploy/CHANGELOG.md dosyasını Keep a Changelog formatında güncelleyin:

## [1.0.0] - 2025-10-13

### Added
- Yeni özellik 1
- Yeni özellik 2

### Changed
- Değişiklik 1
- Değişiklik 2

### Fixed
- Bug fix 1
- Bug fix 2

### Removed
- Kaldırılan özellik

### Security
- Güvenlik güncellemesi

🐳 Docker Image Tags

Her release için otomatik olarak şu tag'ler oluşturulur:

ghcr.io/ubden/frappe_docker/erpnext-complete:1.0.0      # Tam versiyon
ghcr.io/ubden/frappe_docker/erpnext-complete:1.0        # Minor versiyon
ghcr.io/ubden/frappe_docker/erpnext-complete:1          # Major versiyon
ghcr.io/ubden/frappe_docker/erpnext-complete:latest     # En son stable

🔍 Release Sonrası Kontroller

1. GitHub Release

  • Release oluşturuldu mu?
  • Release notes doğru mu?
  • Assets yüklendi mi? (varsa)

2. Docker Image

  • Image build edildi mi?
  • Image push edildi mi?
  • Tag'ler doğru mu?
  • Image pull testi yapıldı mı?
# Image test
docker pull ghcr.io/ubden/frappe_docker/erpnext-complete:1.0.0
docker images | grep erpnext-complete

3. Deployment Test

  • Yeni image ile deployment test edildi mi?
  • Tüm servisler çalışıyor mu?
  • Migration gerekiyorsa uygulandı mı?
# Test deployment
cd dokploy
docker-compose down
docker-compose pull
docker-compose up -d

4. Dokümantasyon

  • Release announcement hazırlandı mı? (gerekirse)
  • Documentation güncellendi mi?
  • Breaking changes communicated mi?

🎯 Release Tipleri

Patch Release (1.0.x)

  • Bug fixes
  • Minor improvements
  • Security patches
  • Documentation updates

Sıklık: Gerektiğinde (haftada/ayda)

Minor Release (1.x.0)

  • Yeni özellikler (geriye uyumlu)
  • Yeni uygulamalar ekleme
  • Performance improvements
  • Deprecation notices

Sıklık: Ayda/çeyrek dönemde bir

Major Release (x.0.0)

  • Breaking changes
  • Major refactoring
  • Frappe/ERPNext major version upgrade
  • Architecture changes

Sıklık: Yılda bir veya gerektiğinde

🔄 Hotfix Süreci

Acil bug fix için:

# 1. Hotfix branch oluştur
git checkout -b hotfix/1.0.1 v1.0.0

# 2. Fix'i uygula
git commit -m "Fix critical bug"

# 3. Main'e merge et
git checkout main
git merge hotfix/1.0.1

# 4. Tag oluştur
git tag -a v1.0.1 -m "Hotfix v1.0.1"

# 5. Push et
git push origin main
git push origin v1.0.1

# 6. Hotfix branch'i sil
git branch -d hotfix/1.0.1

📧 Communication

Internal

  • Team'e release notları paylaş
  • Breaking changes vurgula
  • Migration guide linkle

External

  • GitHub Discussions'da announce
  • README badges güncelle
  • Social media (varsa)

🛠️ Troubleshooting

Tag zaten var

# Tag'i sil
git tag -d v1.0.0
git push origin :refs/tags/v1.0.0

# Yeniden oluştur
git tag -a v1.0.0 -m "Release v1.0.0"
git push origin v1.0.0

Docker build başarısız

# Local'de test et
cd dokploy
docker build -f Dockerfile -t test:latest ..

# Logs'u kontrol et
docker logs <container-id>

Release oluşturulamadı

  • GitHub permissions kontrol edin
  • GITHUB_TOKEN geçerli mi?
  • Workflow syntax doğru mu?

📚 Kaynaklar

🎓 Best Practices

  1. Sık ve küçük release'ler tercih edin
  2. Her release için CHANGELOG güncelleyin
  3. Breaking changes'i versiyondan önce duyurun
  4. Test coverage'ı artırın
  5. Migration guide'lar ekleyin
  6. Deprecation warnings verin
  7. Semantic versioning'e sadık kalın

Son Güncelleme: 2025-10-13
Versiyon: 1.0.0