הנחיות לדיווח על בעיות
דוחות באגים יעילים ובקשות לתכונות חיוניים לפיתוח XOOPS. מדריך זה עוזר לך ליצור בעיות באיכות גבוהה.
לפני הדיווח
Section titled “לפני הדיווח”בדוק בעיות קיימות
Section titled “בדוק בעיות קיימות”חפש תמיד קודם:
- עבור אל GitHub Issues
- חפש מילות מפתח הקשורות לבעיה שלך
- בדוק בעיות סגורות - ייתכן שכבר נפתרו
- תסתכל על בקשות משיכה - עשוי להיות בתהליך
השתמש במסנני חיפוש:
is:issue is:open label:bug- באגים פתוחיםis:issue is:open label:feature- בקשות תכונה פתוחותis:issue sort:updated- בעיות שעודכנו לאחרונה
האם זו באמת בעיה?
Section titled “האם זו באמת בעיה?”שקול תחילה:
- בעיית תצורה? - בדוק את התיעוד
- שאלת שימוש? - שאל בפורומים או בקהילת Discord
- בעיית אבטחה? - עיין בסעיף #security-issues למטה
- ספציפי למודול? - דווח למנהל המודול
- ספציפי לנושא? - דווח למחבר הנושא
סוגי בעיות
Section titled “סוגי בעיות”דוח באגים
Section titled “דוח באגים”באג הוא התנהגות או פגם בלתי צפויים.
דוגמאות:
- הכניסה לא עובדת
- שגיאות במסד נתונים
- חסר אימות טופס
- פגיעות אבטחה
בקשת תכונה
Section titled “בקשת תכונה”בקשת תכונה היא הצעה לפונקציונליות חדשה.
דוגמאות:
- הוסף תמיכה בתכונה חדשה
- שפר את הפונקציונליות הקיימת
- הוסף תיעוד חסר
- שיפורי ביצועים
שיפור משפר את הפונקציונליות הקיימת.
דוגמאות:
- הודעות שגיאה טובות יותר
- ביצועים משופרים
- עיצוב טוב יותר של API
- חווית משתמש טובה יותר
בעיות תיעוד כוללות תיעוד חסר או שגוי.
דוגמאות:
- תיעוד API לא שלם
- מדריכים מיושנים
- חסרות דוגמאות קוד
- שגיאות הקלדה בתיעוד
דיווח על באג
Section titled “דיווח על באג”תבנית דיווח באגים
Section titled “תבנית דיווח באגים”## 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).דוגמה לדוח באג טוב
Section titled “דוגמה לדוח באג טוב”## 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.דוגמה לקויה של דיווח באג
Section titled “דוגמה לקויה של דיווח באג”## DescriptionLogin doesn't work
## Steps to ReproduceIt doesn't work
## Expected BehaviorIt should work
## Actual BehaviorIt doesn't
## EnvironmentLatest versionדיווח על בקשת תכונה
Section titled “דיווח על בקשת תכונה”תבנית בקשת תכונה
Section titled “תבנית בקשת תכונה”## 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?דוגמה לבקשת תכונה טובה
Section titled “דוגמה לבקשת תכונה טובה”## 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.בעיות אבטחה
Section titled “בעיות אבטחה”האם NOT דווח באופן פומבי
Section titled “האם NOT דווח באופן פומבי”לעולם אל תיצור בעיה ציבורית עבור פרצות אבטחה.
דווח באופן פרטי
Section titled “דווח באופן פרטי”- שלח אימייל לצוות האבטחה: security@xoops.org
- כלול:
- תיאור הפגיעות
- שלבים להתרבות
- השפעה פוטנציאלית
- פרטי הקשר שלך
חשיפה אחראית
Section titled “חשיפה אחראית”- אנו נאשר קבלה תוך 48 שעות
- אנו נספק עדכונים כל 7 ימים
- נעבוד על ציר זמן קבוע
- אתה יכול לבקש קרדיט על הגילוי
- תיאום עיתוי החשיפה לציבור
דוגמה לבעיית אבטחה
Section titled “דוגמה לבעיית אבטחה”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.xשיטות מומלצות של כותרת גיליון
Section titled “שיטות מומלצות של כותרת גיליון”כותרות טובות
Section titled “כותרות טובות”✅ 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.2כותרות גרועות
Section titled “כותרות גרועות”❌ Bug in system❌ Help me!!❌ It doesn't work❌ Question about XOOPS❌ Errorהנחיות כותרת
Section titled “הנחיות כותרת”- היה ספציפי - ציין מה ואיפה
- היה תמציתי - מתחת ל-75 תווים
- השתמש בזמן הווה - “מראה דף ריק” לא “הראה ריק”
- כלול הקשר - “בפאנל ניהול”, “במהלך ההתקנה”
- הימנע ממילים כלליות - לא “תיקון”, “עזרה”, “בעיה”
נושא תיאור שיטות עבודה מומלצות
Section titled “נושא תיאור שיטות עבודה מומלצות”כלול מידע חיוני
Section titled “כלול מידע חיוני”- מה - תיאור ברור של הבעיה
- היכן - איזה עמוד, מודול או תכונה
- מתי - שלבים לשכפול
- סביבה - גרסה, מערכת הפעלה, דפדפן, PHP
- למה - למה זה חשוב
השתמש בעיצוב קוד
Section titled “השתמש בעיצוב קוד”Error message: `Error: Cannot find user`
Code snippet:```php$user = $this->getUser($id);if (!$user) { echo "שגיאה: לא ניתן למצוא משתמש";}### כלול צילומי מסך
לבעיות בממשק המשתמש, כלול:- צילום מסך של הבעיה- צילום מסך של התנהגות צפויה- הערה מה לא בסדר (חצים, עיגולים)
### השתמש בתוויות
הוסף תוויות לקטגוריות:- `bug` - דוח באג- `enhancement` - בקשת שיפור- `documentation` - בעיית תיעוד- `help wanted` - מחפש עזרה- `good first issue` - טוב לתורמים חדשים
---
## לאחר הדיווח
### היו מגיבים
- בדוק אם יש שאלות בהערות לגיליון- ספק מידע נוסף אם תתבקש- בדוק את התיקונים המוצעים- ודא שהבאג עדיין קיים עם גרסאות חדשות
### עקוב אחר כללי ההתנהגות
- היו מכבדים ומקצועיים- נניח כוונות טובות- אל תדרוש תיקונים - מפתחים הם מתנדבים- הציעו לעזור במידת האפשר- תודה לתורמים על עבודתם
### שמור על התמקדות בנושא
- הישאר על הנושא- אל תדון בנושאים לא קשורים- קישור לנושאים קשורים במקום זאת- אל תשתמש בבעיות להצבעת תכונה
---
## מה קורה לבעיות
### תהליך טריאג'
1. **נוצרה גיליון חדש** - GitHub מודיע למנהלים2. **סקירה ראשונית** - נבדקה בהירות וכפולות3. **הקצאת תווית** - מסווג ומתעדף4. **משימה** - הוקצתה למישהו אם מתאים5. **דיון** - מידע נוסף נאסף במידת הצורך
### רמות עדיפות
- **קריטי** - אובדן נתונים, אבטחה, שבר מוחלט- **גבוה** - התכונה העיקרית שבורה, משפיעה על משתמשים רבים- **בינוני** - חלק מהתכונה שבורה, פתרון זמין- **נמוך** - בעיה קטנה, מקרה שימוש בקוסמטיקה או נישה
### תוצאות רזולוציה
- **תוקן** - הבעיה נפתרה ביח"צ- **לא יתוקן** - נדחה מסיבות טכניות או אסטרטגיות- **כפול** - זהה לסוגיה אחרת- **לא חוקי** - לא ממש בעיה- **צריך מידע נוסף** - ממתין לפרטים נוספים
---
## דוגמאות לבעיות
### דוגמה: דוח באג טוב```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.דוגמה: בקשת תכונה טובה
Section titled “דוגמה: בקשת תכונה טובה”## 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.תיעוד קשור
Section titled “תיעוד קשור”- קוד התנהגות
- זרימת עבודה של תרומה
- משוך הנחיות בקשה
- סקירה תורמת
#xoops #בעיות #דיווח באגים #פיצ’רים-בקשות #github