最近负责为公司搭建项目管理系统,有如下要求:
- 支持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界面上对权限进行配置。