发布 EasyTrac 0.1.0.11b1

我曾经写过几篇关于 Trac 的文章:

在这个过程中,我深感 Trac 实际部署起来使用很难,就萌发了制作一个安装工具,可以做到在极短时间内部署 Trac 的目的。

现在,我宣布 EasyTrac 完成了这个良好的愿望。

EasyTrac 有如下特点:

  • 简单
  • 使用 Trac 项目管理
  • 支持 Subversion 访问,包括 SVN 和 HTTP 协议
  • 集中式管理 Trac 项目 和 SVN 仓库
  • 零配置,无须手工修改配置文件

更多内容请参考 EasyTrac 指南

EasyTrac 不支持 SSL。

这里下载 EasyTrac,目前最新版本是 EasyTrac-0.1.0.11b1_Win32

如果您有任何问题,请与我联系,我将尽可能帮助你。

Zealic @ 2008-02-19

View Comments |
Categories: tech.dev
Tags:

EasyTrac 指南

EasyTrac 指南

1) 简介

TracEdgewall 开发的 Issue Tracking System,用于项目管理,但是由于 Trac 部署起来较为复杂,本着方便快捷的精神,Zealic 根据自己部署 Trac 的经验,制作出 EasyTrac 供需要者使用。
目前 EasyTrac 仅支持在 Windows 中部署。

2) 系统需求

Trac 基于 Python 开发,并且依赖部分第三方组件,EasyTrac 的默认的配置为 Apache + Trac + Subversion + SQLite,仅支持 Trac 0.11b1 以后的版本。

下图说明 Trac 的依赖关系:
trac-dependencies-map

图标释义 :

  • 星星:独立组件。
  • 灯泡:依赖其他独立组件的组件。
  • 魔法棒:Apache 模块。
  • 蓝线:依赖 Subversion。
  • 橙线:依赖 Python。
  • 紫线:依赖 Apache。

由于 Python 的安装包过大,EasyTrac 默认不会整合 Python 到安装包中,但是会检查 Python 是否已经安装到系统中;因此,在安装 Trac 之前,请确保您的系统中已经安装 Python 2.5。

下载 最新版本的 EasyTrac 安装程序

3) 安装

EasyTrac 假设您的系统中仅安装 Python 2.5,没有安装任何 Trac 依赖的组件,因此使用 EasyTrac 将可以非常方便部署 Trac 到您的系统中。

EasyTrac 将安装以下组件到您的系统中:

以上所有组件均依赖于 Python 2.5,且只依赖于 Python 2.5,任何非 2.5 版本均不兼容,如 Python 2.5.1 也不兼容,请确保您系统中安装的 Python 为 2.5 版本。

安装时有两种访问模式可以设置:

还可勾选 “Add custom DNS mapping to /etc/hosts” 选项,将 DNS 映射到本地,该选项适合仅个人使用。

为简单起见,EasyTrac 将会注册 Apache 及 Subversion 为 Windows 服务,Apache 的服务名为 “EasyTrac.Apache”,Subversion 的服务名为“EasyTrac.Subversion”;如果您的系统中已经安装 Subversion 或 Apache,推荐您在安装 EasyTrac 前删除 Subversion 或 Apache,或者在安装程序中配置 Subversion 或 Apache 使用其他端口,以避免可能引起的冲突。

4) 使用

安装完成后,您可以在开始菜单中使用 “Create Project”创建项目,该脚本会为您建立对应的 Subversion 仓库和 Trac 站点,分别位于安装目录的 $(EasyTrac)\Data\SVN$(EasyTrac)\Data\Trac 中。

访问新创建的项目的部分内容,需要访问权限,在 EasyTrac 中,项目使用公用的权限管理文件,为文件 $(EasyTrac)\Authz\SVN.acp 以及 $(EasyTrac)\Authz\SVN.acp 。每个 Trac 站点使用独立的权限管理,这里的只有用户为共享的。

EasyTrac 默认的用户:


User : admin
Password : admin

** **EasyTrac 默认赋予 admin 用户读写所有SVN仓库的权限。并赋予 admin 用户在 trac 项目的 TRAC_ADMIN 权限。

卸载程序不会删除您所创建的项目,但是如果您要删除 EasyTrac,请做好项目数据备份。

4) 结束语

Trac 不仅可以用于软件开发中的项目管理,也可以用于个人自我改进的管理;EasyTrac 本着共享的精神,期望能够让 Trac 能为普通计算机用户所使用,而不仅限于软件开发;同时 EasyTrac 由于遵循简单部署的原则,快速的部署 Trac 到您的系统中,从而节省时间。

注意:当前 Trac 的版本为 0.11b1,并不推荐您直接在生产环境中使用。

版权:EasyTrac 遵循 Apache License 2.0,其中包含的任何组件属于其所有者,如在商业环境中使用,请您阅读并了解包含的组件所使用的授权协议,如因违反协议所引起的任何法律纠纷,我们概不为其负责。
欢迎您提出任何反馈意见。

5) 关于 EasyTrac

EasyTrac 基于 Inno Setup 制作,感谢作者为我们做出如此优良的软件,如果您对 EasyTrac 的安装脚本感兴趣,请访问我们的源代码仓库
本文图片使用 FreeMind 制作,一个开源的思维导图工具。

6) 鸣谢

翻译:Tracy

Zealic @ 2008-02-19

View Comments |
Categories: tech.dev
Tags:

Understand Issue Tracking System

Issue Tracking System (ITS)是供软件开发所使用的系统,允许在软件开发中和追踪每个问题进程,直到问题最终被解决。在ITS中,一个"问题",可能是Bug,可能是一个功能,也可能是一个测试。这些都可以被 ITS 管理,拥有者或者其它的什么管理单元所跟踪。

ITS 通常给用户提供了一条报告"问题"的通径,并且跟踪它的解决过程,了解造成"问题"的原因。它还允许系统管理者定制跟踪程序,避免问题解决部分的一些多余的文件造成时间的延误。许多行业的企业都使用ITS软件,包括软件开发商、生产商、IT帮助桌面和其它的服务提供者。

严格的讲,ITS 是 SCM 中的变更控制和过程控制理论的实现者,再加上 VCS,可以构成管理一个软件生产过程的基本模型。

现在大多数 ITS 都提供与 VCS 集成的功能,可以很方便的了解到一个"问题"所经历的源代码变化,并对此进行数据统计,改进工作计划或协调任务。

由于软件是无形的存在,人们在很大程度上难以掌握和估计,因此经常会发生对于低估某个项目的开发周期,最终造成项目的延迟甚至流产;而由于 ITS 的 Timeline 能在很大程序上直观的了解到项目的进度,以某个里程碑为推进目标;无论是开发者的士气还是管理者的焦虑,都能得到够好的效果。

并且,由于 ITS 几乎全盘接管项目的开发过程,因此只需要很少的文档,新成员或者项目维护者就能够了解到整个项目的历史、功能以及未决问题,从宏观上来说,非常有利。

此外,对于需求变化,使用 ITS 也能够做到较为迅速的反应和记录;我可以毫不顾忌的说,ITS、VCS 是实施敏捷所必需的工具,缺少任何一项,都不能称之为完整的敏捷。无论是快速迭代开发或者稳健的 TDD,ITS 都将是不可或缺的成员。

真正实施 ITS 需要的是团队成员的配合,如果仅仅是拿来做摆设,或者作为一种事后补充,几乎上述所有优点将丧失殆尽,ITS 的实施也就毫无意义。

最后介绍一些著名的 ITS :

  • Bugzilla
    作为一个老牌到牙都不掉的 ITS,无论是功能、社区支持还是与第三方工具协作方面,Bugzilla 都是极为稳定和高效的。
    Mozilla 出品,Free。

  • FogBugz
    Joel on Software 开发,具体不太了解,不过作为一个获得 JOLT 大奖的产品,想来不会太差。付费产品。

  • JIRA
    Australian atlassian 公司的出品的 JIRA 是一个基于 J2EE 成熟的 ITS,曾经荣获 JOLT 大奖。全球很多大型公司和组织都在使用 JIRA 管理企业的项目;JIRA 是一个商业程序。

  • Microsoft TFS
    Microsft 在 Visual Studio 2005 提供对应 TFS(Team Foundition System) 同样也是一个 ITS,并且集成源代码管理功能,不过由于 TFS 配置管理及硬件需求过高,维护起来也颇为麻烦,在实际中少见使用。也许这是一个遵循微软三版定律的软件。

  • Edgewall Trac
    Trac 是一个基于 Web 的轻量级 ITS,个人以为它比较适合精英类型的团队使用,人数考量应在 3-6 人之间,由于使用 SQLite 及 PostageSQL 作为数据后端,Trac 无法承载更大型的项目管理工作。Trac 是一个开源的产品,有稳定持续的维护者和开发计划。

本文遵循 CC创作共享许可协议,所有内容仅代表个人观点,但不包括第三方内容。

Zealic @ 2008-01-22

View Comments |
Categories: tech
Tags:

Trac 手记(三) : 应用 Trac

1) 基本概念

Trac 中的单元:

  • Milestone(里程碑) :这个好理解,不做解释。
  • Version(版本) :项目的版本。
  • Component(组件):项目中的组件。
  • Ticket : 这个有人翻译为传票,有人翻译为任务单,我都觉得不妥,因此不做翻译。
  • Ticket type :Ticket 的类型,默认有 defect(缺陷)、enhancement(改进)、task(任务)。
  • Priority(优先级) :Ticket 的优先级。
  • Resolutions(解决方式) :Ticket 的解决方式。
  • Severity(严重程度):Ticket 的严重程度。

关系图如下:

由于 Trac 的灵活性,我们使用 Trac 来进行项目管理时,有很高的自由度,上述单元皆是可自定义的,比如 Ticket 默认有如下类型:

  1. Defect
  2. Enhancement
  3. Task

偷懒的人一般就默认使用这三个类型,如果是项目要求高一些,可以定义一些扩展的 Ticket 类型,如 PatchTranslateTest,当然这只是举例说明,还是需要根据项目的具体需求来进行定制。

大多使用 Trac 进行项目管理都有一个中心,某些团队以 Milestone 为中心,有些以 Version 为中心,有些以 Component 为中心,最后就是以 Ticket 为中心的,其松散程度是逐步增加的。

Ticket 是 Trac 中最核心的单元,整个 Trac 都是围绕 Ticket 进行的,在应用 Trac 时,Ticket 可以让团队中的人分工更为明确,比如市场调查可以只负责 Create Ticket、Edit wiki,开发人员、测试人员根据自己的能力各自完成自己所属的 Ticket,最后以完成某个中心为终结;通过里程碑,管理者也可以更快,更直接的了解到项目进度从而制定相应计划;通过 Wiki ,新进成员也可以更快速的融入项目。

不过这些都是以真正的应用 Trac 到项目的开发、管理、测试为前提。

很多应用 Trac 进行管理的人都说:现在最兴奋的事,不是完成一个一个的功能,是关闭一个又一个的 Ticket,看着里程碑逐渐接近 100%,工作热情也特别高涨。

2) 权限管理

Trac 中的权限划分的很为细致,并且有用户组的概念,但是 Trac 并不包含用户数据,通常都是与 Apache 集成权限认证来获得用户信息。

当创建了一个 Trac 环境时,默认权限分布如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
User           Action
------------------------------
anonymous      BROWSER_VIEW
anonymous      CHANGESET_VIEW
anonymous      FILE_VIEW
anonymous      LOG_VIEW
anonymous      MILESTONE_VIEW
anonymous      REPORT_SQL_VIEW
anonymous      REPORT_VIEW
anonymous      ROADMAP_VIEW
anonymous      SEARCH_VIEW
anonymous      TICKET_VIEW
anonymous      TIMELINE_VIEW
anonymous      WIKI_VIEW
authenticated  TICKET_CREATE
authenticated  TICKET_MODIFY
authenticated  WIKI_CREATE
authenticated  WIKI_MODIFY

anonymous 代表匿名用户的权限,authenticated 代表登录用户所拥有的权限,权限信息都很易懂,就不做解释;默认配置下,这是较为安全的,但是这样我们无法管理这个任务仓库,必须先分配一个管理员。

1
D:\Python\Scripts\trac-admin D:\ALM\Trac\MyProject permission add zealic TRAC_ADMIN

TRAC_ADMIN 是最高级别权限,有了这个权限,登录名为 zealic 的用户就可以管理这个项目的所有信息了。

登录 Trac 以后,在管理页面中 Trac 提供了 Permissions 选项,可以以可视化的方式更改权限信息。

3) 集成

有了趁手的工具,我们当然愿意这个工具与旧有工具完美结合,以产生更高的价值。

好比 .Net 下的 TDD 拥有了 TestDriven.Net,提高的生产力可不是几句话就能够形容的,我也极度期盼 .Net 能够提供与 Trac 集成的插件。

相比之下,我极羡慕 eclipse 3.3 中集成的 Mylyn,可以很方便的与 Bugzilla,JIRA,Trac 集成;好吧,我承认,我希望有“逸士”能够造一个 NMylyn 或者 Mylyn.Net 供我们使用。

Trac 通过 xml-rpc 提供交互接口,也许某天,我会来做这个“逸士”;不过,似乎很难。

4) 推荐资料

这里 是台湾某教师为学生制作的 Trac PPT 教程,较浅显易懂,各位可以参考一下。

这里 是台湾的某人写的一系列关于 Trac 的文章,可以参考一下。

5) 结束语

如果您所在的公司仍然处于项目管理混乱,失败率高的情况,我极力推荐您使用 Trac、Bugzilla 等 ITS 进行管理。

本人才疏学浅,加之时间仓促,Trac 只能介绍到这里,如果您还有什么不懂得地方,请联系我,我将尽力帮助你。
过段时间我会放出自己基于 Trac0.11b1 制作的 EasyTrac,简化 Trac 的部署,供需要的人使用。

**警告 **: 本文所使用的是 Trac 0.11b1 版,不保证对文章内容对其他版本适用。
同样也不推荐你在实际环境部署使用该beta版,如出现任何问题,概与本人无关。
如果你存在任何有关问题,请 mail 我 : rszealic{at}gmail.com

版权 : 保留对本文的一切修改、发布等权力。任何人想要转载本文部分或全部内容时,必须保留包括作者 Zealic、出处、版权,共三项信息。对本文的参考引用,则不受限制。

参考)

Trac Usage:

http://wiki.woodpecker.org.cn/moin/TracUsage

Trac 中的 Ticket系统:
http://www.cnblogs.com/HanN1984/archive/2007/08/09/840575.html

Bugzilla 培训手册--操作说明:
http://liuyu.blog.51cto.com/183345/49829

Why Programs Fail:系统化调试指南:
http://book.csdn.net/bookfiles/306/

其他:
http://www.cnblogs.com/HanN1984/archive/2007/08/09/840575.html
http://tech.idv2.com/2007/02/11/trac-install-windows/

Zealic @ 2008-01-13

View Comments |
Categories: tech
Tags:

Trac 手记(二) : 安全配置

上篇文章完成了使 Subversion 和 Trac 接入 Apache 的方法,如果是个人使用 Trac 的话,只需要再配下 trac 的账户就可以使用。

但是如果是团队使用的话,无论是本地局域网或者公共网络,直接访问 SVN 仓库或 Trac 都是不安全的,如果所处的网络处于被监控状态,任何提交的信息都可能被捕获到,这就是为什么有 HTTPS 的原因。

因此,在进一步深入 Trac 之前,我们必须先谈谈配置安全的、基于 Apache 的 Subversion 和 Trac 构建的ALM (Application Lifecycle Management) 系统。

在开始之前,如果您没有看过我的上一篇文章 :Trac 手记(一) : Windows 下安装 Trac ,请务必先看一下。

1) 配置基于 SSL 的 Apache

众所周知,HTTP 所有的内容基本都是明文传输的,这就为病毒、盗号等网络黑暗提供了方便。许多人也许都见过,在登录到某个网站时浏览器总会有以下提示:

就是提醒用户进入了 HTTPS 安全连接,这种情况下通常信息不会泄漏。

本节的目标就是配置 Apache 使用 SSL,使得在实施 Trac 和 SVN 时,避免别有用心者通过捕获数据包来获得不属于自己的账户,从而实施破坏。

1.1) 安装 Apache with OpenSSL

下载集成 OpenSSL 的 Apache 并安装。

1.2) 创建安全证书

在 D:Apachebin 目录运行以下命令:

按照提示填写内容,该命令生成一个未签名的证书:包含 server.csr、 privkey.pem 文件。

openssl req -config ../conf/openssl.cnf -new -out server.csr

然后生成私匙:server.key

openssl rsa -in privkey.pem -out server.key

对证书进行签名:

openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 9999

最后删除 .rnd、privkey.pem,保存 server.csr 到安全的地方或直接删除。
把剩下的 server.crt、server.key 复制到 D:Apacheconf 目录。

1.3) 配置Apache SSL

复制 D:\Apache\conf\extra\httpd-ssl.confD:\Apache\conf\ssl.conf

修改:SSLMutex "file:D:/Apache/logs/ssl_mutex"SSLMutex default

修改:<VirtualHost _default_:443> 为:<VirtualHost *:443>

根据需要,可能还需要修改 : SSLCertificateFile 和 SSLCertificateKeyFile,分别代表上面描述的 server.crt 和 server.key 的路径。
修改 httpd.conf 加载以 SSL 模块 :

LoadModule ssl_module modules/mod_ssl.so

在 httpd.conf 的末尾加上一句 :

Include "conf/ssl.conf"

启动 Apache,如果启动成功,访问页面无问题,则代表成功。

值得注意的问题 :
在配置 Apache 的过程中,我碰到了总是无法启动 Apache 的问题,经过检查发现是 QQ 占用 443 端口。
所以,如果你在配置过程中发现 Apache 无法启动,用 netstat 命令或其它工具(IceSword、TcpViewer等)检查下端口占用状态,如果 443 被 QQ 之类的软件的占用掉,就用华南虎头铡把它喀嚓掉。

2) Subversion 安全配置

类似上节所述,更改 SVN 的访问控制如下:

1
2
3
4
5
6
7
8
9
10
11
12
<Location /svn/>
  DAV svn
  SVNParentPath "G:\ALM\SVN"
  SVNListParentPath On
  AuthzSVNAccessFile "G:\ALM\Authz\SVN.acp"

  SSLRequireSSL
  AuthType Basic
  AuthName "Authorization realm"
  AuthUserFile "G:\ALM\Authz\Users.acp"
  Require valid-user
</Location>

上面配置中的 SVN.acp 文件格式和 Subversion 配置的 /repos/conf/authz 文件格式相同,用以管理用户分组和访问权限。

而 Users.acp 则是由 D:Apachebinhtpasswd.exe 创建的,供 Trac 和SVN 使用,实现用户间的互通。

由此,整个 SVN 库的访问都必须通过 https ,具有极高的安全性。

3) Trac 安全配置

Trac 已经为我们准备好验证用户所需的大多东西,我们只需要配置登录机制即可。

3.1) 安全配置

1
2
3
4
5
6
<Location /trac/login>
    AuthType Basic
    AuthName "Trac login"
    AuthUserFile G:\ALM\Authz\Users.acp
    Require valid-user
</Location>

配置和 SVN 相同的帐号。

3.2) 使用 HTTPS 验证登录

明文 HTTP 协议易泄密,因此还需要为登录的 URL 设定为 HTTPS 协议登录。

取消 httpd.conf 中的以下模块的注释,以启用重定向:

LoadModule rewrite_module modules/mod_rewrite.so

在 httpd.conf 末尾加入以下代码,用以将登录重定向到 HTTPS:

1
2
3
RewriteEngine On  
RewriteCond %{SERVER_PORT} !^443$  
RewriteRule ^(/trac/login)$ https://%{SERVER_NAME}$1 [L,R]

将 ssl.conf 的以下代码:

1
</VirtualHost>

修改为:

1
2
3
4
RewriteEngine On
RewriteCond %{SERVER_PORT} !^8080$
RewriteRule !^(/trac/login)$ http://%{SERVER_NAME}:8080$1 [L,R]
</VirtualHost>

上述配置的作用为,当请求登录 trac 时,重定向到 HTTPS,对于任何非登录 trac 的url,重定向为 HTTP。

4) 结束语

至此,该 Trac 系统基本安装完成,不过目前依然不够,在下一节,我会介绍 Trac 系统中的一些基本概念以及如何进行Trac 的权限管理。

**警告 **: 本文所使用的是 Trac 0.11b1 版,不保证对文章内容对其他版本适用。
同样也不推荐你在实际环境部署使用该beta版,如出现任何问题,概与本人无关。
如果你存在任何有关问题,请 mail 我 : rszealic{at}gmail.com

版权 : 保留对本文的一切修改、发布等权力。任何人想要转载本文部分或全部内容时,必须保留包括作者 Zealic、出处、版权,共三项信息。对本文的参考引用,则不受限制。

5) 参考

Zealic @ 2008-01-06

View Comments |
Categories: tech
Tags:

搬家:新的起点

没有任何原因,大概是新年想换个节点吧。
我决定不再使用这个空间,可能这里都不会再更新了。
感谢你一直以来的关注。
原本我有两个主要空间:
一个是博客园的技术博客:http://zealic.cnblogs.com
主要分享一些技术心得和学习经验。
另一个就是本博,主要就是写点心情啥的,还是很隐晦的手法来写的。
这次决定搬家是因为新年的缘故,也是想放开心灵,以后写东西会稍微正常点的,也许还会记日记哦。
还有一个原因可能就是对 TX 不太放心吧,呵呵,至少 Microsoft 不会私自取走你的隐私。
请到我的新家,以后就会在这个博客里更新包括技术和生活方面的内容;当然,博客园也会同步更新。
http://zealic.spaces.live.com
Thank you.
新年快乐,爱你的 Zealic。

Zealic # QZone @ 2007-12-13

View Comments |
Categories: @default
Tags: