你如何处理trac中的多个(重叠)项目?

时间:2023-01-16 16:52:53

We are using trac and are really satisfied with it. However, out of the box, trac is best suited for single-project environments only. I'd be interested to hear about the various approaches people take to make it work with multiple projects nevertheless and their experiences with them. Are there any plugins to recommend? Any patches, tweaks or whatnots? Are you maybe even using an entirely different bug-tracking system that offers all of trac's functionality plus multi-project support?

我们正在使用trac并且对它非常满意。但是,开箱即用,trac最适合单项目环境。我有兴趣了解人们采取的各种方法,以使其与多个项目一起工作,以及他们的经验。有推荐的插件吗?任何补丁,调整或诸如此类的东西?您是否甚至可以使用完全不同的错误跟踪系统来提供所有trac的功能以及多项目支持?

We recently started managing a second project ourselves which generally works okay but also has some drawbacks, especially where the two projects overlap because of common library code we wrote that is used in both projects. How do you handle this?

我们最近开始自己管理第二个项目,这通常可以正常工作但也有一些缺点,特别是在两个项目重叠的情况下,因为我们编写的公共库代码在两个项目中都使用。你怎么处理这个?

(I'll attach our own current approach as an answer to this post.)

(我将附上我们自己当前的方法作为这篇文章的答案。)

5 个解决方案

#1


10  

The approach we took is to create another trac environment for each new project and set up InterTrac links for simpler cross-referencing between the two. We also use a common base Trac.ini file via the [inherit] directive.

我们采用的方法是为每个新项目创建另一个trac环境,并设置InterTrac链接,以便在两者之间进行更简单的交叉引用。我们还通过[inherit]指令使用公共库Trac.ini文件。

Besides the ambiguity issues with shared code mentioned in the question, this has a couple of drawbacks that may or may not affect you, depending on the nature of your projects and your workflow:

除了问题中提到的共享代码的模糊性问题之外,这有一些可能会或可能不会影响您的缺点,具体取决于项目的性质和工作流程:

  • creating new projects is not an easy process; it can not be done via the browser interface
  • 创建新项目并非易事;它无法通过浏览器界面完成

  • ticket numbers are not unified: each new project environment starts fresh from #1 - at least with InterTrac aliases you can easily disambiguate them
  • 票号不统一:每个新项目环境从#1开始新鲜 - 至少使用InterTrac别名,您可以轻松消除它们的歧义

  • you have to take extra care when installing and configuring plugins so they will be installed and configured for all environments
  • 安装和配置插件时必须格外小心,以便为所有环境安装和配置插件

#2


2  

An alternative we have followed is to configure different projects as components.

我们遵循的另一种方法是将不同的项目配置为组件。

We share the SVN repository and the home wiki page, but we are not using the milestone features. If the project is big enough to have different modules (just one of them in our case) we configure each module as a component instead of the project.

我们共享SVN存储库和主页维基页面,但我们没有使用里程碑功能。如果项目足够大,可以有不同的模块(在我们的例子中只是其中一个),我们将每个模块配置为组件而不是项目。

#3


2  

About one year ago SimpleMultiProjectPlugin (support of multiple projects in one Trac instance) was implemented. It runs with >= Trac 0.12. It add a new ticket field 'project', extends the timeline and roadmap page with filters for multiple projects and its maps versions, components and milestones to projects.

大约一年前,实现了SimpleMultiProjectPlugin(在一个Trac实例中支持多个项目)。它以> = Trac 0.12运行。它添加了一个新的票证字段“项目”,扩展了时间线和路线图页面,其中包含多个项目的过滤器及其地图版本,组件和项目里程碑。

#4


1  

Same feeling here, Trac is really nice once configured properly. And it's easily hackable without touching any code. I only wish the wiki syntax were something more common, like markdown.

同样的感觉,一旦配置正确,Trac真的很棒。而且在不触及任何代码的情况下很容易被破解。我只希望维基语法更常见,比如降价。

We took the approach of using one Trac instance. We didn't need/want to use tight ACL and it has the benefit to keep all activity of developers in one place.

我们采用了一种Trac实例的方法。我们不需要/想要使用严格的ACL,它有利于将开发人员的所有活动集中在一个地方。

For separating projects, we're essentially assigning bugs to various milestones. Every project has a short-term and long-term milestone. The short-term is used for fixing actual bugs and the long-term for major releases.

对于分离项目,我们实际上是将错误分配给各个里程碑。每个项目都有一个短期和长期的里程碑。短期用于修复实际错误和长期主要版本。

Most of the other "new ticket" fields have been pruned, keeping the "type" and "severity" fields, which are the same on every project anyways.

大多数其他“新票”字段已被修剪,保留“类型”和“严重性”字段,这些字段在每个项目上都是相同的。

Reports are essentially limited to "My tickets", and the "Show Report" button has been tweaked to directly access your tickets.

报告基本上仅限于“我的门票”,并且“显示报告”按钮已经过调整以直接访问您的门票。

Workflow has also been adapted to add an intermediate "testing" status, so that QA can guarantee the fixing.

工作流程也适用于添加中间“测试”状态,以便QA可以保证修复。

Email configuration has been tweaked to not flood the mailboxes, so that developers actually read their assignments.

电子邮件配置已经过调整,不会泛滥邮箱,因此开发人员实际上会阅读他们的作业。

With that in place, we have a pretty efficient tool. It took some time to get it right, but it is easy to change things if you know how to hack around and lookup things on google.

有了这个,我们有一个非常有效的工具。花了一些时间才能做到正确,但如果你知道如何在Google上查找和查找内容,那么很容易改变。

#5


1  

The Apache Bloodhound project was started specifically to bring support for multiple projects to Trac (amongst other things). It is essentially a collection of plugins on top of Trac.

Apache Bloodhound项目专门为Trac(以及其他事项)提供多个项目支持。它本质上是Trac顶部的插件集合。

Bloodhound remains compatible with most popular Trac-Hacks and follows any changes to Trac itself. You can try the demo instance too.

Bloodhound仍然与大多数流行的Trac-Hacks兼容,并遵循Trac本身的任何变化。您也可以尝试演示实例。

#1


10  

The approach we took is to create another trac environment for each new project and set up InterTrac links for simpler cross-referencing between the two. We also use a common base Trac.ini file via the [inherit] directive.

我们采用的方法是为每个新项目创建另一个trac环境,并设置InterTrac链接,以便在两者之间进行更简单的交叉引用。我们还通过[inherit]指令使用公共库Trac.ini文件。

Besides the ambiguity issues with shared code mentioned in the question, this has a couple of drawbacks that may or may not affect you, depending on the nature of your projects and your workflow:

除了问题中提到的共享代码的模糊性问题之外,这有一些可能会或可能不会影响您的缺点,具体取决于项目的性质和工作流程:

  • creating new projects is not an easy process; it can not be done via the browser interface
  • 创建新项目并非易事;它无法通过浏览器界面完成

  • ticket numbers are not unified: each new project environment starts fresh from #1 - at least with InterTrac aliases you can easily disambiguate them
  • 票号不统一:每个新项目环境从#1开始新鲜 - 至少使用InterTrac别名,您可以轻松消除它们的歧义

  • you have to take extra care when installing and configuring plugins so they will be installed and configured for all environments
  • 安装和配置插件时必须格外小心,以便为所有环境安装和配置插件

#2


2  

An alternative we have followed is to configure different projects as components.

我们遵循的另一种方法是将不同的项目配置为组件。

We share the SVN repository and the home wiki page, but we are not using the milestone features. If the project is big enough to have different modules (just one of them in our case) we configure each module as a component instead of the project.

我们共享SVN存储库和主页维基页面,但我们没有使用里程碑功能。如果项目足够大,可以有不同的模块(在我们的例子中只是其中一个),我们将每个模块配置为组件而不是项目。

#3


2  

About one year ago SimpleMultiProjectPlugin (support of multiple projects in one Trac instance) was implemented. It runs with >= Trac 0.12. It add a new ticket field 'project', extends the timeline and roadmap page with filters for multiple projects and its maps versions, components and milestones to projects.

大约一年前,实现了SimpleMultiProjectPlugin(在一个Trac实例中支持多个项目)。它以> = Trac 0.12运行。它添加了一个新的票证字段“项目”,扩展了时间线和路线图页面,其中包含多个项目的过滤器及其地图版本,组件和项目里程碑。

#4


1  

Same feeling here, Trac is really nice once configured properly. And it's easily hackable without touching any code. I only wish the wiki syntax were something more common, like markdown.

同样的感觉,一旦配置正确,Trac真的很棒。而且在不触及任何代码的情况下很容易被破解。我只希望维基语法更常见,比如降价。

We took the approach of using one Trac instance. We didn't need/want to use tight ACL and it has the benefit to keep all activity of developers in one place.

我们采用了一种Trac实例的方法。我们不需要/想要使用严格的ACL,它有利于将开发人员的所有活动集中在一个地方。

For separating projects, we're essentially assigning bugs to various milestones. Every project has a short-term and long-term milestone. The short-term is used for fixing actual bugs and the long-term for major releases.

对于分离项目,我们实际上是将错误分配给各个里程碑。每个项目都有一个短期和长期的里程碑。短期用于修复实际错误和长期主要版本。

Most of the other "new ticket" fields have been pruned, keeping the "type" and "severity" fields, which are the same on every project anyways.

大多数其他“新票”字段已被修剪,保留“类型”和“严重性”字段,这些字段在每个项目上都是相同的。

Reports are essentially limited to "My tickets", and the "Show Report" button has been tweaked to directly access your tickets.

报告基本上仅限于“我的门票”,并且“显示报告”按钮已经过调整以直接访问您的门票。

Workflow has also been adapted to add an intermediate "testing" status, so that QA can guarantee the fixing.

工作流程也适用于添加中间“测试”状态,以便QA可以保证修复。

Email configuration has been tweaked to not flood the mailboxes, so that developers actually read their assignments.

电子邮件配置已经过调整,不会泛滥邮箱,因此开发人员实际上会阅读他们的作业。

With that in place, we have a pretty efficient tool. It took some time to get it right, but it is easy to change things if you know how to hack around and lookup things on google.

有了这个,我们有一个非常有效的工具。花了一些时间才能做到正确,但如果你知道如何在Google上查找和查找内容,那么很容易改变。

#5


1  

The Apache Bloodhound project was started specifically to bring support for multiple projects to Trac (amongst other things). It is essentially a collection of plugins on top of Trac.

Apache Bloodhound项目专门为Trac(以及其他事项)提供多个项目支持。它本质上是Trac顶部的插件集合。

Bloodhound remains compatible with most popular Trac-Hacks and follows any changes to Trac itself. You can try the demo instance too.

Bloodhound仍然与大多数流行的Trac-Hacks兼容,并遵循Trac本身的任何变化。您也可以尝试演示实例。