跳转到主要内容

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.

支持

贡献者

变更历史

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 (20.2 kB 查看散列)

上传时间

构建分发

pbp.recipe.trac-0.4.3.linux-x86_64.tar.gz (17.8 kB 查看散列)

上传时间

pbp.recipe.trac-0.4.3-py2.6.egg (22.0 kB 查看哈希值)

上传时间: 源代码

支持者