Lehívási kérés irányelvei
Ez a dokumentum átfogó iránymutatást ad a lehívási kérelmek XOOPS projektekhez történő benyújtásához. Ezen irányelvek követése zökkenőmentes kódellenőrzést és gyorsabb egyesítési időt biztosít.
Lehívási kérelem létrehozása előtt
Szekció neve “Lehívási kérelem létrehozása előtt”1. lépés: Ellenőrizze a meglévő problémákat
Szekció neve “1. lépés: Ellenőrizze a meglévő problémákat”1. Visit the GitHub repository2. Go to Issues tab3. Search for existing issues related to your change4. Check both open and closed issues2. lépés: Fork és klónozd a tárat
Szekció neve “2. lépés: Fork és klónozd a tárat”# Fork the repository on GitHub# Click "Fork" button on the repository page
# Clone your forkgit clone https://github.com/YOUR_USERNAME/XOOPS.gitcd XOOPS
# Add upstream remotegit remote add upstream https://github.com/XOOPS/XOOPS.git
# Verify remotesgit remote -v# Should show: origin (your fork) and upstream (official)3. lépés: Hozzon létre egy szolgáltatási ágat
Szekció neve “3. lépés: Hozzon létre egy szolgáltatási ágat”# Update main branchgit fetch upstreamgit checkout maingit merge upstream/main
# Create feature branch# Use descriptive names: bugfix/issue-number or feature/descriptiongit checkout -b bugfix/123-fix-database-connectiongit checkout -b feature/add-psr-7-support4. lépés: Végezze el a változtatásokat
Szekció neve “4. lépés: Végezze el a változtatásokat”# Make changes to your files# Follow code style guidelines
# Stage changesgit add .
# Commit with clear messagegit commit -m "Fix database connection timeout issue"
# Create multiple commits for logical changesgit commit -m "Add connection retry logic"git commit -m "Improve error messages for debugging"Kövesse az üzenetszabványokat
Szekció neve “Kövesse az üzenetszabványokat”Good Commit Messages
Szekció neve “Good Commit Messages”Use clear, descriptive messages following these patterns:
# Format<type>: <subject>
<body>
<footer>
# Example 1: Bug fixfix: resolve database connection timeout
Add exponential backoff retry mechanism to database connection.Connections now retry up to 3 times with increasing delays.
Fixes #123# Example 2: Featurefeat: implement PSR-7 HTTP message interfaces
Implement Psr\Http\Message interfaces for request/response handling.Provides type-safe HTTP message handling across the framework.
BREAKING CHANGE: Updated RequestHandler signatureCommit Type Categories
Szekció neve “Commit Type Categories”| Típus | Leírás | Példa |
|---|---|---|
feat | New feature | feat: add user dashboard widget |
fix | Bug fix | fix: resolve cache invalidation bug |
docs | Dokumentáció | docs: update API reference |
style | Kódstílus (nincs logikai változás) | style: format imports |
refactor | Code refactoring | refactor: simplify service layer |
perf | Teljesítményjavítás | perf: optimize database queries |
test | Test changes | test: add integration tests |
chore | Build/tooling változások | chore: update dependencies |
Leírás kérése
Szekció neve “Leírás kérése”PR Template
Szekció neve “PR Template”## DescriptionClear description of changes made and why.
## Type of Change- [ ] Bug fix- [ ] New feature- [ ] Breaking change- [ ] Documentation update
## Related IssuesCloses #123Related to #456
## Changes Made- Change 1- Change 2- Change 3
## Testing- [ ] Tested locally- [ ] All tests pass- [ ] Added new tests- [ ] Manual testing steps included
## Checklist- [ ] Code follows style guidelines- [ ] Self-review completed- [ ] Comments added for complex logic- [ ] Documentation updated- [ ] No new warnings generated- [ ] Added tests for new functionality- [ ] All tests passingKódminőségi követelmények
Szekció neve “Kódminőségi követelmények”Code Style
Szekció neve “Code Style”Kövesse a kódstílusra vonatkozó irányelveket:
<?php// Good: PSR-12 stylenamespace MyModule\Controller;
use MyModule\Model\Item;use MyModule\Repository\ItemRepository;
class ItemController{ private ItemRepository $repository;
public function __construct(ItemRepository $repository) { $this->repository = $repository; }
public function indexAction() { $items = $this->repository->findAll(); return $this->render('items', ['items' => $items]); }}Testing Requirements
Szekció neve “Testing Requirements”Unit Tests
Szekció neve “Unit Tests”namespace Tests\Feature;
use PHPUnit\Framework\TestCase;use Xoops\Database\XoopsDatabase;
class DatabaseConnectionTest extends TestCase{ private XoopsDatabase $database;
protected function setUp(): void { $this->database = new XoopsDatabase(); }
public function testConnectionWithValidCredentials() { $result = $this->database->connect(); $this->assertTrue($result); }
public function testConnectionWithInvalidCredentials() { $this->database->setCredentials('invalid', 'invalid'); $result = $this->database->connect(); $this->assertFalse($result); }}Running Tests
Szekció neve “Running Tests”# Run all testsvendor/bin/phpunit
# Run specific test filevendor/bin/phpunit tests/Feature/DatabaseConnectionTest.php
# Run with coveragevendor/bin/phpunit --coverage-html coverage/Working with Branches
Szekció neve “Working with Branches”Keep Branch Updated
Szekció neve “Keep Branch Updated”# Fetch latest from upstreamgit fetch upstream
# Rebase on latest maingit rebase upstream/main
# Or merge if you prefergit merge upstream/main
# Force push if rebased (warning: only on your branch!)git push -f origin bugfix/123-fix-database-connectionLehúzási kérelem létrehozása
Szekció neve “Lehúzási kérelem létrehozása”PR Title Format
Szekció neve “PR Title Format”[Type] Short description (fix/feature/docs)
Examples:- [FIX] Resolve database connection timeout issue (#123)- [FEATURE] Implement PSR-7 HTTP message interfaces- [DOCS] Update API reference for Criteria classCode Review Process
Szekció neve “Code Review Process”Amit a bírálók keresnek
Szekció neve “Amit a bírálók keresnek”-
Correctness
- Megoldja a kód a feltett problémát?
- Az éles ügyeket kezelik?
- Is error handling appropriate?
-
Quality
- Követi a kódolási szabványokat?
- Is it maintainable?
- Is it well-tested?
-
Performance
- Valami visszaesés a teljesítményben?
- Are queries optimized?
- Ésszerű a memóriahasználat?
-
Security
- Input validation?
- SQL injekció megelőzés?
- Authentication/authorization?
Válasz a visszajelzésre
Szekció neve “Válasz a visszajelzésre”# Address feedback# Edit files based on review comments
# Commit changesgit commit -m "Address code review feedback
- Add additional error handling- Improve test coverage for edge cases- Update documentation"
# Push changesgit push origin bugfix/123-fix-database-connectionGyakori PR-problémák és megoldások
Szekció neve “Gyakori PR-problémák és megoldások”1. probléma: A PR túl nagy
Szekció neve “1. probléma: A PR túl nagy”Probléma: A bírálók nem tudják hatékonyan felülvizsgálni a hatalmas PR-eket
Megoldás: Szakadjon kisebb PR-kra
- First PR: Core changes
- Second PR: Tests
- Harmadik PR: Dokumentáció
2. probléma: Nincsenek tesztek
Szekció neve “2. probléma: Nincsenek tesztek”Probléma: Az ellenőrök nem tudják ellenőrizni a működőképességet
Megoldás: A beküldés előtt adjon hozzá átfogó teszteket
3. probléma: Ütközés a fővel
Szekció neve “3. probléma: Ütközés a fővel”Problem: Your branch is out of sync with main
Megoldás: Rebase a legújabb fő
git fetch upstreamgit rebase upstream/maingit push -f origin your-branchAfter Merge
Szekció neve “After Merge”Cleanup
Szekció neve “Cleanup”# Switch to maingit checkout main
# Update maingit pull upstream main
# Delete local branchgit branch -d bugfix/123-fix-database-connection
# Delete remote branchgit push origin --delete bugfix/123-fix-database-connectionA legjobb gyakorlatok összefoglalása
Szekció neve “A legjobb gyakorlatok összefoglalása”- Leíró véglegesítési üzenetek létrehozása
- Fókuszált, egycélú PR-ok készítése
- Tartalmazzon teszteket az új funkciókhoz
- Update documentation
- Referenciával kapcsolatos kérdések
- Tartsa világosan a PR-leírásokat
- Gyorsan válaszoljon a véleményekre
Don’ts
Szekció neve “Don’ts”- Tartalmazzon nem kapcsolódó változtatásokat
- A fő egyesítése a fiókteleppel (rebase használata)
- Kényszernyomás a felülvizsgálat megkezdése után
- Skip tests
- A folyamatban lévő munkák benyújtása
- A kódellenőrzési visszajelzés figyelmen kívül hagyása
Kapcsolódó dokumentáció
Szekció neve “Kapcsolódó dokumentáció”- ../Contributing - Áttekintés
- Kódstílus - Kódstílus irányelvek
- ../../03-module-Development/Best-Practices/Testing - A legjobb gyakorlatok tesztelése
- ../Architecture-Decisions/ADR-Index - Építészeti irányelvek
Resources
Szekció neve “Resources”- Git-dokumentáció
- GitHub Pull Request Help
- Hagyományos kötelezettségvállalások
- XOOPS GitHub szervezet
Utolsó frissítés: 2026.01.31 Érvényes: Minden XOOPS projekt Leraktár: https://github.com/XOOPS/XOOPS