Как я могу лучше всего воспользоваться Trac? - PullRequest
16 голосов
/ 11 октября 2008

У меня установлен проект Trac поверх реализации Subversion (это легко сделать благодаря панели управления Webfaction), но теперь у меня есть работа по настройке. Имея это в виду, есть ли простой способ сделать следующее в Trac:

1) Убедитесь, что клиенты могут видеть только индикатор прогресса высокого уровня.
2) Предоставлять ежедневные сводные отчеты о билетах, тестировании и заданиях.

Кроме того, мне интересно узнать, существуют ли какие-либо очень рекомендуемые плагины, которые, к сожалению, я забыл установить.

Ответы [ 7 ]

17 голосов
/ 11 октября 2008

Я бы не рекомендовал использовать один и тот же проект Trac для отслеживания задач разработки и отображения прогресса клиента. Вы хотите быть откровенным со своими заявками на разработку, комментариями и т. Д. Клиенты могут сосредоточиться на неправильных вещах и неверно истолковать данные, которые вы указали в заявках. Я бы порекомендовал предоставить заказчику отдельный проект, который содержит задачи высокого уровня и показывает только прогресс по этим задачам, а не мелочь.

8 голосов
/ 11 февраля 2009

1) индикатор прогресса высокого уровня:

На вкладке «Дорожная карта» отображается индикатор высокого уровня прогресса. В нем перечислены все этапы, и для каждого этапа он показывает:

  • заголовок этапа
  • краткое описание
  • дата наступления вехи
  • сколько времени осталось до этого времени (или как долго вы отстаете от графика)
  • сколько билетов назначено этому этапу и сколько из них закрыто, визуализируется как красивый зеленый индикатор выполнения. Эта полоса основана на предположении, что каждый билет имеет одинаковый вес, что может вводить в заблуждение

Вы можете ограничить свои разрешения таким образом, чтобы ваш клиент мог получить доступ только к этому представлению.

В зависимости от взаимоотношений между вами и вашим клиентом вы можете предоставить ему возможность создавать новые билеты (разрешение TICKET_CREATE), что должно быть возможно без предоставления ему доступа для чтения к другим билетам (TICKET_VIEW и TICKET_MODIFY). Извините, но в настоящее время я не могу проверить, действительно ли это работает, возможно, кто-то может прокомментировать это.

2) ежедневные сводные отчеты

trac предлагает вам RSS-каналы для всего, что только можно придумать. На этом основании должна быть возможность создавать ежедневные отчеты, или вы просто указываете своему RSS-клиенту проверять канал один раз в день.

Trac также может уведомить владельца билета по почте, если тот билет изменился, но это произойдет мгновенно, а не в виде ежедневной сводки. Вы можете комментировать билеты, и иногда мы используем их как доску обсуждений или список рассылки, и в этом случае полезно получать мгновенные уведомления.

Другая конфигурация

В каждом проекте, который я делаю с trac, я создаю собственный запрос, чтобы вывести список всех заявок, которые никому не принадлежат:

SELECT p.value AS __color__,
   owner AS __group__,
status,
   id AS ticket, summary, component, milestone, t.type AS type, time AS created,
   changetime AS _changetime, description AS _description,
   reporter AS _reporter
  FROM ticket t
  LEFT JOIN enum p ON p.name = t.priority AND p.type = 'priority'
  WHERE status = 'new' AND (owner = '' OR owner = 'somebody'  OR owner = 'None' )
  ORDER BY owner, p.value, t.type, time

Каждый билет может иметь владельца и нескольких человек в поле cc, но в отчете для my tickets перечислены только те, владельцем которых вы являетесь. Чтобы преодолеть это, я добавляю запрос, подобный этому:

  SELECT p.value AS __color__,
   (CASE owner WHEN '$USER' THEN 
     (CASE status 
       WHEN 'assigned' 
       THEN 'Tickets that you accepted' 
       ELSE 'Tickets that were assigned to you, please accept or reassign' 
      END) 
     ELSE 'Tickets, that have your name in the cc' END) 
     AS __group__,
   id AS ticket, summary, component, version, milestone,
   t.type AS type, priority, time AS created,
   changetime AS _changetime, description AS _description,
   reporter AS _reporter
  FROM ticket t
  LEFT JOIN enum p ON p.name = t.priority AND p.type = 'priority'
  WHERE t.status  'closed' AND (owner = '$USER' OR cc like '%$USER%')
  ORDER BY owner, (status = 'assigned') DESC, p.value, milestone, t.type, time

(этот код работает в trac 0.11b)

Это мой любимый отчет о билетах. Он объединяет билеты по трем классам:

  • Билеты у вас есть и принимаются
  • Билеты, которые были назначены вам, но вы еще не приняли
  • Билеты, которые есть у вас в чеке (что вы не получите без этого запроса)

Запросы могут выглядеть пугающими, но они представляют собой простые модификации запросов, которые уже есть. Вам не нужно взламывать исходный код trac, веб-интерфейс позволяет редактировать запросы.

Плагины

Я рекомендую XML RPC плагин , если вы работаете с Eclipse. Это обеспечивает тесную интеграцию с Mylin . (Я думаю, что базовая интеграция работает даже без плагина), поэтому ваши разработчики могут выполнять множество задач из затмения, не переключаясь на веб-интерфейс trac.

(Если вы используете eclipse, но не знаете mylin, вам следует взглянуть на него. Вы можете протестировать его без какой-либо конфигурации, потому что он поставляется с большинством распределений eclipse и может работать автономно без trac.)

5 голосов
/ 20 октября 2008

Что касается дополнительных плагинов, мы устанавливаем TocMacro, XmlRpcPlugin, WysiwygPlugin и TracRedirect. В частности, плагин WYSIWYG действительно хорош для поощрения меньшего количества технического персонала поддерживать свои собственные документы в вики - вы можете даже использовать C & P из MS Word, сохраняя форматирование, что помогает.

Взгляните на материал по работе с заказными билетами, который дает вам Trac, если ваш собственный рабочий процесс плохо представлен настройками Trac по умолчанию. Это позволило нам добавить шаги проверки кода и интеграции тестирования в рабочий процесс.

Я бы порекомендовал сделать так, чтобы ваш Trac-сервер проходил аутентификацию на некоторой центральной платформе аутентификации. Мы запускаем дерево LDAP с учетными данными аутентификации, и оно используется всеми нашими внутренними системами, включая trac, svn, samba, openvpn и т. Д.

3 голосов
/ 10 февраля 2009

Как упоминалось в одном из комментариев, вы не можете ограничить доступ к билетам или комментариям в зависимости от пользователя. Ваш лучший выбор - найти или создать внешнюю систему отчетности.

Пара вещей, основанных на опыте с Trac:

  1. Создание пользовательского рабочего процесса is довольно прямолинейно. Использование GraphViz - огромная помощь для сообщая состояния и действия. Плагин рабочего процесса (такой как AdvancedTicketWorkflowPlugin ), который дополнительно расширяет встроенную функциональность, не слишком сложен, если вам нужно более сложное взаимодействие состояний.

  2. Для пользовательских отчетов вы можете написать SQL-запросы, которые принимают именованные параметры, затем ссылку на них со страницы вики:

Например, запрос может содержать предложение WHERE, например:

WHERE datetime(t.changetime, 'unixepoch') >= datetime('now','-$DAYS days')

и на вики-странице это может быть:

Show activity for last [http://server.com/trac/report/9?DAYS=8 8] days.
3 голосов
/ 08 февраля 2009

Вы, вероятно, могли бы отозвать все разрешения, кроме ROADMAP_VIEW, у анонимного пользователя, но это, вероятно, будет немного слишком на высоком уровне, нет? Контроль доступа на уровне отдельного тикета или комментария в настоящее время не поддерживается AFAIK. См. http://trac.edgewall.org/wiki/TracPermissions для подробной информации о разрешениях trac.

3 голосов
/ 20 октября 2008

Если это стандартная установка, база данных - это просто SQLite3, так что вы можете легко написать сценарии для извлечения «безопасной» информации, например количества билетов, или почему не один из отчетов. Таким образом, вы можете свободно обсуждать, пока имя билета в порядке. Ревизии, вехи, вики-страницы, теги (если вы используете этот плагин) также доступны.

3 голосов
/ 11 октября 2008

@ Дейв Данкин прав. Используйте Trac для внутреннего использования и используйте систему, подобную Basecamp , чтобы предоставить своим клиентам общий обзор того, что происходит в проекте.

...