Tag Archives: trac plugin

trac 업그레이드 & plugin

trac 사용하면서 꼭 알아야할 사이트인 trac-hacks.org 에 대해서는 오래전부터 알고 있었지만 크게 필요가 없어서 플러그인은 사용하지 않았었습니다. 티켓에서 예상완료일자를 설정하려고 하니 달력에서 보고 설정할수 있으면 좋겠다는 생각이 들었습니다. 그래서 trac-hacks를 찾아보니 역시 플러그인 있네요 ^^. 물론 trac 자체에서도 custom field를 지원하지만, 달력에서 날짜를 고를수 있는 플러그인인 TracDatePlugin은 꼭 설치하고 싶더군요. 그런데 플러그인을 설치하려고 보니 0.9.X에서는 동작을 안한다고 하더군요. 그래서 업그레이드를 했습니다. 물론 일단 백업받고 시작했죠.

전에 사용하던 버전이 0.9.6이 였는데 FreeBSD ports를 통해서 0.10.4 버전으로 업그레이드했습니다.

# cd /usr/ports/www/trac
# make deinstall
# make install
# trac-admin /TRAC/PATH upgrade
# /usr/local/etc/rc.d/lighttpd restart

trac-admin 실행해주고 웹서버 재시작하니 업그레이드가 정상적으로 완료되었습니다.

trac plugin은 egg라고 zip 파일 형태의 패키지를 이용하도록 되어있습니다. python은 오래전부터 사용했지만, egg 패키지는 처음 사용해보는데 java의 jar 정도 되는거 같네요. 패키지의 종속성등의 메타 정보를 넣을수 있다고 합니다. 하지만, 소스에서 뭘 바꾸려해도 zip 안에 들어있어서 바로 편집하기 어려울듯하네요. Egg에 대한 자세한 내용은 여기를 참고하세요.

egg 파일은 단순히 py, pyc 파일등과 메타 정보를 압축한 zip 파일입니다. egg 파일을 만들기 위해서는 setuptools가 필요하다고 합니다. 역시 FreeBSD ports를 이용해 설치했습니다.

# cd /usr/ports/devel/py-setuptools
# make install

그리고 trac plugin 설명 페이지에서 설명한 대로 ez_setup을 설치했습니다.

# wget http://peak.telecommunity.com/dist/ez_setup.py
# python ez_setup.py

이렇게 하고 필요한 플러그인을 받고 egg 파일을 아래와 같이 만들면 됩니다.

$ unzip datefieldplugin.zip
$ cd datefieldplugin/0.10
$ python setup.py bdist_egg
$ cd dist
$ cp TracDateField-1.0.1-py2.4.egg /TRAC/PATH/plugins

플러그인 소스 받은후 압축풀고, setup.py를 찾아서 위처럼 실행해주면 dist 디렉토리 밑에 egg 파일이 만들어지고, 이 파일을 trac plugin 디렉토리에 옮겨주고 웹서버를 재시작하면 됩니다.

플러그인 중에 제가 사용중인 것 2개만 소개합니다.

TracWebAdmin 0.1.2dev-r4240 : trac-admin을 웹페이지를 통해서 할수 있도록 해주는 플러그인으로 trac을 개발한 edgewall에서 개발한 거고, trac 0.11에서부터는 기본으로 포함된다고 합니다. trac-admin 사용하면 이 정도 기능은 웹에서 가능해야한다고 생각했었는데, 꼭 설치해야할 필수 플러그인이네요.

TracDateField 1.0.1 : custom field에 날짜를 설정할수 있게 해줍니다. 아래와 같이 티켓 만들때 custom field로 date로 설정하면 달력을 보고 날짜를 설정할수 있습니다.