Seznámení s Trac, opensource systémem pro správu projektů.
2.4.2007 06:00 | Radim Kolář | přečteno 9940×
Přístupová práva se v Tracu zařizují jednoduše: ke každé akci, kterou je možné přes web rozhraní provést je přiřazeno privilegium. Například pro prohlížení bug reportů potřebujete privilegium TICKET_VIEW. Pokud uživatel toto privilegium nevlastní, nejenže nemůže danou akci provádět, ale nevidí ani příslušné ovládací prvky.
Pro usnadnění správy uživatelů jsou podporovány skupiny, kterým je možné přiřazovat privilegia. Standardně existují dvě skupiny authenticated a anonymous, ale je možné vytváření vlastních, které lze navíc do sebe vnořovat.
Trac je v default nastavení nastaven velmi otevřeně. Všem (i nepřihlášeným) uživatelům je povoleno modifikovat wiki, bug tracker a připojovat soubory. Toto tovární nastavení je ideální pro malý intranet, kde uživatelé nevyžadují autentifikaci heslem.
V Tracu si anonymní uživatelé si mohou nastavit nick, který bude zobrazován u jejich editací, což je pro odlišení uživatelů dostatečné. Naneštěstí je v současné verzi Tracu možné si nastavit nick i na autentifikovaného uživatele. Větší přístupová práva tím sice nezískáte, ale můžete úspěšně vystupovat v diskuzích pod cizí identitou. Tento závažný nedostatek lze odstranit odebráním zápisových práv anonymním uživatelům nebo nastavením Apache tak, aby anonymní uživatele do Tracu vůbec nepouštěl.
Vzhlem k popularitě Tracu, toto příliš otevřené nastavení není vhodné pro Internet, pokud zrovna nekontrolujete Trac několikrát denně. Spam boti totiž zvládají nejen klasické spamování Wikistánek, ale i otevírání spam bugreportů, které naneštěstí nejdou přes web rozhraní mazat. Proto platí pro Trac přibližně totéž co pro wiki, antispam plugin je při provozu na Internetu nutností.
Trac Wiki poskytuje víceméně standardní množinu wiki formátovacích funkcí: různé druhy fontů, jednoduché tabulky, listy a CamelCase a interwiki linky. Kromě wiki markupu je možné použít i výstupní procesory, které zvládají reStructuredText, textile a HTML. K dispozici je i velmi jednoduchý GUI editor. Na rozdíl od ostatních wiki, Trac nepřipomíná uživateli pod formulářem pro editaci stránky ani tu základní wiki syntaxi.
Sympatické na Trac wiki je, že používá MoinMoin syntaxi a pomocí administrativního programu je možné wiki stránky importovat/exportovat z/do filesystému (jsou totiž uloženy v databázi), takže import z dat z MoinMoin je poměrně snadná záležitost. Trac není s MoinMoin stoprocentně kompatibilní, nezvládá například vnořené tabulky, pro ty je potřeba použít reST procesor.
Podobně jako v MoinMoin, jsou podporovány wiki makra a syntax highlighting pro devět nejběžnějších programovacích jazyků. Většina Trac předdefinovaných maker slouží překvapivě k zobrazování Trac dokumentace, takže pro běžné použití zbudou přibližně dvě makra: [[TicketQuery]], pro integrování výsledků z bug trackeru, a [[Image]] pro zobrazování inline obrázků.
Obě dvě jsou velmi užitečná. Pomocí prvního lze vládat do stránky seznam bug reportů splňující definované podmínky a pomocí druhého obrázky.
U delších textů možná oceníte makro [[PageOutline]], které zobazí obsah dokumentu sloužící k snadnější navigaci do pravého horního rohu. Trac wiki podporuje substránky a tak je snadnější dělit delší dokumenty na substránky. Sníží se tak počet konfliktů při editaci, které Trac neumí automaticky slučovat.
Ve wiki lze fulltextově vyhledávat. Vyhledávaní je oproti MoinMoin velmi rychlé a není třeba se starat o vytváření či aktualizaci fulltextového indexu. Trac neumí vyhledávat backlinky t.j. najdi všechny stránky, které odkazují na tuto stránku, což je docela škoda. Je to dnes již standardní wiki funkce.
Vzhledem k integrovanému bug trackeru a prohlížeči source code repository je wiki vybaveno syntaxí pro odkazování na jednotlivé bug reporty, sestavy bug reportů, changesety a zdrojové soubory. Při renderování seznamu bug reportů se zohledňuje jejich strav, uzavřené bugreporty jsou přeškrtnuty. Působí to velmi přehledně.
Bug tracker se nekonfiguruje přes web rozhraní, ale poměrně neočekávaně z příkazové řádky pomocí programu trac-admin, kterým se konfigurují seznamy povolených hodnot v jednotlivých položkách. Hodnoty lze přidávat, mazat, přejmenovávat a měnit jejich pořadí.
Bug tracker poskytuje stejné funkce jako ostatní programy tohoto typu například dělení projektu na jednotlivé komponenty. Jednotlivé tickety mohou mít různou prioritu, typ může být defekt, rozšíření nebo úloha a tickety je možné přiřazovat k jednotlivým osobám, verzím a milníkům. V dřívější verzi, se používala ještě položka severity, ale byla za účelem zjednodušení odstraněna a doporučeno místo ní používat prioritu. Při uzavírání ticketu je nutné nastavit důvod uzavření - opraveno, nemožnost zopakovat chybu, chybný report, duplicitní report. U ticketů se sleduje historie změn a je možné k nim přidávat komentáře a soubory. Tickety je možné nálepkovat pro snazší vyhledávání pomocí klíčových slov. Klíčová slova lze použít libovolná, na rozdíl od ostatních položek není potřeba před použitím vytvářet jejich seznam.
Bug tracker je flexibilní. Pokud nechcete některou z položek u ticketu používat, smažte všechny povolené hodnoty pro tuto položku pomocí trac-admin a Trac ji pak v formuláři nezobrazí. Takto byla zneviditelněna položka severity ve verzi 0.10. Kromě odebírání položek, lze i položky přidávat. Užívatelem definované položky mohou nabývat všech formuláři podporovaných typů - text, textarea, checkbox, select, radio. Položky typu textarea mohou obsahovat wiki markup, jehož vhodné použití činí bug reporty přehlednějšími.
V bug reportech se dá velmi hezky vyhledávat. První možností vyhledávání je použití fulltextového vyhledávání, které je součástí wiki. Druhou možností je použití custom query builderu v kterém lze naklikat i složitejší dotazy. Kromě spojování filtrů položka = hodnota pomocí logického součinu lze použít GROUP BY tak, jak ho známe z SQL. Výslednou sestavu lze třídit podle jednotlivých sloupců - stačí kliknout na hlavičku sloupce.
Poslední metodou, jak vyhledávat v bug reportech je naprogramování vlastní sestavy. Je to velice jednoduché, v naprosté většině případů je potřeba zadat jen SQL dotaz, jehož provedení vrátí data z kterých Trac vytvoří sestavu. Přímé použití SQL je velmi dobrý nápad. Toto řešení dává uživateli velkou flexibilitu, jelikož je možné použít vše, co jazyk SQL nabízí a většina administrátorů již SQL umí, takže proces učení dotazovacího jakyka odpadá.
Trac formátuje sestavu podle názvů sloupců. Například sloupec id formátuje jako link na ticket, sloupec description formátuje pomocí wiki, atd. Formátování se dá také ovlivnit vložením speciálních sloupců __group__, __color__ a __style__, které nastavují dělení sestavy, a u řádků pak barvu a CSS styl. Do výstupu je získáme například konstrukcí SELECT 'green' AS "__color__" FROM .... Přidáním podtržítek ke jménu sloupce lze řídit zalamování řádek. Po sloupci_ bude následovat v sestavě nový řádek a _sloupci_ bude vyhrazena samostatná řádka.
Kromě HTML výstupu je možné sestavy exportovat ve formátech RSS, CSV a TSV. Zejména RSS export je velmi užitečný, protože Firefox podporuje umísťování RSS exportu do záložek a tak máte své bug reporty vždy po ruce.