Segíteni szeretnél? Rengeteg lehetőséged van, hogy részt vegyél a munkában.
- Új feladat létrehozása
- Developer's Certificate of Origin 1.1
- A dokumentációról
A GitHub Issues funkcióját használjuk minden az oldal működését érintő kérdés megvitatására, mint például hibák, új fejlesztések és egyéb ötletek megbeszélése.
A feladat leírása mindig magyar nyelven történik.
Azt tekintjük hibának amely szorosan kapcsolód az oldal kódbázisához vagy annak funkcionalitásához. A részletes és jó hibabejelentések rendkívül hasznosak a számunkra
Előre is köszönjük!
- Használd a GitHub issue keresőt és ellenőrizd, hogy a feladat nem szerepel-e már a nyitott feladtok között.
- Mindig ellenőrizd, hogy a talált hibát reprodukálni tudod a teszt szerveren
és ha van rá módod akkor a saját fejlesztői környezetedben a
developágon. - Válaszolj meg minden a feladat mintában szereplő kérdést. Ha szükségesnek látod mellékelj képernyőképet vagy videót.
A fenti pontok pontos kitöltésével nagyon sokban segítheted a fejlesztők munkáját illetve csökkentheted az oda-vissza kérdések számát.
- Használd a GitHub issue keresőt és ellenőrizd, hogy nincs-e már hasonló kérés a feladatok között. Ha kérés már szerepel adj hozzá +1-et vagy fűzz hozzá megjegyzést ha nem teljes a leírás.
- Ha még nincs hasonló kérés akkor hozz létre egy újat. Kérlek részletesen és a lehető legpontosabban írd le a kért funkciót. Mellékelj példákat is.
- A kérés megírásában is segítségedre lehet a feladat minta.
Nagyon fontos, hogy részletes írd le mi a célja és, hogy miért van szükség az új funkcióra. Ennek legegyszerűbb módja ha írsz egy vagy több felhasználói esetet (use case) arról, hogy mikor hasznos a kért módosítás.
A feladatokat címkékkel látjuk el az egyszerűbb kereshetőség érdekében
| Címke neve | feladat vagy PR | Leírás |
|---|---|---|
| 1-13 pont | Feladat | A feladat nehézségi szintje / komplexitás, ahol a 1 triviális falat a 13 pedig akár több hetes munka is lehet (lást Story points). |
| Várhat, Normál, Fontos, Kritikus | Feladat | A fontosságot jelöli. |
| Hiba | Feladat | Rendszerrel kapcsolatos hiba |
| Új funkció | Feladat | Új fejlesztés vagy meglévő modul bővítése. |
| Sötétkék címkék: UI/UX, Admin, Backend, Optimalizáció, ... | Feladat | A feladat által érintett modulok. |
| Megbeszélés | Feladat | Valódi feladat helyett egyfajta fórum topikot jelöl ahol közösen megvitathatjuk az adott témát. A téma lezárása után jöhetnek létre a kapcsolódó feladatok. |
| Döntésre van szükség | Feladat | Az így megjelölt feladatok elakadtak vagy már elévültek és a legközelebbi élő megbeszélésen döntést kell hozni a további sorsáról. |
| Fehér címkék: greenkeeper, ... | feladat | GitHub bővítmények címkéi. |
A címkék feladathoz rendelését kérlek hagyd az adminisztrátorokra, kivéve ha Hiba jegyről van szó.
A Hiba és Új feladat esetén mindig adjuk meg a fontosságot, a nehézségez, és a kapcsolódó modult (ha lehetséges).
Mindenek előtt fontos, hogy el tudd indítani az oldalt a saját számítógépeden és, hogy képes legyél futtatni a teszteket.
A minimális fejlesztőkörnyezet kialakításához git-re és NodeJS-re lesz szükséged, melyeket a következőképpen telepíthetsz.
Először is fork -oldnod kell a Zsebtanár repository-ját (kódbázisát) amit a jobb felső sarokban lévő gombbal tehetsz meg. A fork során készül egy másolat a Zsebtanár repository-ról a te fiókod alatt, ebben tudsz majd dolgozni.
A munka megkezdéséhez le kell töltened a saját számítógépedre az imént fork-olt repository-t, melyet a git clone paranccsal tehetsz meg:
git clone https://github.com/<your-username>/zsebtanar-proto.gitLépj át a frissen létrehozott könyvtárba
cd zsebtanar-protoAhhoz, hogy mindig naprakészen tudd tartani a saját repository-dat érdemes összekapcsolni az eredeti (upstream) repository-val
git remote add upstream https://github.com/zsebtanar/zsebtanar-proto.gitA jövőben, ha szükséged van a legfrissebb változtatásokra a Zsebtanár repository-ból és már beállítottad az "upstream" linket, akkor elég meghívni a következő parancsokat:
git remote update git checkout develop git pull upstream develop
A NodeJS modulokat a node package manager-rel (npm) tudjuk telepíteni:
npm installAz npm segítségével általunk definiált parancsokat (lásd packapge.json) is futtathatunk.
A következő paranccsal indíthatjuk el az alkalmazást, fejlesztői módban.
npm run startA futó alkalmazás megnyitásához csak használd a következő linket: http://localhost:8080.
Lehetőség van más eszközökön (pl.: mobil, tablet) is futtatni az app-ot, lásd itt
A port szám eltérő lehet ha már foglalt a 8080, ilyenkor mindig a terminálban látható link a helyes
A fejlesztői módban több szempontból is különbözik az éles változattól:
- Nincs méret optimalizáció
- Minden kód módosítás után automatikusan frissül az oldal
- A futó kód nem íródik ki a fájlrendszerre (
/bin) - A kód számos hibakeresést segítő funkciót tartalmaz
- Sourcemap elérhető
- Bizonyos szolgáltatások nem aktívak (sentry, stb.)
npm testA fejlesztői és éles környezet nagyban különbözik ezért külön parancs van a végleges telepíthető alkalmazás előállításához (build)
npm run buildA build parancs hatására létrejön a /bin könyvtár amely tartalmazza az összes az alkalmazás futtatásához szükséges (kliens és szerver oldali) komponenst.
Az alkalmazás telepítéséhez szükséged lesz egy Firebase fiókra és be is kell jelentkezned az általad használt terminálban. Bővebb információért nézd meg Firebase CLI dokumentációját
Ha saját firebase app-ként szeretnél telepíteni akkor állítsd be a project ID-t a
.firebasercfájlban
A következő parancs lefuttatja a build-et és telepítést
npm run deployA Zsebtanár test és prod szerverre csak megfelelő hozzáféréssel tudsz telepíteni.
Akár hozzáadni készülsz egy új funkciót, vagy egy hibát szeretnél kijavítani, esetleg csak javítani szeretnél a minőségen, mindenek előtt nézd át az összes kapcsolódó feladatot (a lezártakat is) és a kapcsolódó megjegyzéséket, hogy minél pontosabban megértsd a rendszer javítani kívánt részeit. Ha találsz egy feladatot, de még senki nem dolgozik rajta, csak írj egy megjegyzést, hogy te vállalod. Ha még nincs feladat a problémára amin dolgoznál, hozz létre egy újat az útmutató alapján.
Mielőtt munkához látsz bizonyosodj meg arról, hogy minden módosítás rendelkezésre áll a helyi repository-dban:
git remote update
git checkout develop
git rebase upstream/developA legjobb munkát egy új branch-en (ág) végzed. A Zsebtanár projektben mindig a develop ágat használjuk fejlesztésre, tehát ebből ágaztasd el a saját branch-edet is.
git checkout develop
git checkout -b my-branchjó ha a branch neve 3-6 szóban leírja a munka célját és ha van kapcsolódó feladat akkor a feladat számát is beleírhatod. pl.: 99-ie11-fejlec-javitas
A fejlesztés során commit-olj rendszeresen és írj egy rövid megjegyzést a hozzáadott módosításokról. A commit megjegyzése magyar nyelven íródjon a következők szerint:
- Az első sor kettős keresztel kezdődik majd a kapcsolódó feladat száma következik végül egy rövid összefoglalás a commit-ról. Az első sor maximum 50 karakter hosszú lehet
- A további sorok (a megjegyzés törzse) csak nagyobb módosítás esetén szükséges. Itt részletesebben is kifejtheted mi és miért úgy változott ahogy, esetleg felhívhatod a figyelmet pl böngésző specifikus dolgokra, stb.
git add src/xzy/abc.tsx
git commitPélda commit megjegyzés:
#99 IE 11 fejléc javítása
Módosítottam a fejlécében a szín megadást mert az IE11 nem támogatja az rgba módotCommit előtt ellenőrizd, hogy helyesek a git név és email cím beállításaid:
git config --global user.name "Kis Pista" git config --global user.email "kis.pista@example.com"
Ha módosítottál kódot akkor a PR létrehozása előtt ellenőrizd, hogy minden teszt lefut-e és hiba esetén módosítsd a szükséges kódot vagy magát a tesztesetet. Hibajavítás esetén írj tesztet mely sikeresen lefut a módosított kóddal, de hibát jelez az módosítás előttivel.
npm testBővebben a [teszt futtatásról itt][#tesztek-futtatasa]
git push origin branch-neveMajd irány a Zsebtanár repository és kattints a "Pull Request" gombra és töltsd ki a pull request megjegyzés üres mezőit, lásd pull request minta.
A Zsebtanár projekt a Prettier kód style-t alkalmazza Our javascript is linted using [videojs-standard][linter].
By making a contribution to this project, I certify that:
-
(a) The contribution was created in whole or in part by me and I have the right to submit it under the open source license indicated in the file; or
-
(b) The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate open source license and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the same open source license (unless I am permitted to submit under a different license), as indicated in the file; or
-
(c) The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it.
-
(d) I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this project or the open source license(s) involved.
Ez a dokumentáció más open source projektek leírása alapján készült, többek kötött a contribute.md template, és a vidoe.js CONTRIBUTING.md.