我有一个Trac项目,安装在Subversion上(由于Webfaction的控制面板很容易做到),但现在我需要进行配置工作。考虑到这一点,是否有以下Trac中的简单方法:
1)确保客户只能看到高级别的进度指示器。
2)提供关于票务、测试和任务每日摘要报告。
此外,我想知道是否有任何高度推荐的插件,如果我忘记安装它们会遗憾。
我有一个Trac项目,安装在Subversion上(由于Webfaction的控制面板很容易做到),但现在我需要进行配置工作。考虑到这一点,是否有以下Trac中的简单方法:
1)确保客户只能看到高级别的进度指示器。
2)提供关于票务、测试和任务每日摘要报告。
此外,我想知道是否有任何高度推荐的插件,如果我忘记安装它们会遗憾。
我不建议在同一个Trac项目中既追踪开发任务,又展示给客户进展情况。您希望能够坦诚地处理开发工单、评论等。客户可能会关注错误的事情并误解您在工单中提供的数据。我建议为客户提供一个单独的项目,其中包含高级任务,并只显示这些任务的进度,而不是细节。
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 字段中的人,但我只列出了那些你是所有者的我的票据的报告。为了克服这个问题,我添加了一个类似于以下内容的查询:
SELECT p.value AS __color__, (CASE owner WHEN '$USER' THEN (CASE status WHEN 'assigned' THEN '您接受的工单' ELSE '分配给您的工单,请接受或重新分配' END) ELSE '抄送给您的工单' 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源代码,Web界面允许您编辑查询。
插件
我推荐使用XML RPC插件,如果您使用Eclipse。它可以与Mylin进行紧密集成。(我认为即使没有插件,基本的集成也可以工作),这样您的开发人员就可以在Eclipse中完成许多任务,而不必切换到Trac Web界面。
(如果您使用Eclipse,但不知道Mylin,您应该看一下它。您可以在不进行任何配置的情况下测试它,因为它随附于大多数Eclipse发行版,并且可以作为独立的工具使用,无需Trac。)
ROADMAP_VIEW
,但这可能会太高级了,不是吗?据我所知,目前不支持在单个票证或注释级别上进行访问控制。有关Trac权限的详细信息,请参见http://trac.edgewall.org/wiki/TracPermissions。@Dave Dunkin是正确的。在内部使用Trac,使用像Basecamp这样的系统为客户提供项目的高级概述。
如在评论中提到的那样,您无法根据用户限制票证或评论访问。找到或创建外部报告系统是最好的选择。
基于Trac的经验有几点需要注意:
创建自定义工作流程非常简单。使用GraphViz对于传达状态和操作非常有帮助。如果需要更复杂的状态交互,可以使用工作流插件(例如AdvancedTicketWorkflowPlugin)进一步扩展内置功能。
对于自定义报告,您可以编写带有命名参数的SQL查询,然后从wiki页面链接到这些查询:
例如,查询可以包含像这样的WHERE子句:
WHERE datetime(t.changetime, 'unixepoch') >= datetime('now','-$DAYS days')
而维基页面可以包含以下内容:
Show activity for last [http://server.com/trac/report/9?DAYS=8 8] days.