Štábní kultura¶
- Table of contents
- Štábní kultura
- Redmine
- Pravidla pro verzovací systém GIT
- Stazeni Warden GITu
- Aktualize lokalniho repozitare
- Pridani souboru do lokalniho repa
- Odebrani souboru z lokalniho repa
- Zjisteni stavu lokalniho repa
- Zjisteni zmen v lokalnim souboru
- Obnova smazaneho lokalniho souboru ze vzdaleneho repozitare
- Nacommitovani uprav do lokalniho repa
- Nahrani zmen do vzdaleneho repozitare
- Prepnuti do jine branche nez master
- Vypis seznamu tagu
- Zataggovani baliku
- Zjisteni informaci o danem tagu
- Nahrani tagu do vzdaleneho repozitare
- Smazani tagu ze vzdaleneho repozitare
- Vytvoreni nove vyvojove branch
- Smazani stare branche
- Prejmenovani lokalni branch
- Merge nove branch new_branch do master branch
- Reset merge
- Na konci commit hlášky uvádíme číslo souvisejícího tasku v závorce, stylem:
- GIT pro začátečníky
- Struktura Gitu projetku Warden
- Pravidla pro tvorbu kódu v Perlu (štábní kultura)
Stránka popisuje pravidla pro práci na projektu Warden v oblastech Redmine, Gitu a zdrojového kódu. Pravidla pro práci se servery lze nalézt na stránce o strojích využívaných v projektu.
Redmine¶
Pravidla pro Issues v Redmine¶
- Zadavatel nastaví tag New a verzi, pro kterou je úkol/bug určen.
- Vykonavatel nastaví Resolved (úkol dokončen), nebo nastaví Rejected, pokud je úkol neplatný/nevhodný/nesplnitelný.
- Zadavatel po kontrole úkol uzavře nastavením Closed.
- Kokoliv může v průběhu řešení nastavit Feedback, pokud je potřeba problém prodiskutovat.
- Pokud je třeba úkol dořešit po jeho uzavření, je třeba jej znovu otevřít a nevytvářet nový.
- Pro zachování pořádku je vhodné používat dělení na subtikety.
- Na odpovídající commit se odkazuje pomocí:
commit: 123abc4
Pravidla pro práci s wiki¶
- Tvořte stránky dle šablony.
- Zanořujte stránky, pokud je to možné.
- Využívejte možností syntaxe wiki a možnosti vkládat značky.
- Odkazujte co nejvíce ostatní stránky ve wiki. Usnadní se procházení.
- Nevkládejte velké tabulky do prostřed stránky, pokud to není opravdu nutné.
- Nevkládejte dlouhé seznamy.
Pravidla pro verzovací systém GIT¶
Stazeni Warden GITu¶
$ git clone [username]@homeproj.cesnet.cz:warden
- [username] je Váš cesnetí login. Autentizace je v případě SSH obrácená proti cesnetímu LDAPu, případně můžete na mail <jan.mach@cesnet.cz> poslat veřejnou část svého SSH klíče.
Aktualize lokalniho repozitare¶
$ git pull
- před začátkem práce je nejdříve potřeba pullnout ze serveru aktuální verze zdrojových kódů
Pridani souboru do lokalniho repa¶
$ git add src/warden-server/sh/install.sh
- pridani souboru je nutne commitnout
Odebrani souboru z lokalniho repa¶
$ git rm src/warden-server/sh/install.sh
- odebrani souboru je nutne commitnout
Zjisteni stavu lokalniho repa¶
$ git status
Zjisteni zmen v lokalnim souboru¶
$ git diff src/warden-server/sh/install.sh
Obnova smazaneho lokalniho souboru ze vzdaleneho repozitare¶
$ git checkout src/warden-server/sh/install.sh
Nacommitovani uprav do lokalniho repa¶
$ git commit -m src/warden-server/sh/install.sh
Nahrani zmen do vzdaleneho repozitare¶
$ git push
- po ukončení prací je potřeba úpravy nakomitovat do GITu a pushnout je na server
Prepnuti do jine branche nez master¶
$ git checkout warden-server-2.2
Vypis seznamu tagu¶
$ git tag
Zataggovani baliku¶
$ git tag -a warden-server-2.2 -m 'Final release of warden-derver package version 2.2'
Zjisteni informaci o danem tagu¶
$ git show warden-server-2.2
Nahrani tagu do vzdaleneho repozitare¶
$ git push origin --tags
Smazani tagu ze vzdaleneho repozitare¶
$ git tag -d warden-server-2.2 $ git push origin :refs/tags/warden-server-2.2
Vytvoreni nove vyvojove branch¶
- při vývoji nových věcí je potřeba si v GITu vytvořit novou branche z větve master a kód upravit, odladit, otestovat a zpátky mergnout do masteru
- prepnuti a aktualizace master branche
$ git checkout master $ git pull
- vytvoreni a prepnuti se do nove branche new_branch
$ git checkout -b new_branch Switched to a new branch "new_branch"
- pushnuti nove branch new_branch
git push -u origin new_branch
- neni mozne pushnout na server branch pokud jeji nazev jiz nekde v repu existuje (nazev tagu, branche, atd.)
- prepnuti a aktualizace master branche
Smazani stare branche¶
Smazani stare lokalni branche¶
$ git branch -d old_branch Deleted branch old_branch (3a0874c).
Smazani stare vzdalene branche¶
$ git push origin :old_branch - [deleted] old_branch
Prejmenovani lokalni branch¶
$ git branch -m old_branch new_branch man git-branch -> git branch (-m | -M) [<oldbranch>] <newbranch>
Merge nove branch new_branch do master branch¶
$ git checkout master $ git merge new_branch
GIT se pokusi zmeny zmergovat automaticky sam, pokud si s necim nevi rady, kriticke sekce oznaci znackami
<<<<<<<, =======, >>>>>>>
a necha rozhodnuti na uzivateli<<<<<<< HEAD:index.html <div id="footer">contact : email.support@github.com</div> ======= <div id="footer"> please contact us at support@github.com </div> >>>>>>> new_branch:index.html
Odmazanim stare (nad =======) nebo nove (pod =======) casti uzivatel sdeli GITu ktera verze ma byt pouzita. Nasledne upraveny soubor ulozi a nacommituje pozadovanou zmenu.
Reset merge¶
1) Undo the merge and pull again. $ git reset --merge 2) Resolve the conflict. 3) Don't forget to add and commit the merge. 4) git pull now should work fine.
Na konci commit hlášky uvádíme číslo souvisejícího tasku v závorce, stylem:¶
- Server nyní s parametrem --espresso vaří kávu (#123)
- Opraven čas louhování u --gunpowder (#567)
GIT pro začátečníky¶
Struktura Gitu projetku Warden¶
doc/ presentations/ reports/ posters/ logos/ src/ warden-client/ bin/ doc/ etc/ lib/ sh/ warden-server/ bin/ doc/ etc/ lib/ sh/ www/ packages/ warden-client-X.Y.Z.tar.gz warden-server-X.Y.Z.tar.gz
Pravidla pro tvorbu kódu v Perlu (štábní kultura)¶
Ochrana pred problemovymi konstrukcemi¶
Na zacatku kodu je potreba zapnout warnings a nacist modul strict.
#!/usr/bin/perl -w use strict;
Nazvy promenych, poli, luk a haju¶
handler | VARIABLE |
globalni promenna (our) | $VARIABLE |
viceslovny nazev globalni promenna (our) | $MORE_WORDS_VARIABLE |
lokalni promenna (my) | $variable |
viceslovny nazev lokalni promenne (my) | $more_words_variable |
procedura | sub procedure() |
viceslovny nazev procedury | sub moreWordsProcedure() |
Syntaxe¶
Odsazeni
Odsazeni je C-like stylem, tzn. 2x mezera
Procedura a jeji popis
#---------------------------------------------------- # newProcedure - popis procedury #---------------------------------------------------- sub newProcedura() { ... }
Podminka
if (true) { ... }
Navratove kody
Navratove kody opacne jako v BASH.
return 1; #OK (True) return 0; #Failed (False)
Exit kody
Exit kody jsou analogicke s BASHem.
exit 0; #OK exit 1; #Failed
Klicove vyrazy v SQL query
Klicove SQL vyrazy jsou v kodu uvedeny velkymi pismeny.
SELECT * FROM events WHERE type != 'test' AND id > 1 AND valid = 't' ORDER BY id ASC LIMIT 1;
Logovani¶
Logovani je realizovano pomoci Syslogu (modul Sys::Syslog)
- errMsg($msg) - funkce pro logovani na STDERR
- pouziti pred startem serveru (prepnuti serveru na pozadi), pripravne operace
- write2log($msg, $priority) - funkce pro logovani pres Syslog
- po uspesnem startu serveru, jakmile uz server bezi na pozadi
Vyvojove misto¶
Veskery vyvoj systemu Warden (server, klienti) probiha v adresari /opt
, ktery je zvolen kvuli vychozi instalacni ceste /opt
Verzovani balicku¶
Pro verzovani balicku klienta i serveru pouzivame 2 cislice oddelene teckou, kdy kazda cislice oznacuje nasledujici zmeny
1.0 | | | | | +---------- dulezite (major) zmeny (upravy zavaznych chyb branicich chodu systemu, bezpecnostni zmeny, nove featury, uprava prototypu funkci,... ) + drobne (minor) zmeny (upravy drobnych chyb, zmena/oprava README, oprava jedne chyby,...) - primarne se nepouziva +------------ zmena konceptu (prechod na novou generaci, zmena konceptu celeho systemu, zasadni zmeny systemu, oprava vice dulezitych chyb,...)