ZC Buildout配方,用于安装和配置Trac服务器。
项目描述
此配方将帮助您通过Buildout设置一个功能齐全的Trac实例。
它允许您自动化多个Trac实例的创建和管理。它为trac.ini配置文件提供合理的默认值,并添加插件以增加Trac功能。此配方还负责实例升级、Wiki文档更新和源代码仓库同步。
它目前仅支持Trac 0.12.x,适用于所有pbp.recipe.trac v0.4.x的未来版本。
此软件包最初是Tarek Ziadé撰写的《Expert Python Programming》一书的一部分。
详细文档
支持选项
此配方支持以下选项
project-name(必需)
Trac 实例名称。此名称也将用作 smtp-from-name 选项的默认值。默认值:我的项目。
项目描述
项目的描述。此描述也将用作页眉标志的替代文本。
项目网址
此网址将用作页眉标志上的链接。默认值:http://example.com。
repos(必需)
此参数列出了由您的 Trac 实例管理的所有代码仓库。语法必须遵循以下方案:名称 | 类型 | 路径 | URL。名称必须是字母数字小写字符串。支持的类型值有:svn 用于 Subversion,hg 用于 Mercurial。路径必须指向文件系统中您的代码仓库位置。URL 不是必需的。您可以添加多个仓库,每行一个。示例
repos = repo1 | svn | /data/svn/my_reposo | http://my-domain.net/subversion/repo1 repo2 | svn | ${buildout:directory}/repos/another_reposo | svn://example.com/repo2 repo3 | hg | /data/hg/reposo2 | https://user@stuff.com/project
default-repo
如果设置了仓库名称,这将创建从默认仓库到指定仓库的别名。示例
default-repo = repo2
repos-sync
此选项处理仓库与 Trac 的同步方式。
目前它仅支持 按请求同步。如果您将此选项的值设置为 request,这将设置此方法。这是默认值。
将来,此选项将接受 hook 作为值,以设置 显式同步。
此选项仅考虑 Subversion 仓库。
force-instance-upgrade
如果设置为 True,则即使 Trac 认为不需要,也会在当前实例上触发内部 Trac 升级过程。默认值:False。
force-repos-resync
如果设置为 True,则强制 Trac 与所有仓库重新同步。默认值:False。
wiki-doc-upgrade
如果设置为 True,则将升级当前 Trac 实例中嵌入的默认维基页面。如 Trac 文档所述,这将不会删除之前作为 Trac 发布部分存在的已弃用维基页面。默认值:False。
remove-examples
如果设置为 False,则不会删除 Trac 在创建全新实例时添加的默认里程碑和组件。默认值:True。
里程碑
创建的所有自定义里程碑列表。您可以添加多个自定义参数,每行一个。示例
milestones = 0.1 0.2 1.0 Future Undecided
组件
可以附加 Trac 工作票的组件列表。语法必须遵循 组件名称 | 组件所有者 方案,但允许没有所有者的组件。示例
components = The application itself | kevin Project web site Build tools | cecile
权限
要设置的权限列表。支持用户和组。示例
permissions = cecile | REPORT_ADMIN kevin | PERMISSION_ADMIN MILESTONE_ADMIN REPORT_ADMIN anonymous | STATS_VIEW authenticated | REPORT_MODIFY MILESTONE_MODIFY可以在 Trac 的维基上找到 权限列表。根据 Trac 的约定,所有权限都会由配方自动转换为大写。
header-logo
替换每个页面上默认 Trac 标志的标志位置。文件将由配方复制到您的 Trac 实例的 htdocs 目录。
footer-message
在 Trac 显示的每个页面的右下角显示的文本。此处可以使用 HTML。默认值 此 Trac 实例由 <a href="http://pypi.python.org/pypi/pbp.recipe.trac">pbp.recipe.trac</a>.。
smtp-always-bcc
始终发送通知的电子邮件地址(不公开显示,Bcc:)。
smtp-always-cc
始终发送通知的电子邮件地址(多个),所有收件人都可以看到(抄送)。
smtp-default-domain
默认主机/域名,用于附加未指定一个的地址。
smtp-enabled
启用SMTP(电子邮件)通知。
smtp-from
用于通知电子邮件的发送者地址。
smtp-from-name
用于通知电子邮件的发送者名称。默认值:project-name 选项值。
smtp-password
SMTP服务器的密码。
smtp-port
用于电子邮件通知的SMTP服务器端口。
smtp-replyto
用于通知电子邮件的回复地址。
smtp-server
用于电子邮件通知的SMTP服务器主机名。
smtp-subject-prefix
用于附加到通知电子邮件主题行前面的文本。如果未定义设置,则使用 project-name 的值作为前缀。如果不需要前缀,则指定空选项将禁用它。
smtp-user
SMTP服务器的用户名。
additional-menu-items
这将使用 NavAdd插件 在Trac的顶部导航工具栏中添加新的菜单项。语法必须遵循以下方案:标题 | Url。您可以根据以下示例指定多个菜单项
additional-menu-items = Buildbot | https://#:9080/ Demo instance | http://trac.edgewall.org/demo-0.13
time-tracking-plugin
如果设置为 enabled,则激活 估算和时间跟踪插件。默认值:disabled。
stats-plugin
如果设置为 enabled,则激活 TracStats插件。默认值:disabled。
trac-ini-additional
如果Trac参数不是本机支持此配方,您可以使用此功能添加自己的。语法必须遵循以下方案:Section | Parameter | Value。您可以按行添加多个自定义参数。示例
trac-ini-additional = attachment | max_size | 52428800 notification | always_notify_owner | true logging | log_level | DEBUG此选项在写入由此配方生成的最终 trac.ini 之前应用。因此,感谢 trac-ini-additional,您始终有修复 trac.ini 的方法,即使此配方破坏了它。
有关所有 trac.ini 参数的更多信息,请参阅: http://trac.edgewall.org/wiki/TracIni
示例用法
我们将首先创建一个使用该配方的buildout
>>> write('buildout.cfg', ... """ ... [buildout] ... parts = trac ... index = http://pypi.python.org/simple ... ... [trac] ... recipe = pbp.recipe.trac ... project-name = My project ... project-url = http://example.com ... repos = repo1 | hg | sqlite:${buildout:directory}/var/svn | http://my-domain.net/subversion/repo1 ... default-repo = repo1 ... header-logo = ${buildout:directory}/my_logo ... smtp-server = localhost ... smtp-port = 25 ... smtp-from = tarek@ziade.org ... smtp-replyto = tarek@ziade.org ... milestones = 0.1 ... 0.2 ... 1.0 ... Future ... Undecided ... components = The application itself | kevin ... Project web site ... Build tools | cecile ... """)
让我们运行buildout
>>> res = system(buildout)
这创建了一个trac实例
>>> ls(join(sample_buildout, 'parts', 'trac')) - README - VERSION d attachments d conf d db d htdocs d log d plugins d templates
以及一个trac.ini文件。让我们检查其内容
>>> f = join(sample_buildout, 'parts', 'trac', 'conf', 'trac.ini') >>> from ConfigParser import ConfigParser >>> parser = ConfigParser() >>> null = parser.read([f]) >>> parser.get('repositories', 'repo1.type') 'hg' >>> parser.get('repositories', 'repo1.dir') '/sample-buildout/var/svn' >>> parser.get('project', 'descr') 'My example project' >>> parser.get('project', 'name') 'My project' >>> parser.get('project', 'url') '' >>> parser.get('components', 'tracext.hg.*') 'enabled'
检查里程碑
>>> from trac.admin.console import TracAdmin >>> from trac.ticket.model import Milestone, Component >>> location = join(sample_buildout, 'parts', 'trac') >>> trac = TracAdmin(location) >>> Milestone(trac.env, name='0.1') <trac.ticket.model.Milestone object at ... >>> Milestone(trac.env, name='Future') <trac.ticket.model.Milestone object at ... >>> Milestone(trac.env, name='milestone1') Traceback (most recent call last): ... ResourceNotFound: Milestone milestone1 does not exist.
检查组件
>>> component = Component(trac.env, name='The application itself') >>> component <trac.ticket.model.Component object at ... >>> component.owner u'kevin' >>> Component(trac.env, name='component1') Traceback (most recent call last): ... ResourceNotFound: Component component1 does not exist.
支持
源:http://bitbucket.org/tarek/atomisator/src/tip/packages/pbp.recipe.trac/
教程、示例以及如何从旧Trac实例迁移: http://kevin.deldycke.com/2010/12/automate-trac-instance-deployment-buildout/
关于Trac wiki上基于Buildout安装的页面:http://trac.edgewall.org/wiki/CookBook/TracBuildout
pbp.recipe.trac是Atomistor的一个子项目: http://atomisator.ziade.org
贡献者
Tarek Ziade,作者 [tarek]
Kevin Deldycke,贡献者 [kdeldycke]
Marco Scheidhuber,贡献者 [j23d]
变更历史
0.4.3 (2011-01-27)
修复所有SMTP选项。[kdeldycke]
0.4.2 (2010-12-22)
修复里程碑和组件的创建。[j23d]
0.4.1 (2010-12-01)
添加处理仓库同步的选项。[kdeldycke]
0.4.0 (2010-11-04)
让我们基于 Trac 0.12 版本发布这个版本。[kdeldycke]
重新设计里程碑和组件系统以与 Trac 0.12 版本兼容。[kdeldycke]
始终将权限转换为大写字符串。[kdeldycke]
允许自定义组件没有所有者。[kdeldycke]
让我们安装 Babel 包以向 Trac 添加对 i18n 的支持。[kdeldycke]
添加对多个仓库的初始支持。[kdeldycke]
删除 TracSubversionLocation 插件,因为其功能现在已由 Trac 本身实现。[kdeldycke]
添加一个选项来设置默认仓库。[kdeldycke]
在实例创建的最后应用自定义权限,以便插件有机会注册它们自己的自定义权限。[kdeldycke]
0.3.0 (2010-10-08)
强制升级初始化期间使用的所有信息:这是必要的,以保持这些参数在 Trac 项目结构已经存在的情况下保持最新。[kdeldycke]
获取最新的 Trac 0.11.x 版本,但排除 0.12.x 分支。[kdeldycke]
记录所有支持选项。[kdeldycke]
添加新选项:项目描述和页脚信息。[kdeldycke]
将描述作为替代文本重新用于标志。[kdeldycke]
添加对所有 SMTP 参数的支持。[kdeldycke]
添加对 trac.ini 自定义参数的支持。[kdeldycke]
自动安装 Pygments 以利用语法高亮。[kdeldycke]
使用 pytz 获取漂亮且友好的时区。[kdeldycke]
将 docutils 带入以在 Trac 的 wiki 中添加对 reStructuredText (rst) 的支持。[kdeldycke]
添加一个选项,让用户选择是否删除 Trac 添加的默认数据。[kdeldycke]
自动升级 Trac 实例以符合最新方案。添加一个选项,让用户强制升级。[kdeldycke]
添加一个选项,强制升级 Trac 实例中嵌入的自文档中的 Wiki 页面。[kdeldycke]
设置 smtp-from-name 参数的默认值。[kdeldycke]
添加一个选项,强制重新同步 Trac 与源代码仓库。[kdeldycke]
添加一个选项,启用时间管理插件。[kdeldycke]
将 buildbot-url 参数替换为更通用的 additional-menu-items 选项。[kdeldycke]
允许创建多个自定义里程碑。[kdeldycke]
添加对 TracStats 插件的支持。[kdeldycke]
添加对 Subversion 位置插件的支持。[kdeldycke]
添加一个选项来设置自定义权限。[kdeldycke]
0.2.3 (2010-04-24)
修复了插件 svn 路径。[tarek]
0.1.0 (2008-06-16)
使用 ZopeSkel 创建了配方。[tarek]
下载
项目详情
下载文件
下载您平台上的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。
源分发
构建分发
pbp.recipe.trac-0.4.3.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | db5cf6d19d79ad307c5daee75a7c4ec912a9d38a301dccb0bad34822d4393710 |
|
MD5 | 27cfc64e4e2e2985ab5781d22258d6d3 |
|
BLAKE2b-256 | f7ec3c9965bd07f293931b1b76b17606520f14b0f6a9b68e760daab267de7cbd |
pbp.recipe.trac-0.4.3.linux-x86_64.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 53d446d2175ad6a56d3fb7fe01c3b9d5522c37827b8dfe8fd7ff87d0577c0820 |
|
MD5 | 45e7450aa808cf1cf7e3e91fc9ae0352 |
|
BLAKE2b-256 | 7499edc32ce8c9c7f48008df6a354eed069a3be1c00c6bf725125480d25ea94a |
pbp.recipe.trac-0.4.3-py2.6.egg的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 454fc4339c5eab7531d504d335b5fc1e79a27e571aac9ec2816741dfc0d42847 |
|
MD5 | f9b88cca4cf5be971af093fc0969a802 |
|
BLAKE2b-256 | bc9b877c9ee5090da38980d7081dd24734d30b85f40e1215a68d1e4eae3c40a4 |