Propunerea de modificare a codului
Nette Framework folosește Git și GitHub pentru menținerea bazei de cod. Cel mai bun mod de a contribui este să vă confirmați modificările în propriul fork și apoi să faceți o cerere de extragere pe GitHub. Acest document rezumă principalii pași pentru a contribui cu succes.
Pregătirea mediului
Începeți prin a face forking pentru Nette pe GitHub. Pregătiți cu atenție mediul Git local, configurați-vă numele de utilizator și adresa de e-mail, aceste credențiale vor identifica modificările dvs. în istoricul Nette Framework.
Lucrați la patch-ul dvs.
Înainte de a începe să lucrați la patch-ul dumneavoastră, creați o nouă ramură pentru modificările dumneavoastră.
git checkout -b new_branch_name
Puteți lucra la modificarea codului dumneavoastră.
Dacă este posibil, efectuați modificările din ultima versiune lansată.
Testarea modificărilor dvs.
Trebuie să instalați Nette Tester. Cel mai simplu este să apelați composer install
în rădăcina depozitului.
Acum ar trebui să puteți rula teste cu ./vendor/bin/tester
în terminal.
Este posibil ca unele teste să eșueze din cauza lipsei php.ini. Prin urmare, ar trebui să apelați runner-ul cu parametrul
-c și să specificați calea către php.ini, de exemplu ./vendor/bin/tester -c ./tests/php.ini
.
După ce puteți rula testele, puteți să le implementați pe ale dumneavoastră sau să modificați eșecul pentru a corespunde noului comportament. Citiți mai multe despre testarea cu Nette Tester în pagina de documentație.
Standarde de codare
Codul dumneavoastră trebuie să respecte standardele de codare utilizate în Nette Framework. Este ușor, deoarece există un verificator și un fixator automat. Acesta poate fi instalat prin Composer în directorul global ales de dumneavoastră:
composer create-project nette/coding-standard /path/to/nette-coding-standard
Acum ar trebui să puteți rula instrumentul în terminal. De exemplu, această comandă verifică și corectează codul din
dosarele src
și tests
din directorul curent:
/path/to/nette-coding-standard/ecs check src tests --config /path/to/nette-coding-standard/coding-standard-php71.yml --fix
Trimiterea modificărilor
După ce ați modificat codul, trebuie să vă confirmați modificările. Creați mai multe comisioane, câte una pentru fiecare pas logic. Fiecare commit trebuie să fi fost utilizabil ca atare – fără alte commits. Așadar, testele corespunzătoare ar trebui să fie, de asemenea, incluse în același commit.
Vă rugăm să verificați de două ori dacă codul dvs. se încadrează în reguli:
- Codul nu generează nicio eroare
- Codul dumneavoastră nu întrerupe niciun test.
- Modificarea codului dvs. este testată.
- Nu comiteți modificări inutile de spațiu alb.
Mesajul de confirmare trebuie să respecte formatul
Latte: fixed multi template rendering [Closes # 69]
adică:
- o zonă urmată de două puncte
- scopul confirmării în trecut, dacă este posibil, începeți cu “added.”, “fixed.”, “refactored.”, changed, removed
- o eventuală legătură către issue tracker
- dacă trimiterea anulează compatibilitatea retroactivă, adăugați “BC break”.
- poate exista o linie liberă după subiect și o descriere mai detaliată, inclusiv linkuri către forum.
Solicitarea de comenzi de tip Pull-Request
Dacă sunteți mulțumiți de modificările aduse codului și de angajamentele dvs., trebuie să trimiteți aceste angajamente pe GitHub.
git push origin new_branch_name
Modificările sunt prezente în mod public, însă trebuie să vă propuneți modificările pentru a fi integrate în ramura principală a Nette. Pentru a face acest lucru, faceți o cerere de extragere. Fiecare pull request are un titlu și o descriere. Vă rugăm să furnizați un titlu descriptiv. Acesta este adesea similar cu numele ramurii, de exemplu “Securing signals against CSRF attack”.
Descrierea pull request ar trebui să fi conținut câteva informații mai specifice despre modificările aduse codului dvs:
- 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 -->
Vă rugăm să modificați tabelul de informații pentru a se potrivi cererii dvs. de extragere. Comentarii la fiecare element din listă:
- Spune dacă cererea de extragere adaugă funcționalitate sau este o reparare de erori.
- Face trimitere la o eventuală problemă conexă, care va fi închisă după fuzionarea cererii de extragere.
- Spune dacă pull request-ul are nevoie de modificări ale documentației, dacă da, oferă referințe la pull requests corespunzătoare. Nu trebuie să furnizezi imediat modificarea documentației, însă cererea nu va fi fuzionată dacă este necesară modificarea documentației. Modificarea documentației trebuie să fie pregătită pentru documentația în limba engleză, alte mutații de limbă sunt opționale.
- Spune dacă pull request-ul creează o întrerupere a BC. Vă rugăm să considerați tot ceea ce modifică interfața publică ca fiind o întrerupere BC.
Tabelul final ar putea arăta astfel:
- bug fix? no
- new feature? yes issue #123
- BC break? no
Refacerea modificărilor tale
Este foarte frecvent să primiți comentarii la modificarea codului dumneavoastră. Vă rugăm să încercați să respectați modificările propuse și să vă reelaborați comenzile pentru a face acest lucru. Puteți să confirmați modificările propuse ca noi confirmări și apoi să le striviți cu cele anterioare. Consultați capitolul Rebase interactiv pe GitHub. După ce ați făcut rebase, împingeți forțat modificările în furculița dvs. la distanță, totul se va propaga automat în cererea de extragere.