Skip to content

Smjernice za zahtjev za povlačenje

Ovaj dokument pruža sveobuhvatne smjernice za podnošenje zahtjeva za povlačenje projektima XOOPS. Slijeđenje ovih smjernica osigurava glatke preglede koda i brže spajanje.

1. Visit the GitHub repository
2. Go to Issues tab
3. Search for existing issues related to your change
4. Check both open and closed issues

Korak 2: račvajte i klonirajte spremište

Section titled “Korak 2: račvajte i klonirajte spremište”
Terminal window
# Fork the repository on GitHub
# Click "Fork" button on the repository page
# Clone your fork
git clone https://github.com/YOUR_USERNAME/XOOPS.git
cd XOOPS
# Add upstream remote
git remote add upstream https://github.com/XOOPS/XOOPS.git
# Verify remotes
git remote -v
# Should show: origin (your fork) and upstream (official)
Terminal window
# Update main branch
git fetch upstream
git checkout main
git merge upstream/main
# Create feature branch
# Use descriptive names: bugfix/issue-number or feature/description
git checkout -b bugfix/123-fix-database-connection
git checkout -b feature/add-psr-7-support
Terminal window
# Make changes to your files
# Follow code style guidelines
# Stage changes
git add .
# Commit with clear message
git commit -m "Fix database connection timeout issue"
# Create multiple commits for logical changes
git commit -m "Add connection retry logic"
git commit -m "Improve error messages for debugging"

Koristite jasne, opisne poruke slijedeći ove obrasce:

# Format
<type>: <subject>
<body>
<footer>
# Example 1: Bug fix
fix: 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: Feature
feat: 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 signature
UpišiteOpisPrimjer
featNova značajkafeat: add user dashboard widget
fixIspravak pogreškefix: resolve cache invalidation bug
docsDokumentacijadocs: update API reference
styleStil koda (bez promjene logike)style: format imports
refactorPrerađivanje kodarefactor: simplify service layer
perfPoboljšanje performansiperf: optimize database queries
testPromjene testatest: add integration tests
choreIzrada/promjene alatachore: update dependencies
## Description
Clear description of changes made and why.
## Type of Change
- [ ] Bug fix
- [ ] New feature
- [ ] Breaking change
- [ ] Documentation update
## Related Issues
Closes #123
Related 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 passing

Slijedite smjernice Code-Stylea:

<?php
// Good: PSR-12 style
namespace 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]);
}
}
tests/Feature/DatabaseConnectionTest.php
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);
}
}
Terminal window
# Run all tests
vendor/bin/phpunit
# Run specific test file
vendor/bin/phpunit tests/Feature/DatabaseConnectionTest.php
# Run with coverage
vendor/bin/phpunit --coverage-html coverage/
Terminal window
# Fetch latest from upstream
git fetch upstream
# Rebase on latest main
git rebase upstream/main
# Or merge if you prefer
git merge upstream/main
# Force push if rebased (warning: only on your branch!)
git push -f origin bugfix/123-fix-database-connection
[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 class
  1. Ispravnost

    • Rješava li kod navedeni problem?
    • Obrađuju li se rubni slučajevi?
    • Je li rukovanje pogreškama primjereno?
  2. Kvaliteta

    • Prati li standarde kodiranja?
    • Može li se održavati?
    • Je li dobro ispitan?
  3. Performanse

    • Ima li regresija performansi?
    • Jesu li upiti optimizirani?
    • Je li korištenje memorije razumno?
  4. Sigurnost

    • Validacija unosa?
    • SQL sprječavanje ubrizgavanja?
    • Autentifikacija/autorizacija?
Terminal window
# Address feedback
# Edit files based on review comments
# Commit changes
git commit -m "Address code review feedback
- Add additional error handling
- Improve test coverage for edge cases
- Update documentation"
# Push changes
git push origin bugfix/123-fix-database-connection

Problem: Recenzenti ne mogu učinkovito pregledati masovne PR-ove

Rješenje: Podijelite se na manje PR-ove

  • Prvi PR: Temeljne promjene
  • Drugi PR: Testovi
  • Treći PR: Dokumentacija

Problem: recenzenti ne mogu provjeriti funkcionalnost

Rješenje: dodajte opsežne testove prije slanja

Problem: Vaša grana nije sinkronizirana s glavnom

Rješenje: Rebase na najnoviji glavni

Terminal window
git fetch upstream
git rebase upstream/main
git push -f origin your-branch
Terminal window
# Switch to main
git checkout main
# Update main
git pull upstream main
# Delete local branch
git branch -d bugfix/123-fix-database-connection
# Delete remote branch
git push origin --delete bugfix/123-fix-database-connection
  • Stvorite opisne poruke predaje
  • Napravite fokusirane PR-ove s jednom svrhom
  • Uključite testove za novu funkcionalnost
  • Ažuriranje dokumentacije
  • Pitanja povezana s referencama
  • PR opisi neka budu jasni
  • Brzo odgovarajte na recenzije
  • Uključi nepovezane promjene
  • Spojite main u svoju granu (koristite rebase)
  • Prisilni pritisak nakon početka pregleda
  • Preskoči testove
  • Pošaljite radove u tijeku
  • Zanemarite povratne informacije o pregledu koda

Povezana dokumentacija- ../Doprinos - Pregled doprinosa

Section titled “Povezana dokumentacija- ../Doprinos - Pregled doprinosa”
  • Code-Style - Smjernice za stil koda
  • ../../03-Module-Development/Best-Practices/Testing - Najbolje prakse testiranja
  • ../Architecture-Decisions/ADR-Index - Arhitektonske smjernice

Zadnje ažuriranje: 2026-01-31 Odnosi se na: Sve XOOPS projekte Repozitorij: https://github.com/XOOPS/XOOPS