Trac report

2008년 들어서 회사 개발팀에서 모든 일을 Trac의 티켓으로 관리하기로 했습니다.

Trac이 한글화 되어있지 않은거 같아서 몇가지 간단한거는 한글로 바꿨습니다.

현재 0.10.4 버전을 사용중인데, 설정 변경은 TracWebAdmin 플러그인을 통해서 했습니다. 새버전에는 Admin 기능이 Trac에 통합된다고 하는데, 정말 없으면 안되는 필수 기능입니다.

Priority를 영어에서 1,2,3,4,5로 바꾸고,
Type은 버그수정, 기능개선, 새로운기능으로 변경했습니다.

개발팀 밖에서 티켓 등록 및 모니터링을 할수 있도록, Permission을 바꿨습니다.
먼저 개발자(developers) 그룹을 생성하고, TIMELINE_VIEW와 BROWSER_VIEW 액션을 anonymous에서 developers로 옮겼습니다. (삭제하고 다시 등록)

Trac의 사용자 인증은 htpasswd를 사용하며, 웹서버는 lighttpd를 사용하고 있습니다.

View Tickets 페이지 보면 report를 편집할수 있는데,  편집해서 TODO와 최근변경사항을 만들었습니다. TODO는 아직 완료되지 않은 일(티켓)을 내거와 다른사람거로 나누어 보여주며, 우선도에 따라 정렬해 보여줍니다. 바탕색도 우선도에 따라서 보여줍니다. 아래는 report를 위한 SQL Query입니다.

[CODE]
SELECT p.value AS __color__,
  (CASE owner
    WHEN ‘$USER’ THEN ‘My Tickets’
    ELSE ‘Active Tickets’
   END) AS __group__,
  id AS ticket,
  (CASE status WHEN ‘assigned’ THEN owner||’ *’ ELSE owner END) AS owner,
  summary, component, priority, t.type AS type,
  time AS created,
  changetime AS _changetime, description AS _description,
  reporter AS _reporter
  FROM ticket t, enum p
  WHERE status IN (‘new’, ‘assigned’, ‘reopened’)
AND p.name = t.priority AND p.type = ‘priority’
  ORDER BY (owner = ‘$USER’) DESC, p.value, milestone, t.type, time
[/CODE]

최근변경사항은 티켓에 일어난 최근 변경 사항을 20개 보여줍니다. 물론 Timeline에서도 볼수 있지만, Timeline을 개발자만 볼수 있고, 소스 커밋과는 별도로 볼수 있도록 하는게 편리할것 같아서 따로 report를 생성했습니다.

[CODE]
SELECT
  id AS ticket,
  summary,
  changetime AS modified,
  status,
  component,
  t.type AS type,
  (CASE status WHEN ‘assigned’ THEN owner||’ *’ ELSE owner END) AS owner,
  time AS created,
  description AS description,
  reporter AS _reporter
  FROM ticket t
  ORDER BY changetime desc limit 0,20
[/CODE]

trac report 만드는데 참고할 문서가 별로 없어서 좀 헤맸는데… 위에서 reporter as _reporter식으로 “as _*”로 하면 테이블에서 항목이 표시가 안됩니다. 기본 예제들을 자세히 보면 항목이 뭐가 있는지 볼수 있으므로 기본 예제들을 참고하시고 조금씩 바꾸면 원하는 출력을 얻을수 있습니다.

TODO와 최근변경사항 링크를 메뉴로 쉽게 접근할 수 있도록, http://trac-hacks.org/wiki/NavAddPlugin를 설치했습니다.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>