Potek dela prispevka
Ta vodnik vas vodi skozi celoten postopek prispevanja k XOOPS, od začetne nastavitve do združene zahteve za vleko.
Predpogoji
Section titled “Predpogoji”Preden začnete prispevati, se prepričajte, da imate:
- Git nameščen in konfiguriran
- GitHub račun (brezplačno)
- PHP 7.4+ za XOOPS razvoj
- Skladatelj za upravljanje odvisnosti
- Osnovno poznavanje delovnih procesov Git
- Poznavanje kodeksa ravnanja
1. korak: Razcepite repozitorij
Section titled “1. korak: Razcepite repozitorij”Na spletnem vmesniku GitHub
Section titled “Na spletnem vmesniku GitHub”- Pomaknite se do repozitorija (npr.
XOOPS/XoopsCore27) - Kliknite gumb Fork v zgornjem desnem kotu
- Izberite, kje za fork (vaš osebni račun)
- Počakajte, da se vilice dokončajo
Zakaj Fork?
Section titled “Zakaj Fork?”- Dobiš svojo kopijo, na kateri delaš
- Vzdrževalcem ni treba upravljati veliko vej
- Imate popoln nadzor nad vilicami
- Zahteve za vleko se nanašajo na vaš fork in repo navzgor
2. korak: lokalno klonirajte vilice
Section titled “2. korak: lokalno klonirajte vilice”# 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. korak: Nastavite razvojno okolje
Section titled “3. korak: Nastavite razvojno okolje”Namestitev odvisnosti
Section titled “Namestitev odvisnosti”# Install Composer dependenciescomposer install
# Install development dependenciescomposer install --dev
# For module developmentcd modules/mymodulecomposer installKonfigurirajte Git
Section titled “Konfigurirajte 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"Zaženite teste
Section titled “Zaženite teste”# Make sure tests pass in clean state./vendor/bin/phpunit
# Run specific test suite./vendor/bin/phpunit --testsuite unit4. korak: Ustvarite vejo funkcij
Section titled “4. korak: Ustvarite vejo funkcij”Konvencija o poimenovanju vej
Section titled “Konvencija o poimenovanju vej”Sledite temu vzorcu: <type>/<description>
Vrste:
feature/- Nova funkcijafix/- Popravek napakedocs/- Samo dokumentacijarefactor/- Preoblikovanje kodetest/- Testni dodatkichore/- Vzdrževanje, orodje
Primeri:
# 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/mainPosodabljajte podružnico
Section titled “Posodabljajte podružnico”# Before you start work, sync with upstreamgit fetch upstreamgit merge upstream/main
# Later, if upstream has changedgit fetch upstreamgit rebase upstream/main5. korak: Izvedite svoje spremembe
Section titled “5. korak: Izvedite svoje spremembe”Razvojne prakse
Section titled “Razvojne prakse”- Napišite kodo v skladu s standardi PHP
- Pišite teste za novo funkcionalnost
- Posodobite dokumentacijo, če je potrebno
- Zaženite linterje in oblikovalce kode
Preverjanje kakovosti kode
Section titled “Preverjanje kakovosti kode”# 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/Izvedite dobre spremembe
Section titled “Izvedite dobre spremembe”# 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. korak: Ohranite podružnico sinhronizirano
Section titled “6. korak: Ohranite podružnico sinhronizirano”Med delom na vaši funkciji lahko glavna veja napreduje:
# 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. korak: potisnite na vilice
Section titled “7. korak: potisnite na vilice”# 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. korak: Ustvarite zahtevo za vlečenje
Section titled “8. korak: Ustvarite zahtevo za vlečenje”Na spletnem vmesniku GitHub
Section titled “Na spletnem vmesniku GitHub”- Pojdite do svoje vilice na GitHubu
- Videli boste obvestilo za ustvarjanje PR iz vaše podružnice
- Kliknite “Primerjaj in zahtevaj potegnite”
- Ali pa ročno kliknite »Nova zahteva za vleko« in izberite svojo podružnico
PR naslov in opis
Section titled “PR naslov in opis”Oblika naslova:
<type>(<scope>): <subject>Primeri:
feat(auth): add two-factor authenticationfix(forms): prevent XSS in text inputdocs: update installation guiderefactor(core): improve performanceOpisna predloga:
## 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 locallyKontrolni seznam za pregled PR
Section titled “Kontrolni seznam za pregled PR”Pred oddajo zagotovite:
- Koda je v skladu s standardi PHP
- Testi so vključeni in so uspešni
- Posodobljena dokumentacija (če je potrebno)
- Ni sporov pri spajanju
- Sporočila o potrditvi so jasna
- Navedena so povezana vprašanja
- PR opis je podroben
- Ni kode za odpravljanje napak ali dnevnikov konzole
9. korak: odgovorite na povratne informacije
Section titled “9. korak: odgovorite na povratne informacije”Med pregledom kode
Section titled “Med pregledom kode”- Pozorno preberite komentarje – Razumite povratne informacije
- Postavite vprašanja - Če ni jasno, prosite za pojasnilo
- Pogovarjajte se o alternativah – Spoštljivo razpravljajte o pristopih
- Izvedite zahtevane spremembe - Posodobite svojo vejo
- Prisilno potisnite posodobljene objave - Če ponovno pišete zgodovino
# 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-featurePričakujte ponovitev
Section titled “Pričakujte ponovitev”- Večina PR zahteva več krogov pregleda
- Bodite potrpežljivi in konstruktivni
- Na povratne informacije glejte kot na priložnost za učenje
- Vzdrževalci lahko predlagajo refaktorje
Korak 10: Združite in očistite
Section titled “Korak 10: Združite in očistite”Po odobritvi
Section titled “Po odobritvi”Ko vzdrževalci odobrijo in združijo:
- Samodejno spajanje GitHub ali spajanje klikov vzdrževalcev
- Vaša podružnica je izbrisana (običajno samodejno)
- Spremembe so navzgor
Lokalno čiščenje
Section titled “Lokalno čiščenje”# 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-featureDiagram poteka dela
Section titled “Diagram poteka dela”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]Pogosti scenariji
Section titled “Pogosti scenariji”Sinhronizacija pred začetkom
Section titled “Sinhronizacija pred začetkom”# Always start freshgit fetch upstreamgit checkout -b feature/new-thing upstream/mainDodajanje več potrditev
Section titled “Dodajanje več potrditev”# Just push againgit add .git commit -m "feat: additional changes"git push origin feature/new-thingPopravljanje napak
Section titled “Popravljanje napak”# 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 changesObravnava sporov spajanja
Section titled “Obravnava sporov spajanja”# Rebase and resolve conflictsgit fetch upstreamgit rebase upstream/main
# Edit conflicted files to resolve# Then continuegit add .git rebase --continuegit push --force-with-leaseNajboljše prakse
Section titled “Najboljše prakse”Naredi
Section titled “Naredi”- Podružnice naj bodo osredotočene na posamezne zadeve
- Naredite majhne, logične obveznosti
- Napišite opisna sporočila o objavi
- Pogosto posodabljajte svojo vejo
- Test pred potiskanjem
- Spremembe dokumentov
- Bodite odzivni na povratne informacije
- Delajte neposredno v podružnici main/master
- Zmešajte nepovezane spremembe v en PR
- Objavite ustvarjene datoteke ali node_modules
- Prisilni pritisk, potem ko je PR javen (uporabite —force-with-lease)
- Ignorirajte povratne informacije o pregledu kode
- Ustvarite velike PR-je (razbijte se na manjše)
- Posredovanje občutljivih podatkov (API ključev, gesel)
Nasveti za uspeh
Section titled “Nasveti za uspeh”Komunicirajte
Section titled “Komunicirajte”- Postavite vprašanja v zadevah, preden začnete z delom
- Prosite za napotke pri kompleksnih spremembah
- Razpravljajte o pristopu v opisu PR
- Hitro se odzovite na povratne informacije
Sledite standardom
Section titled “Sledite standardom”- Pregled PHP standardov
- Preverite smernice za poročanje o težavah
- Preberite pregled prispevka
- Sledite smernicam zahtev za vlečenje
Naučite se kodne baze
Section titled “Naučite se kodne baze”- Preberite obstoječe kodne vzorce
- Preučite podobne izvedbe
- Razumeti arhitekturo
- Preverite temeljne koncepte
Povezana dokumentacija
Section titled “Povezana dokumentacija”- Kodeks ravnanja
- Smernice za zahtevo po vleku
- Poročanje o težavah
- PHP Standardi kodiranja
- Pregled prispevka
#XOOPS #git #github #contributing #workflow #pull-request