Nikola Trifunovic
9 years ago
committed by
Carsten Brandt
1 changed files with 203 additions and 0 deletions
@ -0,0 +1,203 @@
|
||||
Git proces rada za Yii 2 saradnike |
||||
=================================== |
||||
|
||||
Želite da doprinesete Yii razvoju? Divno! Kako bi povećali šanse da vaše izmene budu prihvaćene što pre, molimo da |
||||
ispratite sledeće korake. Ako ste novi sa Git-om |
||||
i GitHub-om, možda bi želeli da prvo pogledate [GitHub pomoć](http://help.github.com/), [probate Git](https://try.github.com) |
||||
ili naučite nešto novo o [Git internom modelu podataka](http://nfarina.com/post/9868516270/git-is-simpler). |
||||
|
||||
Pripremite vaše razvojno okruženje |
||||
------------------------------------ |
||||
|
||||
Sledeći koraci će napraviti razvojno okruženje za Yii, koje možete koristiti kako bi radili |
||||
na baznom kodu Yii frejmvorka. Ovi se koraci trebaju uraditi samo jednom. |
||||
|
||||
### 1. [Forkujte](http://help.github.com/fork-a-repo/) Yii repozitorijum na GitHub-u i klonirajte vaš fork na vešem razvojnom okruženju |
||||
|
||||
``` |
||||
git clone git@github.com:VASE-GITHUB-KORISNICKO-IME/yii2.git |
||||
``` |
||||
|
||||
Ako imate problema sa podešavanjem Git-a sa GitHub-om na Linux-u ili dobijate greške tipa "Permission Denied (publickey)", |
||||
onda morate [podesiti vašu Git instalaciju da radi sa GitHub-om](http://help.github.com/linux-set-up-git/) |
||||
|
||||
### 2. Dodajte glavni Yii repozitorijum kao dodatni git repozitorijum sa nazivom "upstream" |
||||
|
||||
Locirajte se u direktorijum gde ste klonirali Yii, podrazumevano, "yii2" direktorijum. Nakon toga izvršite sledeću komandu: |
||||
|
||||
``` |
||||
git remote add upstream git://github.com/yiisoft/yii2.git |
||||
``` |
||||
|
||||
### 3. Pripremite okruženje za testiranje |
||||
|
||||
Sledeći koraci nisu neophodni ako želite da radite samo na prevodima i dokumentaciji. |
||||
|
||||
- pokrenite `composer update` kako bi instalirali neophodne pakete (podrazumeva se da imate [composer instaliran globalno](https://getcomposer.org/doc/00-intro.md#globally)). |
||||
- pokrenite `php build/build dev/app basic` kako bi klonirali "basic" aplikaciju i instalirali composer neophonde pakete "basic" aplikacije. |
||||
Ova komanda će instlirati spoljne composer pakete i ulinkovati yii2 repozitorujum sa trenutnim preuzetim repozitorijumom, tako da imate samo jednu instancu celog instaliranog koda. |
||||
|
||||
Ponovite postupak za "advanced" aplikaciju ako je potrebno, pokretanjem: `php build/build dev/app advanced`. |
||||
|
||||
Ova komanda će se takođe koristiti da bi se osvežili potrebni paketi, ona pokreće `composer update` interno. |
||||
|
||||
**Sada ste spremni za rad na Yii 2 frejmvorku.** |
||||
|
||||
Sledeći koraci su neobavezni. |
||||
|
||||
### Unit testovi |
||||
|
||||
Možete izvršiti unit testove pokretanjem `phpunit` unutr root direktorijuma repozitorijuma. Ako nemate phpunit instaliran globalno možete pokrenuti `php vendor/bin/phpunit` umesto toga. |
||||
|
||||
Neki testovi zahtevaju dodatne baze podataka da budu postavljene i podešene. Možete napraviti `tests/data/config.local.php` fajl kako bi pregazili podešavanja koja su definisana unutar `tests/data/config.php` fajla. |
||||
|
||||
Možete ograničiti testove na grupu testova na kojima radite, na primer, da pokrenete testove za samo validaciju i redis koristite `phpunit --group=validators,redis`. Listu dostupnih grupa možete dobiti pokretanjem `phpunit --list-groups`. |
||||
|
||||
### Ekstenzije |
||||
|
||||
Kako bi radili na ekstenzijama morate klonirati repozitorijum ekstenzije. Napravili smo komandu koja može to uraditi umesto vas: |
||||
|
||||
``` |
||||
php build/build dev/ext <extension-name> |
||||
``` |
||||
|
||||
gde je `<extension-name>` ime ekstenzije, na primer `redis`. |
||||
|
||||
Ako želite da testirate ekstenziju u jednom od aplikacijskih šablona, samo dodajte repozitorijum u `composer.json` aplikacije kao što bi to radili normalno, na primer dodali bi `"yiisoft/yii2-redis": "*"` unutar`require` sekcije za "basic" aplikaciju. |
||||
Pokretanjem `php build/build dev/app basic` ćete instalirati ekstenziju i njene neophonde pakete i ulinkovaće se `extensions/redis` direktorijum kako ne bi radili u vendor direktorijumu nego u yii2 repozitorijumu direktno. |
||||
|
||||
|
||||
Rad na bagovima i poboljšanjima |
||||
------------------------------- |
||||
|
||||
Pošto je razvojno okruženje spremno kako je objašnjeno iznad možete započeti rad na nekoj novoj funkcionalnosti ili bagu. |
||||
|
||||
### 1. Postarajte se da je problem prijavljen za bug na kom radite ako zahteva značajniji rad na ispravljanju |
||||
|
||||
Sve nove funkcionalnosti i bugovi bi trebali imati povezanu temu koju bi koristili kao jedinstvenu tačku za diskusiju i dokumentaciju. Bacite pogled na postojeću listu koja ima temu koja se poklapa sa onim na čemu bi želeli da radite. Ako pronađete da tema već postoji u listi, onda ostavite komentar na toj temi u kome iskažite da želite da radite na tome. Ako ne pronađete postojeću temu/problem koja se poklapa sa onim na čemu bi želeli da radite, molimo da [postavite temu/prijavite problem](report-an-issue.md) ili napravite pull zahtev direktno ako nije komplikovano rešenje. Na ovaj način, tim će moći da pogleda vaše rešenje i uputi vas sa dodatno. |
||||
|
||||
|
||||
> Za site izmene ili dokumentacijske probleme ili za jednostavnije probleme, nije potrebno praviti posebnu temu, pull zahtev je više nego dovoljan u ovom slučaju. |
||||
|
||||
### 2. Dohvatite poslednji kod sa glavne Yii grane |
||||
|
||||
``` |
||||
git fetch upstream |
||||
``` |
||||
|
||||
Trebali bi krenuti uvek od ove tačke kada krećete sa radom kako bi se osigurali da radite sa poslednjim kodom. |
||||
|
||||
### 3. Napravite novu granu za novu funkcionalnost/rešenje baga baziranu na trenutnoj Yii master grani |
||||
|
||||
> Ovo je jako važno zato što nećete moći da pošaljete više od jednog pull zahteva sa vašeg naloga ako koristite master. |
||||
|
||||
Svako posebno rešenje baga ili izmena bi trebala da se nalazi u svojoj posebnoj grani. Imena grana trebaju biti opisna i u imenu sadrže broj teme na koju se odnosi. Ako ne radite na ispravci nekog određenog probelma, prekočite broj teme. Na primer: |
||||
|
||||
``` |
||||
git checkout upstream/master |
||||
git checkout -b 999-name-of-your-branch-goes-here |
||||
``` |
||||
|
||||
### 4. Bacite se na posao, napišite vaš kod |
||||
|
||||
Potrudite se da funkcioniše :) |
||||
|
||||
Unit testovi su uvek dobrodošli. Testiranje i dobro pokriven kod značajno pojednostavljuje proveru koda. |
||||
Neuspeli unit testovi kao opis teme su takođe prihvataju. |
||||
|
||||
### 5. Izmenite CHANGELOG |
||||
|
||||
Izmenite CHANGELOG fajl kako bi uključili vašu izmenu, trebali bi uneti je na vrhu fajla ispod "Work in progress" naslova, linija u CHNAGELOG fajlu bi trebalo da izgleda nešto nalik sledećem: |
||||
|
||||
``` |
||||
Bug #999: a description of the bug fix (Your Name) |
||||
Enh #999: a description of the enhancement (Your Name) |
||||
``` |
||||
|
||||
`#999` je broj teme na koju se `Bug` ili `Enh`odnosi. |
||||
CHANGELOG no trebao biti grupisan po tipu (`Bug`,`Enh`) i sortiran po broju teme. |
||||
|
||||
Za veoma male izmene, na primer, greške u tekstu, izmene na dokumentaciji, nije potrebno menjati CHANGELOG. |
||||
|
||||
### 6. Komitujte promene |
||||
|
||||
dodajte fajlove/promene koje želite da [komitujete](http://gitref.org/basic/#add) sa |
||||
|
||||
``` |
||||
git add path/to/my/file.php |
||||
``` |
||||
|
||||
Možete koristit `-p` opciju kako bi izabrali izmene koje želite da komitujete. |
||||
|
||||
Komitujte vaše izmene sa opisnom porukom komita. Potrudite se napomente broj teme sa `#XXX` kako bi GitHub automatski ulinkovao vaš komit sa temom: |
||||
|
||||
``` |
||||
git commit -m "A brief description of this change which fixes #999 goes here" |
||||
``` |
||||
|
||||
### 7. Preuzmite poslednji Yii kod sa upstream-a u vašu granu |
||||
|
||||
``` |
||||
git pull upstream master |
||||
``` |
||||
|
||||
Ovo nas osigurava da imamo poslednji kod u vašoj lokalnoj grani pre nego napravimo pull zahtev. Ako postoje konfilkti, trebali bi ih ispraviti i komitovati izmene ponovo. Na ovaj način biće lakše Yii timu da poveže izmene sa jednim klikom. |
||||
|
||||
### 8. Nakon razrešenih svih konflikata, postavite vaš kod na GitHub |
||||
|
||||
``` |
||||
git push -u origin 999-name-of-your-branch-goes-here |
||||
``` |
||||
|
||||
Parametar `-u` će osigurati da će vaša grana moći da šalje pull i push zahteve sa GitHub grane. To znači da ako pozovete `git push` sledeći put će znati gde treba kod da se pošalje. Ovo je korisno ako budete hteli da kasnije dodate više komitova u jednom pull zahtevu. |
||||
|
||||
### 9. Otvorite [pull zahtev](http://help.github.com/send-pull-requests/) na upstream-u. |
||||
|
||||
Posetite vaš repozitorijum na Github-u i kliknite na "Pull Request", izaberite vašu granu na desnoj strani i unesite neki opis u polje za komentar. Kako bi povezali pull zahtev sa temom unesite bilo gde u komentaru `#999` gde 999 je broj teme. |
||||
|
||||
> Imajte na umu da svaki pull zahtev treba ispraviti samo jednu stvar. Za više, nevezanih izmena, molimo koristite više pull zahteva. |
||||
|
||||
### 10. Neko će pregledati vaš kod |
||||
|
||||
Neko će pregledati vaš kod, i možda će se od vas tražiti još neke izmene, ako je tako idite na korak #6 (ne morate da pravite novi pull zahtev ako je vaš trenutni još uvek otvoren). Ako je vaš kod prihvaćen biće spojen u glavnu granu i postaće deo sledećeg Yii izdanja. Ako to nije slučaj, ne budite obeshrabreni, različiti ljudi žele različite funkcionalnosti i Yii ne može biti sve svima, vaš kod će biti dostupan na GitHub-u kao referenca za ljude kojima je to potrebno. |
||||
|
||||
### 11. Čišćenje |
||||
|
||||
Nakom što je vaš kod ili prihvaćen ili odbijen možete obrisati vaše grane na kojima ste radili na vašem lokalnom repozitorijumu i `origin`. |
||||
|
||||
``` |
||||
git checkout master |
||||
git branch -D 999-name-of-your-branch-goes-here |
||||
git push origin --delete 999-name-of-your-branch-goes-here |
||||
``` |
||||
|
||||
### Napomena: |
||||
|
||||
Kako bi rano otkrili regresije u Yii kodu prilikom svake integracije na GitHub-u pokreće se [Travis CI](http://travis-ci.org) kako bi se radilo testiranje. Pošto Yii tim ne želi da preoptereti ovaj servis, |
||||
[`[ci skip]`](http://about.travis-ci.org/docs/user/how-to-skip-a-build/) će biti uključen prilikom svake integracije ako pull zahtev: |
||||
|
||||
* utiče samo na javascript, css i slike, |
||||
* osvežava dokumentaciju, |
||||
* menja samo fiksne stringove (npr. izmene u prevodu) |
||||
|
||||
Na ovaj način će travi započinjati testiranje samo izmena koje nisu prvenstveno pokrivene testovima. |
||||
|
||||
### Pregled komandi (za napredne saradnike) |
||||
|
||||
``` |
||||
git clone git@github.com:YOUR-GITHUB-USERNAME/yii2.git |
||||
git remote add upstream git://github.com/yiisoft/yii2.git |
||||
``` |
||||
|
||||
``` |
||||
git fetch upstream |
||||
git checkout upstream/master |
||||
git checkout -b 999-name-of-your-branch-goes-here |
||||
|
||||
/* bacite se na posao, izmenite changelog ako je potrebno */ |
||||
|
||||
git add path/to/my/file.php |
||||
git commit -m "A brief description of this change which fixes #999 goes here" |
||||
git pull upstream master |
||||
git push -u origin 999-name-of-your-branch-goes-here |
||||
``` |
Loading…
Reference in new issue