2008-10-10 5 views
16

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

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

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

ответ

8

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

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

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

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

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

2) ежедневно обзорные доклады

ПРОФ предлагает Вам RSS-каналы для всего, что вы можете думать. Должна быть возможность генерировать ежедневные отчеты из этого или просто скажите своему клиенту RSS, чтобы он проверял канал один раз в день.

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, но отчет за мои билеты перечисляет только те, где вы являетесь владельцем.Чтобы преодолеть это, я добавить запрос, как это:

 
    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)

Это мой любимый отчет билет. Это goups билетов на три класса:

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

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

Плагины

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

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

17

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

+0

Таким образом, нет способа ограничить представление, которое клиент должен достичь? – torial 2008-10-11 01:17:55

+0

Я не думаю, что вы можете ограничить пользователя только просмотром билетов, а не другими, или комментариями к билетам. – 2008-10-13 16:21:33

+0

Кажется, нарушает DRY (не повторяйте себя). Поддержание данных в двух местах - это рецепт непоследовательности и потерянных предметов. – 2009-02-08 01:12:05

3

@Dave Dunkin - это право. Используйте Trac для вашего внутреннего использования и используйте такую ​​систему, как Basecamp, чтобы дать своим клиентам обзор на высоком уровне того, что происходит в проекте.

5

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

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

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

3

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

3

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

3

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

Несколько вещей, основанных на опыте с Trac:

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

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

Например, запрос может содержать ИНЕКЕ следующим образом:

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

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

Show activity for last [http://server.com/trac/report/9?DAYS=8 8] days. 
Смежные вопросы