Javaslat a szabályzat módosítására
A Nette Framework a Git-et és a GitHubot használja a kódbázis karbantartására. A legjobb módja a hozzájárulásnak, ha a változtatásokat a saját elágazásodban rögzíted, majd a GitHubon pull requestet teszel. Ez a dokumentum összefoglalja a sikeres hozzájárulás főbb lépéseit.
A környezet előkészítése
Kezdjük a Nette elágazásával a GitHubon. Gondosan állítsa be a helyi Git környezetét, konfigurálja a felhasználónevét és az e-mail címét, ezek a hitelesítő adatok azonosítani fogják a módosításait a Nette Framework történetében.
A javításon való munka
Mielőtt elkezdenél dolgozni a javításodon, hozz létre egy új ágat a változtatásaidnak.
git checkout -b new_branch_name
Dolgozhatsz a kódváltoztatásodon.
Ha lehetséges, végezze el a változtatásokat a legutóbb kiadott verzióhoz képest.
A változtatások tesztelése
Telepítenie kell a Nette Testert. A legegyszerűbb, ha a composer install
címet hívod meg a repository
root-ban. Most már képesnek kell lennie a tesztek futtatására a ./vendor/bin/tester
segítségével a
terminálban.
Néhány teszt sikertelen lehet a hiányzó php.ini miatt. Ezért a futót a -c paraméterrel kell hívni, és meg kell adni a
php.ini elérési útvonalát, például ./vendor/bin/tester -c ./tests/php.ini
.
Miután a tesztek futtatására képes, megvalósíthatja a saját tesztjeit, vagy megváltoztathatja a hibás működést, hogy megfeleljen az új viselkedésnek. A Nette Testerrel való tesztelésről bővebben a dokumentációs oldalon olvashat.
Kódolási szabványok
A kódnak követnie kell a Nette Frameworkben használt kódolási szabványt. Ez könnyű, mert van automatikus ellenőrző és javító program. A Composer segítségével telepíthető a kiválasztott globális könyvtárba:
composer create-project nette/coding-standard /path/to/nette-coding-standard
Most már képesnek kell lennie arra, hogy futtassa az eszközt a terminálban. Például ez a parancs ellenőrzi és javítja
a kódot az aktuális könyvtár src
és tests
mappáiban:
/path/to/nette-coding-standard/ecs check src tests --config /path/to/nette-coding-standard/coding-standard-php71.yml --fix
A változtatások átadása
Miután megváltoztattad a kódot, a változtatásokat rögzítened kell. Hozzon létre több commitot, egyet-egyet minden logikai lépéshez. Minden commitnak önmagában – más commitok nélkül – használhatónak kell lennie. Tehát a megfelelő teszteket is ugyanabban a commitban kell szerepeltetni.
Kérjük, ellenőrizd kétszer is, hogy a kódod megfelel-e a szabályoknak:
- A kód nem generál hibát
- A kódod nem törik meg egyetlen tesztet sem.
- A kódváltoztatásod tesztelve van.
- Nem követsz el haszontalan white-space változtatásokat.
A Commit üzenetnek a következő formátumot kell követnie
Latte: fixed multi template rendering [Closes # 69]
azaz:
- egy terület, amelyet kettőspont követ
- a commit célja a múltban, ha lehetséges, kezdje “added.”, “fixed.”, “refactored.”, changed, removed
- esetleges link a hibakövetésre
- ha a commit visszaveti a visszafelé kompatibilitást, hozzá kell adni a “BC break” szót.
- a tárgy után lehet egy szabad sor és egy részletesebb leírás, beleértve a fórumra mutató linkeket is.
A commitok kihúzása-kérése
Ha elégedett vagy a kódváltoztatásokkal és commitokkal, akkor a commitokat a GitHub-ra kell tolnod.
git push origin new_branch_name
A változtatások nyilvánosan jelen vannak, azonban a Nette master ágába való integrálásra fel kell ajánlanod a változtatásokat. Ehhez tegyen egy pull requestet. Minden pull requestnek van egy címe és egy leírása. Kérjük, adjon meg valamilyen leíró címet. Ez gyakran hasonlít az ág nevéhez, például “Securing signals against CSRF attack”.
A pull request leírásának tartalmaznia kell néhány konkrétabb információt a kódváltoztatásokról:
- bug fix? yes/no <!-- #issue numbers, if any -->
- new feature? yes/no
- BC break? yes/no
- doc PR: nette/docs#??? <!-- highly welcome, see https://nette.org/en/writing -->
Kérjük, módosítsa az információs táblázatot a pull request-nek megfelelően. Megjegyzések az egyes listaelemekhez:
- Megadja, hogy a pull request feature-t ad hozzá, vagy bugfix.
- Hivatkozás az esetleges kapcsolódó problémára, amely a pull request egyesítése után lezárásra kerül.
- Megmondja, hogy a pull requestnek szüksége van-e dokumentációs változtatásokra, ha igen, adjon meg hivatkozásokat a megfelelő pull requestekre. Nem kell azonnal megadni a dokumentációs változtatást, azonban a pull request nem lesz egyesítve, ha a dokumentációs változtatásra szükség van. A dokumentációváltozást az angol nyelvű dokumentációhoz kell elkészíteni, más nyelvi mutációk nem kötelezőek.
- Jelzi, ha a pull request a BC törést hoz létre. Kérjük, tekintsen BC breaknek mindent, ami a nyilvános interfészt megváltoztatja.
A végső táblázat így nézhet ki:
- bug fix? no
- new feature? yes issue #123
- BC break? no
A változtatások átdolgozása
Nagyon gyakori, hogy megjegyzéseket kapunk a kódváltoztatásunkhoz. Kérjük, próbáld meg követni a javasolt változtatásokat, és ennek megfelelően dolgozzátok át a commitokat. A javasolt változtatásokat új commit-ként commit-olhatja, majd összenyomhatja a korábbiakkal. Lásd az Interaktív újraközlés fejezetet a GitHubon. A változtatások újraalapozása után force-push a változtatásokat a távoli elágazásodra, minden automatikusan átkerül a pull requestbe.