我怎样才能最好地利用 Trac?

发布于 2024-07-07 16:04:48 字数 243 浏览 4 评论 0原文

我在 Subversion 实现之上安装了一个 Trac 项目(由于 Webfaction 的控制面板,这很容易做到),但现在我有配置工作要做。 考虑到这一点,是否有简单方法可以在 Trac 中执行以下操作:

1) 确保客户只能看到高级别的进度指示器。
2) 提供有关工单、测试和任务的每日总结报告。

另外,我有兴趣知道是否有任何强烈推荐的插件,我很遗憾忘记安装。

I have a Trac project installed on top of a Subversion implementation (easy to do thanks to Webfaction's control panel), but now I have configuration work to do. With that in mind, are there easy ways to do the following in Trac:

1) Ensure that customers can only see a high level progress indicator.
2) Give daily summary reports on tickets, testing, and tasks.

Also, I am interested in knowing if there are any highly recommended plugins that I would be sorry I forgot to install.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

第几種人 2024-07-14 16:04:49

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

每个票证在抄送字段中可能有一个所有者和几个人,但 我的门票仅列出您是所有者的门票。 为了克服这个问题,我添加了一个如下查询:

  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 源代码,网络界面可让您编辑查询。

插件

如果您使用 eclipse,我推荐使用 XML RPC 插件。 它可以与 Mylin 紧密集成。 (我认为即使没有插件,基本集成也可以工作),因此您的开发人员可以在 Eclipse 中执行许多任务,而无需切换到 trac Web 界面。

(如果您使用 eclipse,但不了解 mylin,您应该看一下它。您无需任何配置即可测试它,因为它随大多数 eclipse 发行版一起提供,并且可以在没有 trac 的情况下独立工作。)

1) high level progress indicator:

The roadmap tab gives you kind of a high level progress indicator. It lists all milestones, and for each milestone it shows you:

  • milestone title
  • short description
  • date on which the milestone is due
  • how much time is left until then (or how long you are behind you schedule)
  • how many tickets are assigned to that milestone and how many of them have been closed, visualized as a nice green progress bar. This bar is drawn on the assumtion that each ticket has the same weight, which might be misleading

You can restrict your permissions in a way that your customer can only access this view.

Depending on the relationship between you and your customer, you might want to give him the ability to create new tickets (permission TICKET_CREATE), which should be possible without giving him read access to other tickets (TICKET_VIEW and TICKET_MODIFY). Sorry, but I can't currently test if this really works, maybe someone can comment on this.

2) daily summary reports

trac offers you RSS feeds for everything you can think of. It should be possible to generate daily reports from this, or you simply tell your RSS client to check the feed once a day.

Trac also has the abilty to inform a ticket-owner via mail if that ticket changed, but it will happen instantly, not as a daily summary. You can comment on tickets, and sometimes we use them like a discussion board or mailing list, and in this case it's good to be notified instantly.

Other configuration

In each project I do with trac, I create a custom query to list all tickets that nobody owns:

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

Each ticket may have an owner and several people in the cc field, but the report for my tickets only lists those where you are the owner. To overcome this, I add a query like this:

  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

(this code works in trac 0.11b)

That's my favorite ticket report. It goups tickets by three classes:

  • Tickets you own and accepted
  • Tickets that were assigned to you, but you didn't accept yet
  • Tickets that have you in the cc (that the fancy thing you don't get without that query)

The queries might look scary, but they are simple modifications of the queries that are already there. You don't have to hack the trac source code, the webinterface lets you edit queries.

Plugins

I recommend the XML RPC plugin if you work with eclipse. It enables tight integration with Mylin. (I think basic integration works even without the plugin), so your developers can do many tasks from within eclipse without switching to the trac webinterface.

(If you use eclipse, but don't know mylin, you should have a look at it. You can test it without any configuration because it comes with most eclipse distributions and can work as standalone without trac.)

云胡 2024-07-14 16:04:49

就其他插件而言,我们安装了 TocMacro、XmlRpcPlugin、WysiwygPlugin 和 TracRedirect。 特别是,WYSIWYG 插件非常适合鼓励技术较少的人员在 wiki 中维护自己的文档 - 您甚至可以从 MS Word 中进行 C&P,同时保留格式,这很有帮助。

如果 Trac 的默认设置不能很好地体现您自己的工作流程,请查看 Trac 为您提供的自定义工单工作流程内容。 这使我们能够向工作流程添加代码审查和集成测试步骤。

我建议让您的 Trac 服务器针对某些中央身份验证框架进行身份验证。 我们运行一个包含身份验证凭据的 LDAP 树,我们所有的内部系统都使用它 - 包括 trac、svn、samba、openvpn 等。

As far as additional plugins are concerned, we install TocMacro, XmlRpcPlugin, WysiwygPlugin and TracRedirect. In particular, the WYSIWYG plugin is really good for encouraging less technical staff to maintain their own documents in the wiki - you can even C&P from MS Word whilst retaining formatting, which helps.

Take a look at the custom ticket workflow stuff that Trac gives you, if your own workflow isn't well represented by Trac's defaults. This has allowed us to add code review and integration testing steps to the workflow.

I'd recommend making your Trac server authenticate against some central authentication framework. We run an LDAP tree with auth credentials in it, and this is used by all our internal systems - including trac, svn, samba, openvpn etc.

一笑百媚生 2024-07-14 16:04:49

@戴夫邓金是对的。 将 Trac 供内部使用,并使用 Basecamp 等系统为您的客户提供高级概述项目中发生了什么。

@Dave Dunkin is right. Use Trac for your internal use, and use a system like Basecamp to give your clients a high-level overview of what's going on in the project.

风向决定发型 2024-07-14 16:04:49

如果是库存安装,数据库只是一个 SQLite3,因此您可以轻松编写脚本来获取“安全”信息,例如门票数量,或者为什么不是其中一份报告。 这样只要票名没问题就可以自由讨论。 修订、里程碑、维基页面、标签(如果您使用该插件)也可用。

If it's a stock install, the database is just an SQLite3, so you can easily write scripts to fetch "safe" info, like the number of tickets, or why not one of the reports. That way, you can discuss freely as long as the ticket name is ok. Revisions, milestones, wikipages, tags (if you use that plugin) are also available.

野生奥特曼 2024-07-14 16:04:49

您可能可以撤回匿名用户除 ROADMAP_VIEW 之外的所有权限,但这可能有点高级,不是吗? 据我所知,目前不支持单个票证或评论级别的访问控制。 有关 trac 权限的详细信息,请参阅 http://trac.edgewall.org/wiki/TracPermissions

You could probably withdraw all permissions except ROADMAP_VIEW from the anonymous user but that will probably be a bit too high-level, no? Access control at the individual ticket or comment level is currently not supported AFAIK. See http://trac.edgewall.org/wiki/TracPermissions for details about trac permissions.

慕巷 2024-07-14 16:04:49

正如其中一条评论中提到的,您不能根据用户限制票证或评论访问权限。 寻找或创建外部报告系统是您最好的选择。

根据 Trac 的经验,有以下几点:

  1. 创建自定义工作流程
    非常直接。 指某东西的用途
    GraphViz
    沟通状态和行动。 进一步扩展内置功能的工作流程插件(例如 AdvancedTicketWorkflowPlugin)并不难如果您需要更复杂的状态交互,请执行以下操作。

  2. 对于自定义报告,您可以编写
    采用命名参数的 SQL 查询,
    然后从 wiki 页面链接到这些内容:

例如,查询可以包含如下的 WHERE 子句:

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

并且 wiki 页面可以包含以下内容:

Show activity for last [http://server.com/trac/report/9?DAYS=8 8] days.

As mentioned in one of the comments, you can't restrict ticket or comment access based on the user. Finding or creating an external reporting system is your best bet.

A couple of things based on experience with Trac:

  1. Creating a custom workflow is
    pretty straight froward. The use of
    GraphViz is a huge help for
    communicating states and actions. A workflow plugin (like AdvancedTicketWorkflowPlugin) that further extends the built-in functionality isn't too hard to do if you need more complex state interaction.

  2. For custom reporting, you can write
    SQL queries that take named parameters,
    then link to these from a wiki page:

For example, the query can contain a WHERE clause like this:

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

and the wiki page can have this:

Show activity for last [http://server.com/trac/report/9?DAYS=8 8] days.
前事休说 2024-07-14 16:04:48

我不建议使用相同的 Trac 项目来跟踪开发任务并显示客户进度。 您希望能够坦诚地对待您的开发票证、评论等。客户可能会关注错误的事情并误解您在票证中输入的数据。 我建议为客户提供一个单独的项目,其中包含高级任务,并且仅显示这些任务的进度,而不是细节。

I would not recommend using the same Trac project for tracking development tasks and showing the customer progress. You want to be able to be candid with your development tickets, comments, etc. Customers can focus on the wrong things and misinterpret data you put in the tickets. I would recommend providing the customer with a separate project that contains high level tasks and only shows the progress on those tasks, not the nitty gritty.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文