Katkı İş Akışı
Bu kılavuz, ilk kurulumdan birleştirilmiş çekme isteğine kadar XOOPS’ye katkıda bulunmanın tüm süreci boyunca size yol gösterir.
Önkoşullar
Section titled “Önkoşullar”Katkıda bulunmaya başlamadan önce aşağıdakilere sahip olduğunuzdan emin olun:
- Git kuruldu ve yapılandırıldı
- GitHub hesabı (ücretsiz)
- PHP 7,4+ XOOPS geliştirme için
- Bağımlılık yönetimi için Composer
- Git iş akışları hakkında temel bilgi
- Davranış Kurallarına aşinalık
Adım 1: Depoyu çatallayın
Section titled “Adım 1: Depoyu çatallayın”GitHub Web Arayüzünde
Section titled “GitHub Web Arayüzünde”- Depoya gidin (ör.
XOOPS/XoopsCore27) - Sağ üst köşedeki Çatal düğmesini tıklayın
- Nerede çatallanacağını seçin (kişisel hesabınız)
- Çatalın tamamlanmasını bekleyin
Neden Çatal?
Section titled “Neden Çatal?”- Üzerinde çalışabileceğiniz kendi kopyanız olsun
- Bakımcıların çok sayıda şubeyi yönetmesine gerek yok
- Çatalınızın tam kontrolü sizde
- Çekme İstekleri çatalınıza ve yukarı akış deposuna referans verir
Adım 2: Çatalınızı Yerel Olarak Klonlayın
Section titled “Adım 2: Çatalınızı Yerel Olarak Klonlayın”# Clone your fork (replace YOUR_USERNAME)git clone https://github.com/YOUR_USERNAME/XoopsCore27.gitcd XoopsCore27
# Add upstream remote to track original repositorygit remote add upstream https://github.com/XOOPS/XoopsCore27.git
# Verify remotes are set correctlygit remote -v# origin https://github.com/YOUR_USERNAME/XoopsCore27.git (fetch)# origin https://github.com/YOUR_USERNAME/XoopsCore27.git (push)# upstream https://github.com/XOOPS/XoopsCore27.git (fetch)# upstream https://github.com/XOOPS/XoopsCore27.git (nofetch)Adım 3: Geliştirme Ortamını Kurun
Section titled “Adım 3: Geliştirme Ortamını Kurun”Bağımlılıkları Yükle
Section titled “Bağımlılıkları Yükle”# Install Composer dependenciescomposer install
# Install development dependenciescomposer install --dev
# For module developmentcd modules/mymodulecomposer installGit’i yapılandır
Section titled “Git’i yapılandır”# Set your Git identitygit config user.name "Your Name"git config user.email "your.email@example.com"
# Optional: Set global Git configgit config --global user.name "Your Name"git config --global user.email "your.email@example.com"Testleri Çalıştır
Section titled “Testleri Çalıştır”# Make sure tests pass in clean state./vendor/bin/phpunit
# Run specific test suite./vendor/bin/phpunit --testsuite unitAdım 4: Özellik Dalı Oluşturun
Section titled “Adım 4: Özellik Dalı Oluşturun”Şube Adlandırma Kuralı
Section titled “Şube Adlandırma Kuralı”Şu modeli izleyin: <type>/<description>
Türler:
feature/- Yeni özellikfix/- Hata düzeltmesidocs/- Yalnızca belgelerrefactor/- Kodu yeniden düzenlemetest/- Test eklemelerichore/- Bakım, takımlama
Örnekler:
# Feature branchgit checkout -b feature/add-two-factor-auth
# Bug fix branchgit checkout -b fix/prevent-xss-in-forms
# Documentation branchgit checkout -b docs/update-api-guide
# Always branch from upstream/main (or develop)git checkout -b feature/my-feature upstream/mainŞubeyi Güncel Tutun
Section titled “Şubeyi Güncel Tutun”# Before you start work, sync with upstreamgit fetch upstreamgit merge upstream/main
# Later, if upstream has changedgit fetch upstreamgit rebase upstream/mainAdım 5: Değişikliklerinizi Yapın
Section titled “Adım 5: Değişikliklerinizi Yapın”Geliştirme Uygulamaları
Section titled “Geliştirme Uygulamaları”- **PH000000¤ Standartlarına uygun olarak kodu yazın
- Yeni işlevler için testler yazın
- Gerekirse belgeleri güncelleyin
- Linter’ları çalıştırın ve kod formatlayıcıları
Kod Kalitesi Kontrolleri
Section titled “Kod Kalitesi Kontrolleri”# Run all tests./vendor/bin/phpunit
# Run with coverage./vendor/bin/phpunit --coverage-html coverage/
# Run PHP CS Fixer./vendor/bin/php-cs-fixer fix --dry-run
# Run PHPStan static analysis./vendor/bin/phpstan analyse class/ src/İyi Değişiklikler Yapın
Section titled “İyi Değişiklikler Yapın”# Check what you changedgit statusgit diff
# Stage specific filesgit add class/MyClass.phpgit add tests/MyClassTest.php
# Or stage all changesgit add .
# Commit with descriptive messagegit commit -m "feat(auth): add two-factor authentication support"Adım 6: Şubeyi Senkronize Tutun
Section titled “Adım 6: Şubeyi Senkronize Tutun”Özelliğiniz üzerinde çalışırken ana dal ilerleyebilir:
# Fetch latest changes from upstreamgit fetch upstream
# Option A: Rebase (preferred for clean history)git rebase upstream/main
# Option B: Merge (simpler but adds merge commits)git merge upstream/main
# If conflicts occur, resolve them then:git add .git rebase --continue # or git merge --continueAdım 7: Çatalınıza İtin
Section titled “Adım 7: Çatalınıza İtin”# Push your branch to your forkgit push origin feature/my-feature
# On subsequent pushesgit push
# If you rebased, you might need force push (use carefully!)git push --force-with-lease origin feature/my-featureAdım 8: Çekme İsteği Oluşturun
Section titled “Adım 8: Çekme İsteği Oluşturun”GitHub Web Arayüzünde
Section titled “GitHub Web Arayüzünde”- GitHub’daki çatalınıza gidin
- Şubenizden PR oluşturmanızı isteyen bir bildirim göreceksiniz
- “Karşılaştır ve isteği çek” seçeneğini tıklayın
- Veya manuel olarak “Yeni çekme isteği” seçeneğine tıklayın ve şubenizi seçin
Halkla İlişkiler Başlığı ve Açıklaması
Section titled “Halkla İlişkiler Başlığı ve Açıklaması”Başlık Formatı:
<type>(<scope>): <subject>Örnekler:
feat(auth): add two-factor authenticationfix(forms): prevent XSS in text inputdocs: update installation guiderefactor(core): improve performanceAçıklama Şablonu:
## DescriptionBrief explanation of what this PR does.
## Changes- Changed X from A to B- Added feature Y- Fixed bug Z
## Type of Change- [ ] New feature (adds new functionality)- [ ] Bug fix (fixes an issue)- [ ] Breaking change (API/behavior change)- [ ] Documentation update
## Testing- [ ] Added tests for new functionality- [ ] All existing tests pass- [ ] Manual testing performed
## Screenshots (if applicable)Include before/after screenshots for UI changes.
## Related IssuesCloses #123Related to #456
## Checklist- [ ] Code follows style guidelines- [ ] Self-reviewed own code- [ ] Commented complex code- [ ] Updated documentation- [ ] No new warnings generated- [ ] Tests pass locallyHalkla İlişkiler İnceleme Kontrol Listesi
Section titled “Halkla İlişkiler İnceleme Kontrol Listesi”Göndermeden önce aşağıdakilerden emin olun:
- Kod PHP Standartlarına uygundur
- Testler dahildir ve başarılıdır
- Dokümantasyon güncellendi (gerekiyorsa)
- Birleştirme çakışması yok
- Commit mesajları net
- İlgili konulara atıfta bulunulmuştur
- PR açıklaması ayrıntılıdır
- Hata ayıklama kodu veya konsol günlüğü yok
Adım 9: Geri Bildirime Yanıt Verin
Section titled “Adım 9: Geri Bildirime Yanıt Verin”Kod İncelemesi Sırasında
Section titled “Kod İncelemesi Sırasında”- Yorumları dikkatlice okuyun - Geri bildirimleri anlayın
- Soru sorun - Açık değilse açıklama isteyin
- Alternatifleri tartışın - Yaklaşımları saygıyla tartışın
- İstenen değişiklikleri yapın - Şubenizi güncelleyin
- Güncellenen taahhütleri zorla itin - Geçmişi yeniden yazıyorsanız
# Make changesgit add .git commit --amend # Modify last commitgit push --force-with-lease origin feature/my-feature
# Or add new commitsgit commit -m "Address feedback on PR review"git push origin feature/my-featureYinelemeyi Bekleyin
Section titled “Yinelemeyi Bekleyin”- Çoğu PR birden fazla inceleme turu gerektirir
- Sabırlı ve yapıcı olun
- Geri bildirimi öğrenme fırsatı olarak görün
- Bakımcılar yeniden düzenleme önerebilir
Adım 10: Birleştirme ve Temizleme
Section titled “Adım 10: Birleştirme ve Temizleme”Onaydan Sonra
Section titled “Onaydan Sonra”Bakımcılar onaylayıp birleştirdikten sonra:
- GitHub otomatik olarak birleşir veya bakımcı birleştirmeyi tıklar
- Şubeniz silinir (genellikle otomatiktir)
- Değişiklikler yukarı yöndedir
Yerel Temizleme
Section titled “Yerel Temizleme”# Switch to main branchgit checkout main
# Update main with merged changesgit fetch upstreamgit merge upstream/main
# Delete local feature branchgit branch -d feature/my-feature
# Delete from your fork (if not auto-deleted)git push origin --delete feature/my-featureİş Akış Şeması
Section titled “İş Akış Şeması”graph LR A[Fork Repository] --> B[Clone Fork] B --> C[Create Branch] C --> D[Make Changes] D --> E[Commit & Push] E --> F[Create PR] F --> G{Review} G -->|Approved| H[Merge] G -->|Changes Needed| I[Update PR] I --> G H --> J[Cleanup] J --> K[Done]Ortak Senaryolar
Section titled “Ortak Senaryolar”Başlamadan Önce Senkronizasyon
Section titled “Başlamadan Önce Senkronizasyon”# Always start freshgit fetch upstreamgit checkout -b feature/new-thing upstream/mainDaha Fazla İşlem Ekleme
Section titled “Daha Fazla İşlem Ekleme”# Just push againgit add .git commit -m "feat: additional changes"git push origin feature/new-thingHataları Düzeltmek
Section titled “Hataları Düzeltmek”# Last commit has wrong messagegit commit --amend -m "Correct message"git push --force-with-lease
# Revert to previous state (careful!)git reset --soft HEAD~1 # Keep changesgit reset --hard HEAD~1 # Discard changesBirleştirme Çakışmalarını Ele Alma
Section titled “Birleştirme Çakışmalarını Ele Alma”# Rebase and resolve conflictsgit fetch upstreamgit rebase upstream/main
# Edit conflicted files to resolve# Then continuegit add .git rebase --continuegit push --force-with-leaseEn İyi Uygulamalar
Section titled “En İyi Uygulamalar”- Şubelerin tek konulara odaklanmasını sağlayın
- Küçük, mantıklı taahhütler yapın
- Açıklayıcı taahhüt mesajları yazın
- Şubenizi sık sık güncelleyin
- İtmeden önce test edin
- Belge değişiklikleri
- Geri bildirimlere duyarlı olun
- Doğrudan main/master şubesinde çalışın
- İlgisiz değişiklikleri tek bir PR’de karıştırın
- Oluşturulan dosyaları veya node_modules’ı işleyin
- PR herkese açık hale geldikten sonra zorla itme yapın ( —force-with-lease kullanın)
- Kod inceleme geri bildirimlerini dikkate almayın
- Büyük PR’ler oluşturun (daha küçük olanlara bölün)
- Hassas verileri kaydedin (API anahtarlar, şifreler)
Başarı İçin İpuçları
Section titled “Başarı İçin İpuçları”İletişim kurun
Section titled “İletişim kurun”- Çalışmaya başlamadan önce konularda sorular sorun
- Karmaşık değişiklikler konusunda rehberlik isteyin
- PR açıklamasında yaklaşımı tartışın
- Geri bildirimlere anında yanıt verin
Standartları Takip Edin
Section titled “Standartları Takip Edin”- PHP Standartlarını İnceleyin
- Sorun Raporlama yönergelerini kontrol edin
- Katkıda Bulunmaya Genel Bakış’ı okuyun
- Çekme İsteği Yönergelerini izleyin
Kod Tabanını Öğrenin
Section titled “Kod Tabanını Öğrenin”- Mevcut kod kalıplarını okuyun
- Benzer uygulamaları inceleyin
- Mimariyi anlayın
- Temel Kavramları Kontrol Edin
İlgili Belgeler
Section titled “İlgili Belgeler”- Davranış Kuralları
- Çekme Talebi Yönergeleri
- Sorun Raporlama
- PHP Kodlama Standartları
- Katkıda Bulunmaya Genel Bakış
#xoops #git #github #katkıda bulunma #iş akışı #çekme isteği