Zenedith's dev blog

Dałem się namówić.., szatanowi chyba..

Trac – zarządzanie projektem – instalacja Windows

TRAC to system pomocny przy zarządzanie projektami. Jego możliwości są naprawdę spore, ja postaram się pokazać jak można go wykorzystać do pracy nad własnymi projektami, które prowadzimy sami, a więc nie potrzebujemy rozbudowanych mechanizmów które oczywiście TRAC również dostarcza.

Instalacja (Windows)

W dziale download znajdziemy aktualną wersję Trac’a.  Ponieważ instalujemy Trac pod Windows, polecam ściągnąć instalator, np. ostatnią stabilną wersję Trac-0.11.5. Jednakże jeśli nie posiadamy zainstalowanego środowiska Python, to instalacja nie powiedzie się.

W przypadku braku instalacji Pythona, udajemy się na stronę Pythona/Download i ściągamy wersję 2.x, np. Python 2.6.2 Windows installer. (W moim przypadku instalowałem Pythona w wersji 2.5, która wymagała kilku dodatkowych rozszerzeń, które są opcjonalne w nowszych wydaniach Pythona).

W tym momencie będziemy mogli zainstalować Trac’a, odpalając instalator w postaci pliku *.exe.

Do poprawnej pracy, Trac będzie wymagał od nas instalacji dodatkowych bibliotek i rozszerzeń:

  1. Genshi – pobieramy odpowiednią do naszej wersji Pythona ze strony projektu (np. Genshi-0.5.1.win32-py2.6.exe).
  2. Moduł mod_wsgi do Apache2.2, który pozwoli nam odpalić Trac’a bezpośrednio pod kontrolą Apache, bez konieczności używania serwera tracd. Moduł dla windows można pobrać tutaj, albo bezpośrednio: dla Pythona 2.5 i dla Pythona 2.6.
    Plik ten po ściągnieciu kopiujemy do katalogu modules w instalacji Apache2.2, czyli np. /Program Files/Apache Software Foundation/Apache22/modules a w pliku httpd.conf dodajemy wpis do pozostałych LoadModule:

    LoadModule wsgi_module modules/mod_wsgi.so

    Po restarcie serwera Apache, w phpinfo() można obejrzeć, czy nowe rozszerzenie zostało załadowane poprawnie (np. w polu Apache Version pojawi się dodatkowe treść podobna do: Apache/2.2.13 (Win32) mod_wsgi/2.3 Python/2.5.2).

  3. (wymagane dla Python 2.5) Setuptools – pomocny przy instalacji dodatkowych rozszerzeń, można także użyć do instalacji samego Trac’a – pobieramy ze strony projektu odpowiednią wersję dla Pythona (np. setuptools-0.6c9.win32-py2.5.exe ).
  4. (wymagane dla Python 2.5) SVN – plugin do SVN, np. svn-python-1.5.6.win32-py2.5.exe.
  5. (wymagane dla Python 2.5) MySQL – Sterownik do bazy danych, której chcemy użyć do przechowywania danych projektu  ze strony projektu (np. MySQL-python-1.2.2.win32-py2.5.exe)

Stworzenie projektu

Przed stworzeniem projektu należy:

  • Jeśli korzystamy z SVN: upewnić się, że mamy zainstalowane rozszerzenie SVN dla Pythona (komunikaty o błędzie w stylu Unsupported version control system „svn”: „No module named svn”,
  • Jeśli korzystamy z MySQL: sprawdzić czy posiadamy sterownik dla MySQL (komunikaty o błędzie w stylu Unsupported database type „mysql”),
  • utworzyć bazę danych w której mają być trzymane informacje.

Do zarządzania projektami Trac’a używane jest narzędzie o nazwie trac-admin, do którego przekazujemy parametry w linii poleceń.

W celu utworzenia projektu wydajemy polecenie:

trac-admin /path/to/myproject initenv

gdzie /path/to/myproject jest absolutną ścieżką do lokalizacji, w której umieszczone zostaną pliki tworzonego projektu.

W tym momencie będziemy poproszenie o podanie paru odpowiedzi na temat:

  • nazwy projektu
  • sposobu zapisu informacji (adaptera db)  (np. dla mysql może to być: mysql://uzytkownik:haslo@localhost:3306/nazwa_bazy)
  • typu repozytorium kodu (domyślnie SVN)
  • ścieżki do repozytorium (i konkretnego katalogu w repo) (np.  jeśli mamy repo svn w katalogu C:\SVN a w nim pewną strukturę logiczną (nie fizyczną, jaką widać po wejściu do tego katalogu, lecz przy przeglądaniu danego repo za pomocą klienta SVN) to dopisujemy po katalogu repo dane logicznej struktury, np. C:\SVN\projekt\trunk)

Jeśli posiadaliśmy wszelkie potrzebne rozszerzenia to instalacja powinna zakończyć się sukcesem, o czym będzie świadczyła szczegółowa informacja, z której dowiemy się również jak szybko można ją przetestować (odpalając wiersza poleceń narzędzie tracd i łącząc się podanym linkiem do tego serwera).

Ponieważ naszym celem było spięcie Trac’a z apache2, to w tym momencie należy wprowadzić pewne modyfikacje w pliku httpd.conf i stworzyć pliki konfiguracji .wsgi, fcgi i .cgi.

Wydając polecenie

trac-admin /path/to/myproject/ deploy /path/to/myproject/eggs

utworzone zostaną potrzebne pliki w katalogu /path/to/myproject/eggs/cgi-bin/ – interesuje nas głównie plik trac.wsgi, który przekopiujmy do katalogu apache (który należy utworzyć w taki sposób /path/to/myproject/apache).

Ponieważ plik ten zostanie wygenerowany z niedozwolonymi znakami „\” w ścieżce, należy je wszystkie zamienić na „/”.

Następnie skonfigurujemy httpd.conf:

Odszukujemy miejsce, gdzie definiowane są <Directory> …. i dodajemy tam dodatkowy „Directory” w postaci:

WSGIScriptAlias /trac "/path/to/myproject/apache/trac.wsgi"

<Directory "/path/to/myproject/apache">
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>

Żeby uzyskać dostęp do administracji Trac’a, musimy utworzyć konto, któremu nadamy uprawnienie TRAC_ADMIN.

W tym celu utworzymy plik z użytkownikami i ich hasłami oraz wykorzystamy autoryzację Http. Niech plik nazywa się /path/to/myproject/apache/trac_paswd.txt. Następnie wpisujemy w nim login i po znaku „:” wpisujemy hasło użytkownika o podanym login’ie.

W ten sposób w każdej kolejnej lini możemy zdefiniować kolejnych użytkowników. W naszym przykładzie zawartość tego pliku może być następująca:

admin:admin

Dodajemy w pliku konfiguracji apache2 httpd.conf dodatkowy wpis:

<Location "/trac/login">
AuthType Basic
AuthName "Trac"
AuthUserFile "/path/to/myproject/apache/trac_paswd.txt"
Require valid-user
</Location>

lub alternatywnie możemy utworzyć odpowiedni plik .htaccess w katalogu głównym projektu, którego zawartość będzie analogiczna:

AuthType Basic
AuthName "Trac"
AuthUserFile "/path/to/myproject/apache/trac_paswd.txt"
Require valid-user

Skoro użytkownik został dopisany w pliku, to możemy nadać mu uprawnienie administracyjne TRAC_ADMIN, wpisując polecenie:

trac-admin /path/to/myproject/ permission add admin TRAC_ADMIN

Strona naszego projektu Trac’a będzie dostępna pod adresem: http://localhost/trac/
Po zalogowaniu się na użytkownika admin otrzymamy dostęp do nowego menu, gdzie będziemy mogli dokładniej skonfigurować Trac’a.

Zyskujemy

W moim przypadku istotne było śledzenie zmian w repozytorium kodu oraz zapisywanie informacji o tym, co jest do zrobienia.

Ponieważ Trac cache’uje sobie dane z repozytorium, należy co pewien okres czasu wykonać synchronizację danych – służy do tego polecenie:

trac-admin /path/to/myproject/ resync

Jeśli chodzi o zmiany w SVN do dyspozycji mamy dwie zakładki: Timeline ( z zaznaczoną opcją „Repository checkins„) oraz „Browse Source„.

Timeline informuje o zmianach w repozytorium, a dokładniej o tym kiedy i jakie zmiany miały miejsce z możliwością bezpośredniego przejrzenia wprowadzanych zmian w kodzie, w bardzo przejrzysty sposób.

Browse Source pozwala na przeglądania całego repozytorium. Mamy dostęp do „Revision Log” z którego poziomu możemy porównywać konkretne rewizje lub zobaczyć zmiany w ostatnim „commit”. Wszelkie diff’y prezentowane są w bardzo przejrzysty sposób, dodatkowo z możliwością konfiguracji wybranych parametrów.

New Ticket/ View Tickets – pozawala zarządzać zadaniami do wykonania oraz błędami w istniejącym systemie. Poprawione „błędy” można oznaczać przy commit’owaniu odpowiednimi przypisami (Fixes #123 lub Refs #123, gdzie 123 to przykładowy numer id Ticket’a w systemie).

Żeby móc z tego skorzystać należy usunąć rozszerzenie tmpl z pliku post-commit.tmpl w katalogu hooks (np. C:\SVN\hooks\) repozytorium oraz zmienić jego zawartość tak, aby wywoływany był skrypt dołączony z instalacją Trac’a:

REPOS="$1"
REV="$2"
TRAC_ENV="/path/to/myproject/"

sciezka/do/python.exe katalog/instalacji/traca/trac-post-commit-hook -p "$TRAC_ENV" -r "$REV"
Reklamy

13 Wrzesień, 2009 - Posted by | scripts, web | , ,

1 komentarz »

  1. Witam, prawdopodobnie niedługo sam będę korzystał z TRAC’a w pracy, więc chętnie poczytałbym o tym jak się go używa i do czego.

    W każdym razie post o jego instalacji też wydaje się ciekawy :)

    Komentarz - autor: Wachu | 13 Wrzesień, 2009 | Odpowiedz


Skomentuj

Proszę zalogować się jedną z tych metod aby dodawać swoje komentarze:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj / Zmień )

Zdjęcie na Facebooku

Komentujesz korzystając z konta Facebook. Wyloguj / Zmień )

Zdjęcie na Google+

Komentujesz korzystając z konta Google+. Wyloguj / Zmień )

Connecting to %s

%d blogerów lubi to: