Hozzájárulás munkafolyamata
Ez az útmutató végigvezeti a XOOPS-hoz való hozzájárulás teljes folyamatán, a kezdeti beállítástól az egyesített lekérési kérésig.
Prerequisites
Szekció neve “Prerequisites”Mielőtt elkezdené a hozzájárulást, győződjön meg arról, hogy rendelkezik:
- Git telepítve és konfigurálva
- GitHub-fiók (ingyenes)
- PHP 7.4+ for XOOPS development
- Composer a függőségkezeléshez
- Git munkafolyamatok alapismerete
- Magatartási kódex ismerete
1. lépés: Fork the Repository
Szekció neve “1. lépés: Fork the Repository”A GitHub webes felületén
Szekció neve “A GitHub webes felületén”- Navigáljon a tárhoz (pl.
XOOPS/XOOPSCore27) - Kattintson a Villa gombra a jobb felső sarokban
- Válassza ki az elágazás helyét (személyes fiókja)
- Várja meg, amíg a villa befejeződik
Why Fork?
Szekció neve “Why Fork?”- Megkapod a saját példányodat, amin dolgozhatsz
- A karbantartóknak nem kell sok fiókot kezelniük
- Teljes mértékben uralod a villát
- A Pull Requests hivatkozik a villájára és az upstream repo-ra
2. lépés: Klónozza a villát helyileg
Szekció neve “2. lépés: Klónozza a villát helyileg”# 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)3. lépés: Fejlesztői környezet beállítása
Szekció neve “3. lépés: Fejlesztői környezet beállítása”Install Dependencies
Szekció neve “Install Dependencies”# Install Composer dependenciescomposer install
# Install development dependenciescomposer install --dev
# For module developmentcd modules/mymodulecomposer installConfigure Git
Szekció neve “Configure Git”# 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"Run Tests
Szekció neve “Run Tests”# Make sure tests pass in clean state./vendor/bin/phpunit
# Run specific test suite./vendor/bin/phpunit --testsuite unit4. lépés: Feature Branch létrehozása
Szekció neve “4. lépés: Feature Branch létrehozása”Fiókelnevezési Egyezmény
Szekció neve “Fiókelnevezési Egyezmény”Kövesse a következő mintát: <type>/<description>
Types:
feature/- Új funkciófix/- Hibajavításdocs/- Csak dokumentációrefactor/- Kódrefaktorálástest/- Teszt kiegészítésekchore/- Karbantartás, szerszámozás
Példák:
# 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/mainTartsa naprakészen a fióktelepet
Szekció neve “Tartsa naprakészen a fióktelepet”# Before you start work, sync with upstreamgit fetch upstreamgit merge upstream/main
# Later, if upstream has changedgit fetch upstreamgit rebase upstream/main5. lépés: Végezze el a változtatásokat
Szekció neve “5. lépés: Végezze el a változtatásokat”Fejlesztési gyakorlatok
Szekció neve “Fejlesztési gyakorlatok”- Írjon kódot a PHP szabványok szerint
- Írjon teszteket az új funkciókhoz
- Ha szükséges, frissítse a dokumentációt
- Linterek és kódformázók futtatása
Code Quality Checks
Szekció neve “Code Quality Checks”# 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/Commit Good Changes
Szekció neve “Commit Good Changes”# 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"6. lépés: Tartsa szinkronban az ágat
Szekció neve “6. lépés: Tartsa szinkronban az ágat”Miközben a funkción dolgozik, a fő ág előrehaladhat:
# 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 --continue7. lépés: Nyomja a villájához
Szekció neve “7. lépés: Nyomja a villájához”# 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-feature8. lépés: Lehívási kérelem létrehozása
Szekció neve “8. lépés: Lehívási kérelem létrehozása”On GitHub Web Interface
Szekció neve “On GitHub Web Interface”- Lépjen a GitHubon a villához
- Értesítést fog látni, hogy hozzon létre PR-t fiókjában
- Kattintson az “Kérés összehasonlítása és lekérése” lehetőségre.
- Vagy kattintson manuálisan az “Új lekérési kérelem” elemre, és válassza ki az ágat
PR cím és leírás
Szekció neve “PR cím és leírás”Title Format:
<type>(<scope>): <subject>Examples:
feat(auth): add two-factor authenticationfix(forms): prevent XSS in text inputdocs: update installation guiderefactor(core): improve performanceLeírássablon:
## 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 locallyPR Review Checklist
Szekció neve “PR Review Checklist”Beküldés előtt győződjön meg:
- A kód követi a PHP szabványokat
- A tesztek szerepelnek és sikeresek
- Dokumentáció frissítve (ha szükséges)
- No merge conflicts
- A véglegesítési üzenetek egyértelműek
- A kapcsolódó kérdésekre hivatkozunk
- PR leírás részletes
- Nincs hibakeresési kód vagy konzolnapló
9. lépés: Válaszoljon a visszajelzésre
Szekció neve “9. lépés: Válaszoljon a visszajelzésre”During Code Review
Szekció neve “During Code Review”- Olvassa el figyelmesen a megjegyzéseket - Értse meg a visszajelzést
- Tegyen fel kérdéseket - Ha nem egyértelmű, kérjen pontosítást
- Az alternatívák megvitatása - Tisztelettel vitassa meg a megközelítéseket
- Végezze el a kért módosításokat - Frissítse fiókját
- ** Frissített véglegesítések kényszerítése** – Ha átírja az előzményeket
# 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-featureExpect Iteration
Szekció neve “Expect Iteration”- A legtöbb PR több felülvizsgálati kört igényel
- Légy türelmes és konstruktív
- Tekintse meg a visszajelzést tanulási lehetőségként
- A karbantartók javasolhatnak refaktorokat
10. lépés: Egyesítés és tisztítás
Szekció neve “10. lépés: Egyesítés és tisztítás”After Approval
Szekció neve “After Approval”Miután a karbantartók jóváhagyták és egyesítik:
- A GitHub automatikus egyesítése vagy a karbantartói kattintások egyesítése
- Az Ön fiókja törölve lett (általában automatikusan)
- Változások az upstreamben
Local Cleanup
Szekció neve “Local Cleanup”# 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-featureWorkflow Diagram
Szekció neve “Workflow Diagram”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]Common Scenarios
Szekció neve “Common Scenarios”Szinkronizálás indítás előtt
Szekció neve “Szinkronizálás indítás előtt”# Always start freshgit fetch upstreamgit checkout -b feature/new-thing upstream/mainAdding More Commits
Szekció neve “Adding More Commits”# Just push againgit add .git commit -m "feat: additional changes"git push origin feature/new-thingFixing Mistakes
Szekció neve “Fixing Mistakes”# 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 changesEgyesítési konfliktusok kezelése
Szekció neve “Egyesítési konfliktusok kezelése”# Rebase and resolve conflictsgit fetch upstreamgit rebase upstream/main
# Edit conflicted files to resolve# Then continuegit add .git rebase --continuegit push --force-with-leaseBevált gyakorlatok
Szekció neve “Bevált gyakorlatok”- Tartsa a fióktelepeket az egyes kérdésekre összpontosítva
- Tegyen apró, logikus kötelezettségeket
- Írjon leíró commit üzeneteket
- Gyakran frissítse fiókját
- Test before pushing
- Document changes
- Legyen reagál a visszajelzésekre
Ne- Dolgozzon közvetlenül a main/master ágon
Szekció neve “Ne- Dolgozzon közvetlenül a main/master ágon”- Keverje össze a nem kapcsolódó változásokat egy PR-ben
- A generált fájlok vagy node_modules véglegesítése
- Kényszernyomás, miután a PR nyilvános (használd a —force-with-lease)
- A kódellenőrzési visszajelzés figyelmen kívül hagyása
- Hatalmas PR-ok létrehozása (bontás kisebbekre)
- Érzékeny adatok rögzítése (API kulcsok, jelszavak)
Tips for Success
Szekció neve “Tips for Success”Communicate
Szekció neve “Communicate”- Tegyen fel kérdéseket kérdésekben a munka megkezdése előtt
- Ask for guidance on complex changes
- Beszélje meg a megközelítést a PR leírásban
- A visszajelzésekre azonnal válaszoljon
Follow Standards
Szekció neve “Follow Standards”- Tekintse át a PHP szabványokat
- Ellenőrizze a problémajelentési irányelveket
- Olvassa el a Hozzájárulás áttekintését
- Kövesse a Pull Request irányelveit
Learn the Codebase
Szekció neve “Learn the Codebase”- Olvassa el a meglévő kódmintákat
- Hasonló megvalósítások tanulmányozása
- Értsd az építészetet
- Check Core Concepts
Kapcsolódó dokumentáció
Szekció neve “Kapcsolódó dokumentáció”- Magatartási kódex
- Pull Request Guidelines
- Issue Reporting
- PHP kódolási szabványok
- Közreműködő áttekintés
#xoops #git #github #hozzájárulás #munkafolyamat #pull-request