代码之家  ›  专栏  ›  技术社区  ›  torial

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

  •  16
  • torial  · 技术社区  · 16 年前

    我在Subversion实现的基础上安装了一个Trac项目(这要归功于Web派系的控制面板),但现在我有配置工作要做。考虑到这一点,有吗 容易的 在TRAC中执行以下操作的方法:

    1)确保客户只能看到高水平的进度指标。
    2)提供每日的票据、测试和任务总结报告。

    另外,我想知道是否有 高度地 推荐的插件,我会很抱歉我忘记安装。

    7 回复  |  直到 15 年前
        1
  •  8
  •   Lena Schimmel Mani kiran    15 年前

    1)高级进度指标:

    “路线图”选项卡为您提供了一种高级进度指示器。它列出所有里程碑,并为每个里程碑显示:

    • 里程碑标题
    • 简短描述
    • 里程碑的到期日期
    • 到那时还有多少时间(或者你落后了多长时间)
    • 有多少票被分配给这个里程碑,有多少票已经关闭,被视为一个良好的绿色进度条。这条线是根据每一张票的重量相同的假设而画的,这可能会引起误解。

    您可以以客户只能访问此视图的方式限制您的权限。

    根据您与客户之间的关系,您可能希望授予他创建新票据的能力(权限票据创建),这应该可以在不授予他对其他票据的读取权限(票据查看和票据修改)的情况下进行。抱歉,但我目前无法测试这是否真的有效,也许有人可以对此发表评论。

    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 '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中工作)

    这是我最喜欢的售票报告。它按三个等级买票:

    • 您拥有并接受的门票
    • 分配给您的票,但您尚未接受
    • 你在CC中的票(如果没有这个查询,你不会得到的花哨的东西)

    这些查询看起来可能很吓人,但它们只是对已经存在的查询的简单修改。您不必破解trac源代码,WebInterface允许您编辑查询。

    插件

    我推荐 XML RPC plugin 如果你和Eclipse一起工作。它能够与 Mylin . (我认为即使没有插件,基本集成也能工作),因此您的开发人员可以在Eclipse中执行许多任务,而无需切换到TracWebInterface。

    (如果你用Eclipse,但不认识Mylin,你应该看看它。您可以在没有任何配置的情况下对其进行测试,因为它与大多数Eclipse发行版一起提供,并且可以在没有Trac的情况下独立工作。)

        2
  •  17
  •   Dave Dunkin    16 年前

    我不建议使用同一个TRAC项目来跟踪开发任务和显示客户进度。您希望能够坦诚地对待您的开发通知单、评论等。客户可能会将注意力集中在错误的事情上,并误解您在通知单中输入的数据。我建议为客户提供一个单独的项目,其中包含高级别的任务,并且只显示这些任务的进度,而不是实际的进度。

        3
  •  5
  •   Jon Topper    16 年前

    至于其他插件,我们安装tomacro、xmlrpcplugin、wysiwygplugin和tracredit。尤其是,Wysiwyg插件确实有助于鼓励较少的技术人员在wiki中维护自己的文档,您甚至可以在保留格式的同时从MS Word中获取C&P,这有助于。

    如果您自己的工作流不能很好地由trac的默认值表示,请查看trac提供的自定义票据工作流内容。这允许我们向工作流添加代码审查和集成测试步骤。

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

        4
  •  3
  •   ceejayoz    16 年前

    @戴夫·邓肯是对的。使用trac进行内部使用,并使用类似的系统 Basecamp 向您的客户提供项目进展的高级概述。

        5
  •  3
  •   Anders Eurenius    16 年前

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

        6
  •  3
  •   Oliver Giesen    15 年前

    您可能会撤消除 ROADMAP_VIEW 来自匿名用户,但这可能有点 高级的,不是吗?当前不支持在单个票据或注释级别进行访问控制。见 http://trac.edgewall.org/wiki/TracPermissions 有关TRAC权限的详细信息。

        7
  •  3
  •   Bob Nadler    15 年前

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

    基于对TRAC的经验:

    1. 创建自定义 workflow 是 挺直的。使用 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.