开源项目管理系统:trac

最近负责为公司搭建项目管理系统,有如下要求:

  • 支持BUG管理
  • 支持帐号管理
  • 支持WIKI
  • 支持任务分配
  • 支持中文

由于时间紧迫,感觉 redmine 界面更漂亮,相关资料也好找,而且帐号管理、中文支持方面的很不错,所以选择了 redmine 。其实心里面一直希望选的是基于 python 开发的系统,一方面自已喜欢 python ,另外团队中对 python 熟悉的人比较多,这样后面需要做二次开发时会容易一些。

trac 给人的第一感觉是太过于简单粗糙了。界面朴实简洁尚可接受、演示站点中文化不彻底、自已安装的时候较之 redmine 更是磕磕绊绊。=trac= 使用 Babel 进行多语言支持,当前的trac稳定版(1.0)存在中文支持方面的Bug:Wrong `NullTranslations` class in functional tests ,我在安装过程中就遇到了,正是这个问题才觉得先研究一下 Babel ,于是有了上一篇文章 《python应用国际化:Babel》, trac 下一版(1.1)对这个问题进行了修复。 网络上有很多人对 trac 夸赞有加,另外 trac 还有持续集成的插件: Bitten , 在对 Babel 有一定了解后,我终于鼓气勇气研究起 trac

安装最新版 trac

  • 使用学习 Babel 时建的虚拟环境
    workon LearnBabel
    
  • 从最新源代码安装 trac
    svn checkout http://svn.edgewall.org/repos/trac/trunk trac
    cd trac
    python ./setup.py install
    
  • 建一个项目看看效果
    cd ~/Examples/python
    trac-admin LearnTrac initenv
    tracd --port 8080 LearnTrac &
    xdg-open http://localhost:8080
    

感觉 trac 的中文化做得还不够彻底,但是关键的部位都已经中文化,不影响对整个系统的使用,有了 Babel 的经验之后对它进行中文化是很容易的,翻译后提交给 trac 开发人员,也算是回馈开源社区了。

配置用户

  • 创建帐号文件 LearnTrac/conf/users.digest
    user=admin
    realm=localhost
    password=admin
    file=LearnTrac/conf/users.digest
    echo ${user}:${realm}:$(printf "${user}:${realm}:${password}" | md5sum - | sed -e 's/\s\+-//') >> ${file}
    
  • 重新启动服务
    tracd -p 8080 --auth="LearnTrac,LearnTrac/conf/users.digest,localhost" LearnTrac
    

现在可以使用 admin 帐号登录了

帐号管理方面 trac 比较弱,只能通过 trac-admin 命令行工具来管理,小团队使用还是可以接受的,另外仅支持HTTP认证,配上HTTPS布署到外网也算是不错的选择。

配置权限

  • admin 用户赋予管理员权限
    trac-admin LearnTrac permission add admin TRAC_ADMIN
    

现在可以在WEB界面上看到“管理”标签页了,可以在WEB界面上对权限进行配置。