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

时间:2022-03-23 23:11:55

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:

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

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

1)确保客户只能看到高级进度指示器。 2)提供有关故障单,测试和任务的每日摘要报告。

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

此外,我有兴趣知道是否有任何强烈推荐的插件,我会抱歉,我忘了安装。

7 个解决方案

#1


8  

1) high level progress indicator:

1)高水平进度指标:

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.

根据您与客户之间的关系,您可能希望授予他创建新票证的权限(权限TICKET_CREATE),这应该是可能的,而不会授予他对其他票证的读取权限(TICKET_VIEW和TICKET_MODIFY)。对不起,但我目前无法测试这是否真的有效,也许有人可以对此发表评论。

2) daily summary reports

2)每日总结报告

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为您提供所有可以想到的RSS源。应该可以从中生成每日报告,或者您只是告诉您的RSS客户端每天检查一次Feed。

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.

如果票证发生变化,Trac还可以通过邮件通知票证所有者,但它会立即发生,而不是每日摘要。您可以对门票发表评论,有时我们会像讨论板或邮件列表一样使用它们,在这种情况下,最好立即收到通知。

Other configuration

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

在我使用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

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:

每个故障单可能有一个所有者和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

(this code works in trac 0.11b)

(此代码适用于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)
  • 有你在cc的门票(没有那个查询就没有你得到的奇特的东西)

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.

查询可能看起来很可怕,但它们是对已存在的查询的简单修改。您不必破解trac源代码,Web界面允许您编辑查询。

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.

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

(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.)

(如果你使用eclipse,但不知道mylin,你应该看看它。你可以在没有任何配置的情况下测试它,因为它附带了大多数eclipse发行版,并且可以在没有trac的情况下独立工作。)

#2


17  

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.

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

#3


5  

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.

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

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.

如果Trac的默认设置没有很好地表示您自己的工作流程,请查看Trac为您提供的自定义故障单工作流程。这使我们能够在工作流程中添加代码审查和集成测试步骤。

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.

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

#4


3  

@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.

@Dave Dunkin是对的。使用Trac供内部使用,并使用Basecamp等系统为您的客户提供项目中正在发生的事情的高级概述。

#5


3  

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.

如果是库存安装,则数据库只是一个SQLite3,因此您可以轻松编写脚本来获取“安全”信息,例如票证数量,或者为什么不是其中一个报告。这样,只要票证名称合适,您就可以*讨论。还提供修订版,里程碑,wikipages,标签(如果您使用该插件)。

#6


3  

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.

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

#7


3  

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:

基于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.

    创建自定义工作流程非常简单。 GraphViz的使用对于沟通状态和行动是一个巨大的帮助。如果您需要更复杂的状态交互,那么进一步扩展内置功能的工作流插件(如AdvancedTicketWorkflowPlugin)并不难做到。

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

    对于自定义报告,您可以编写带有命名参数的SQL查询,然后从Wiki页面链接到这些参数:

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

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

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.

#1


8  

1) high level progress indicator:

1)高水平进度指标:

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.

根据您与客户之间的关系,您可能希望授予他创建新票证的权限(权限TICKET_CREATE),这应该是可能的,而不会授予他对其他票证的读取权限(TICKET_VIEW和TICKET_MODIFY)。对不起,但我目前无法测试这是否真的有效,也许有人可以对此发表评论。

2) daily summary reports

2)每日总结报告

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为您提供所有可以想到的RSS源。应该可以从中生成每日报告,或者您只是告诉您的RSS客户端每天检查一次Feed。

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.

如果票证发生变化,Trac还可以通过邮件通知票证所有者,但它会立即发生,而不是每日摘要。您可以对门票发表评论,有时我们会像讨论板或邮件列表一样使用它们,在这种情况下,最好立即收到通知。

Other configuration

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

在我使用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

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:

每个故障单可能有一个所有者和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

(this code works in trac 0.11b)

(此代码适用于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)
  • 有你在cc的门票(没有那个查询就没有你得到的奇特的东西)

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.

查询可能看起来很可怕,但它们是对已存在的查询的简单修改。您不必破解trac源代码,Web界面允许您编辑查询。

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.

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

(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.)

(如果你使用eclipse,但不知道mylin,你应该看看它。你可以在没有任何配置的情况下测试它,因为它附带了大多数eclipse发行版,并且可以在没有trac的情况下独立工作。)

#2


17  

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.

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

#3


5  

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.

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

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.

如果Trac的默认设置没有很好地表示您自己的工作流程,请查看Trac为您提供的自定义故障单工作流程。这使我们能够在工作流程中添加代码审查和集成测试步骤。

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.

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

#4


3  

@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.

@Dave Dunkin是对的。使用Trac供内部使用,并使用Basecamp等系统为您的客户提供项目中正在发生的事情的高级概述。

#5


3  

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.

如果是库存安装,则数据库只是一个SQLite3,因此您可以轻松编写脚本来获取“安全”信息,例如票证数量,或者为什么不是其中一个报告。这样,只要票证名称合适,您就可以*讨论。还提供修订版,里程碑,wikipages,标签(如果您使用该插件)。

#6


3  

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.

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

#7


3  

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:

基于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.

    创建自定义工作流程非常简单。 GraphViz的使用对于沟通状态和行动是一个巨大的帮助。如果您需要更复杂的状态交互,那么进一步扩展内置功能的工作流插件(如AdvancedTicketWorkflowPlugin)并不难做到。

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

    对于自定义报告,您可以编写带有命名参数的SQL查询,然后从Wiki页面链接到这些参数:

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

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

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.

相关文章