Sorun Raporlama Yönergeleri
Etkili hata raporları ve özellik talepleri XOOPS geliştirmesi için çok önemlidir. Bu kılavuz, yüksek kaliteli sorunlar oluşturmanıza yardımcı olur.
Rapor Etmeden Önce
Section titled “Rapor Etmeden Önce”Mevcut Sorunları Kontrol Edin
Section titled “Mevcut Sorunları Kontrol Edin”Her zaman önce arayın:
- GitHub Sorunları’na gidin
- Sorununuzla ilgili anahtar kelimeleri arayın
- Kapatılan sorunları kontrol edin - zaten çözülmüş olabilir
- Çekme isteklerine bakın; devam ediyor olabilir
Arama filtrelerini kullanın:
is:issue is:open label:bug- Hataları açis:issue is:open label:feature- Özellik isteklerini açis:issue sort:updated- Son güncellenen sorunlar
Bu Gerçekten Bir Sorun mu?
Section titled “Bu Gerçekten Bir Sorun mu?”İlk önce şunu düşünün:
- Yapılandırma sorunu mu var? - Belgeleri kontrol edin
- Kullanım sorusu? - Forumlarda veya Discord topluluğunda sorun
- Güvenlik sorunu mu? - Aşağıdaki #güvenlik sorunları bölümüne bakın
- module özel mi? - module bakımcısına rapor verin
- Temaya özel mi? - theme yazarına rapor verin
Sorun Türleri
Section titled “Sorun Türleri”Hata Raporu
Section titled “Hata Raporu”Hata, beklenmeyen bir davranış veya kusurdur.
Örnekler:
- Giriş çalışmıyor
- database hataları
- Eksik form doğrulaması
- Güvenlik açığı
Özellik İsteği
Section titled “Özellik İsteği”Özellik isteği, yeni işlevsellik için bir öneridir.
Örnekler:
- Yeni özellik için destek ekleyin
- Mevcut işlevselliği iyileştirin
- Eksik belgeleri ekleyin
- Performans iyileştirmeleri
Geliştirme
Section titled “Geliştirme”Bir geliştirme mevcut işlevselliği geliştirir.
Örnekler:
- Daha iyi hata mesajları
- Geliştirilmiş performans
- Daha iyi API tasarımı
- Daha iyi user deneyimi
Belgeler
Section titled “Belgeler”Dokümantasyon sorunları arasında eksik veya yanlış dokümantasyon yer alır.
Örnekler:
- Eksik API belgeleri
- Eski kılavuzlar
- Eksik kod örnekleri
- Dokümantasyondaki yazım hataları
Hata Bildirme
Section titled “Hata Bildirme”Hata Raporu Şablonu
Section titled “Hata Raporu Şablonu”## DescriptionBrief, clear description of the bug.
## Steps to Reproduce1. Step one2. Step two3. Step three
## Expected BehaviorWhat should happen.
## Actual BehaviorWhat actually happens.
## Environment- XOOPS Version: X.Y.Z- PHP Version: 8.2/8.3/8.4- Database: MySQL/MariaDB version- Operating System: Windows/macOS/Linux- Browser: Chrome/Firefox/Safari
## ScreenshotsIf applicable, add screenshots showing the issue.
## Additional ContextAny other relevant information.
## Possible FixIf you have suggestions for fixing the issue (optional).İyi Hata Raporu Örneği
Section titled “İyi Hata Raporu Örneği”## DescriptionLogin page shows blank page when database connection fails.
## Steps to Reproduce1. Stop the MySQL service2. Navigate to the login page3. Observe the behavior
## Expected BehaviorShow a user-friendly error message explaining the database connection issue.
## Actual BehaviorThe page is completely blank - no error message, no interface visible.
## Environment- XOOPS Version: 2.7.0- PHP Version: 8.0.28- Database: MySQL 5.7- Operating System: Ubuntu 20.04- Browser: Chrome 120
## Additional ContextThis likely affects other pages too. The error should be displayed to admins or logged appropriately.
## Possible FixCheck database connection in header.php before rendering the template.Kötü Hata Raporu Örneği
Section titled “Kötü Hata Raporu Örneği”## DescriptionLogin doesn't work
## Steps to ReproduceIt doesn't work
## Expected BehaviorIt should work
## Actual BehaviorIt doesn't
## EnvironmentLatest versionÖzellik İsteğini Rapor Etme
Section titled “Özellik İsteğini Rapor Etme”Özellik İsteği Şablonu
Section titled “Özellik İsteği Şablonu”## DescriptionClear, concise description of the feature.
## Problem StatementWhy is this feature needed? What problem does it solve?
## Proposed SolutionDescribe your ideal implementation or UX.
## Alternatives ConsideredAre there other ways to achieve this goal?
## Additional ContextAny mockups, examples, or references.
## Expected ImpactHow would this benefit users? Would it be breaking?İyi Özellik İsteği Örneği
Section titled “İyi Özellik İsteği Örneği”## DescriptionAdd two-factor authentication (2FA) for user accounts.
## Problem StatementWith increasing security breaches, many CMS platforms now offer 2FA. XOOPS users want stronger account security beyond passwords.
## Proposed SolutionImplement TOTP-based 2FA (compatible with Google Authenticator, Authy, etc.).- Users can enable 2FA in their profile- Display QR code for setup- Generate backup codes for recovery- Require 2FA code at login
## Alternatives Considered- SMS-based 2FA (requires carrier integration, less secure)- Hardware keys (too complex for average users)
## Additional ContextSimilar to GitHub, GitLab, and WordPress implementations.Reference: [TOTP Standard RFC 6238](https://tools.ietf.org/html/rfc6238)
## Expected ImpactIncreases account security. Could be optional initially, mandatory in future versions.Güvenlik Sorunları
Section titled “Güvenlik Sorunları”NOT Herkese Açık Rapor Yapın
Section titled “NOT Herkese Açık Rapor Yapın”Güvenlik açıkları konusunda asla kamuya açık bir sorun oluşturmayın.
Özel Olarak Rapor Edin
Section titled “Özel Olarak Rapor Edin”- Güvenlik ekibine e-posta gönderin: Security@xoops.org
- Şunları ekleyin:
- Güvenlik açığının açıklaması
- Yeniden üretme adımları
- Potansiyel etki
- İletişim bilgileriniz
Sorumlu Açıklama
Section titled “Sorumlu Açıklama”- Alındığını 48 saat içinde onaylayacağız
- Her 7 günde bir güncelleme sağlayacağız
- Sabit bir zaman çizelgesi üzerinde çalışacağız
- Keşif için kredi talep edebilirsiniz
- Kamuya açıklama zamanlamasını koordine edin
Güvenlik Sorunu Örneği
Section titled “Güvenlik Sorunu Örneği”Subject: [SECURITY] XSS Vulnerability in Comment Form
Description:The comment form in Publisher module does not properly escape user input,allowing stored XSS attacks.
Steps to Reproduce:1. Create a comment with: <img src=x onerror="alert('xss')">2. Submit the form3. The JavaScript executes when viewing the comment
Impact:Attackers can steal user session tokens, perform actions as users,or deface the website.
Environment:- XOOPS 2.7.0- Publisher Module 1.xSayı Başlığı En İyi Uygulamalar
Section titled “Sayı Başlığı En İyi Uygulamalar”İyi Başlıklar
Section titled “İyi Başlıklar”✅ Login page shows blank error when database connection fails✅ Add two-factor authentication support✅ Form validation not preventing SQL injection in name field✅ Improve performance of user list query✅ Update installation documentation for PHP 8.2Kötü Başlıklar
Section titled “Kötü Başlıklar”❌ Bug in system❌ Help me!!❌ It doesn't work❌ Question about XOOPS❌ ErrorBaşlık Yönergeleri
Section titled “Başlık Yönergeleri”- Belirgin olun - Neyi ve nerede olduğunu belirtin
- Kısa ve öz olun - 75 karakterden az
- Şimdiki zamanı kullanın - “boş gösterilen” değil “boş sayfayı gösterir”
- Bağlamı dahil et - “yönetici panelinde”, “kurulum sırasında”
- Genel sözcüklerden kaçının - “Düzeltme”, “yardım”, “sorun” değil
Sorun Açıklaması En İyi Uygulamalar
Section titled “Sorun Açıklaması En İyi Uygulamalar”Temel Bilgileri Dahil Edin
Section titled “Temel Bilgileri Dahil Edin”- Ne - Sorunun net açıklaması
- Nerede - Hangi sayfa, module veya özellik
- Ne zaman - Yeniden oluşturma adımları
- Ortam - Sürüm, İşletim Sistemi, tarayıcı, PHP
- Neden - Bu neden önemlidir?
Kod Biçimlendirmesini Kullan
Section titled “Kod Biçimlendirmesini Kullan”Error message: `Error: Cannot find user`
Code snippet:```php$user = $this->getUser($id);if (!$user) { echo "Error: Cannot find user";}### Ekran Görüntülerini Ekle
user arayüzü sorunları için şunları ekleyin:- Sorunun ekran görüntüsü- Beklenen davranışın ekran görüntüsü- Neyin yanlış olduğunu açıklayın (oklar, daireler)
### Etiketleri Kullan
Kategorize etmek için etiketler ekleyin:- `bug` - Hata raporu- `enhancement` - Geliştirme isteği- `documentation` - Dokümantasyon sorunu- `help wanted` - Yardım arıyorum- `good first issue` - Yeni katkıda bulunanlar için iyi
---
## Raporlamadan Sonra
### Duyarlı Olun
- Sorun yorumlarındaki soruları kontrol edin- İstenirse ek bilgi sağlayın- Önerilen düzeltmeleri test edin- Yeni sürümlerde hatanın hala mevcut olduğunu doğrulayın
### Görgü Kurallarını Takip Edin
- Saygılı ve profesyonel olun- İyi niyetli olduğunuzu varsayın- Düzeltme talep etmeyin - geliştiriciler gönüllüdür- Mümkünse yardım etmeyi teklif edin- Katkıda bulunanlara çalışmaları için teşekkür ederiz
### Soruna Odaklı Tutun
- Konunun üzerinde kalın- İlgisiz konuları tartışmayın- Bunun yerine ilgili konulara bağlantı verin- Özellik oylaması için sorunları kullanmayın
---
## Sorunlara Ne Olur?
### Triyaj Süreci
1. **Yeni sayı oluşturuldu** - GitHub bakımcıları bilgilendiriyor2. **İlk inceleme** - Netlik ve kopyalar açısından kontrol edildi3. **Etiket ataması** - Kategorilere ayrılmış ve önceliklendirilmiş4. **Ödeme** - Uygunsa birine atanır5. **Tartışma** - Gerektiğinde ek bilgi toplanır
### Öncelik Düzeyleri
- **Kritik** - Veri kaybı, güvenlik, tamamen kırılma- **Yüksek** - Temel özellik bozuk, birçok kullanıcıyı etkiliyor- **Orta** - Özelliğin bir kısmı bozuk, geçici çözüm mevcut- **Düşük** - Küçük sorun, kozmetik veya özel kullanım durumu
### Çözüm Sonuçları
- **Düzeltildi** - Sorun PR'da çözüldü- **Düzeltilemez** - Teknik veya stratejik nedenlerle reddedildi- **Kopya** - Başka bir sorunla aynı- **Geçersiz** - Aslında bir sorun değil- **Daha fazla bilgi gerekiyor** - Ek ayrıntılar bekleniyor
---
## Sorun Örnekleri
### Örnek: İyi Hata Raporu```markdown## DescriptionAdmin users cannot delete items when using MySQL with strict mode enabled.
## Steps to Reproduce1. Enable `sql_mode='STRICT_TRANS_TABLES'` in MySQL2. Navigate to Publisher admin panel3. Click delete button on any article4. Error is shown
## Expected BehaviorArticle should be deleted or show meaningful error.
## Actual BehaviorError: "SQL Error - Unknown column 'deleted_at' in ON clause"
## Environment- XOOPS Version: 2.7.0- PHP Version: 8.2.0- Database: MySQL 8.0.32 with STRICT_TRANS_TABLES- Operating System: Ubuntu 22.04- Browser: Firefox 120
## Screenshots[Screenshot of error message]
## Additional ContextThis only happens with strict SQL mode. Works fine with default settings.The query is in class/PublisherItem.php:248
## Possible FixUse single quotes around 'deleted_at' or use backticks for all column names.Örnek: İyi Özellik İsteği
Section titled “Örnek: İyi Özellik İsteği”## DescriptionAdd REST API endpoints for read-only access to public content.
## Problem StatementDevelopers want to build mobile apps and external services using XOOPS data.Currently limited to SOAP API which is outdated and poorly documented.
## Proposed SolutionImplement RESTful API with:- Endpoints for articles, users, comments (read-only)- Token-based authentication- Standard HTTP status codes and errors- OpenAPI/Swagger documentation- Pagination support
## Alternatives Considered- Enhanced SOAP API (legacy, not standards-compliant)- GraphQL (more complex, maybe future)
## Additional ContextSee Publisher module API refactoring for similar patterns.Would align with modern web development practices.
## Expected ImpactEnable ecosystem of third-party tools and mobile apps.Would improve XOOPS adoption and ecosystem.İlgili Belgeler
Section titled “İlgili Belgeler”- Davranış Kuralları
- Katkı İş Akışı
- Çekme Talebi Yönergeleri
- Katkıda Bulunmaya Genel Bakış
#xoops #sorunlar #hata raporlama #özellik istekleri #github