此仓库用于跟踪 OpenStack 项目的发布请求。发布使用“交付物”组进行管理,这些组由共享 Launchpad 组和版本号历史记录的单个项目仓库组成。许多交付物只有单个组成项目。
“交付物”是可用项目的发布单元。它可能是一个单独的库,或几个服务器组件,这些组件被单独打包,但一起发布和使用。我们不基于打包等技术术语来定义,而是使用项目的社会组织来识别交付物。如果两个仓库的内容共享一个错误报告工具,以便两个仓库的内容的错误混合在一起,并对所有发布使用相同的版本号(例如,一个 launchpad 项目),那么它们都是同一个交付物的一部分。
在此仓库中,每个交付物都由发布系列目录或 _independent 目录中的一个单独文件表示。需要放入每个文件中的数据在下面详细描述。交付物的所有自动化操作都通过数据文件进行管理,该文件由核心团队在补丁被提议到 openstack/releases 时进行审查。
为了被考虑包含在给定系列的发布中,项目必须通过在系列的第二个里程碑之前将交付物文件添加到此仓库来记录。发布团队将根据具体情况考虑例外情况。
项目的 PTL 或发布联络人可以通过向此仓库提交补丁,将必要的发布元数据附加到要发布的交付物描述文件来请求从 master 分支发布。发布团队将审查请求并提供有关版本号的反馈。
项目的稳定维护团队、PTL 或发布联络人可以通过向此仓库提交补丁,将必要的发布元数据附加到要发布的交付物描述文件来请求从稳定分支发布。发布团队将审查请求并提供有关版本号的反馈。如果稳定发布是由稳定维护团队请求的,则应由 PTL 或发布联络人确认,以确保开发团队了解即将发生的更改。
通过向此仓库提交补丁来准备发布请求。
始终将新发布添加到正在编辑的列表的末尾。版本号将重新排序以进行显示。
始终为新发布选择新的版本号。我们不会更新先前标记发布的的内容,因为这会混淆已经下载了这些软件包的用户。
在选择版本号时,请确保遵循语义化版本控制规则 semver。
特别是,如果本次发布中包含的更改需要更高版本的依赖项,则应增加 minor 版本。
注意
此规则的例外情况是,当项目的版本在稳定分支中被固定在 minor 版本之间时。在这些情况下,我们经常发布全局需求同步,版本号为 patch 版本,以修复目标分支,例如 stable/juno,但不增加 minor 版本,以避免在不同的分支中使用它,例如 stable/kilo。来自 stable-maint-core 团队的成员应在批准此类更改之前进行 +1 确认。
不要人为地增加版本号以保持交付物之间的一致版本。我们预计兼容交付物的版本会随着时间的推移而漂移,并决定通过使用其他工具来记录哪些软件包组合在一起,以接受这一点。
http://lists.openstack.org/pipermail/openstack-dev/2015-June/065992.html
如果两个构建工件始终需要具有相同的版本号,那么强烈暗示它们是同一个交付物的一部分,不应单独发布。
对于不稳定早期版本和原型,从 0.1.0 开始。对于第一个可用于生产的发布,切换到 1.0.0。不要使用与现有相关交付物使用的版本相同的数字发布交付物的第一个版本。这会使消费者对新交付物的成熟度以及他们应该在哪里找到具有较低数字的“旧”版本(这些版本不存在)感到困惑。
将提交消息的第一行(摘要)设置为请求的软件包名称和版本。
如果您不是发布联络人或 PTL,请让项目的 PTL 确认请求,并进行 +1 确认。
不要使用 zuul 的“Depends-On”功能来使发布请求依赖于项目中合并另一个补丁。依赖管理在发布检查作业中无法正常工作,并且验证器要求在您的交付物文件中列出的补丁实际上合并到正确的分支中。
不要提交多个依赖补丁以进行多个发布。补丁系列包含多个发布意味着发布团队无法正确确定处理它们的优先级。在里程碑周,优先处理里程碑发布。来自稳定分支、独立项目和其他类型发布的发布将在稍后处理。如果您的里程碑发布请求依赖于一个被降级的请求,您可能会错过截止日期。
对于使用带有 RC 的发布模型的项目,应一起提交 RC1 标签和稳定分支。
releases 仓库包含几个工具,可以更轻松地使用数据文件。例如,new-release 命令会根据命令行给出的语义化版本控制信息计算新的版本号,并确定适当分支的 HEAD 的 SHA。
使用 venv tox 环境来运行该工具,如下所示
$ tox -e venv -- new-release SERIES DELIVERABLE TYPE
SERIES 值应为发布系列,例如“pike”。
DELIVERABLE 值应为交付物名称,例如“oslo.config”或“cinder”。
TYPE 值应为以下其中之一
bugfix – 对于仅包含错误修复的发布。
feature – 对于包含新功能、新依赖项或对依赖项的最小允许版本更改的发布。
major – 对于包含向后不兼容变更的发布版本。
milestone – 对于基于日期的里程碑标签。
rc – 对于发布候选版本。
new-series 会自动为第一个发布候选版本包含一个稳定的分支。
如果 pike 系列 cinder 的最新发布版本是 11.0.0.0b3,那么运行
$ tox -e venv -- new-release pike cinder rc
会检测到这是第一个发布候选版本,并使用新的发布版本和新的稳定分支更新文件 deliverables/pike/cinder.yaml。
如果一个 deliverable 包含多个 git 仓库,除非它们的 HEAD 版本与该仓库的最新发布版本匹配,否则所有仓库都将包含在新发布版本中。在这种情况下,要重新标记,请使用 --force 选项。
使用 --stable-branch 选项也可以为新发布版本创建一个稳定分支。遵循 cycle-with-rc 发布模型的项目会在它们的第一个发布候选版本上自动获得一个新的稳定分支。
项目的 PTL 或发布联络人可以通过向此仓库提交补丁,将必要的分支元数据添加到描述要发布的 deliverable 的文件中来请求新分支。发布团队将审核请求并提供关于分支点以及可能分支名称的反馈。
通过向此仓库提交补丁来准备分支请求。
对于使用带有 RC 的发布模型的项目,应一起提交 RC1 标签和稳定分支。
始终将新分支添加到正在编辑的文件末尾的列表中。
分支应使用以下标准前缀
stable/ – 用于稳定系列
feature/ – 用于临时功能分支
stable/ 分支名称必须与有效的系列名称匹配。
如果您不是发布联络人或 PTL,请让项目的 PTL 确认请求,并进行 +1 确认。
不要使用 zuul 的“Depends-On”功能来使分支请求依赖于项目中另一个补丁的合并。依赖管理在发布检查作业中无法正常工作,并且验证器要求你在 deliverable 文件中列出的补丁实际上合并到正确的分支中。
发布将在冻结周、已知存在 gate 问题的时期或发布会引入不必要的稳定性问题时被拒绝。如果在一周的后期进行的发布,除非有紧急需求(例如 gate 失败或安全问题),否则可能会延迟到下一周初。
发布团队负责通过良好的版本号选择来清晰地表明发布版本中更改的性质。
项目团队负责理解新发布版本对使用项目的含义,并确保发布版本不会破坏其他项目。如果发生破坏,项目团队负责采取必要的纠正措施。
使用 cycle_with_intermediary 或 cycle_with_milestones 的项目的 deliverable 仓库应放置在其各自的发布版本中,位于 deliverables 目录中。使用独立发布模型的项目的 deliverable 仓库应放置在 deliverables/_independent 目录中。
对于一组 deliverable 项目,我们使用每个发布系列一个 YAML 文件来保存该 deliverable 的所有发布版本和分支的所有元数据。对于每个 deliverable,我们需要跟踪
launchpad 项目名称(例如 oslo.config)或 storyboard 项目 ID(例如 760)
系列(Kilo、Liberty 等)
正在使用的发布模型
对于每个仓库
名称(例如 openstack/oslo.config)
要标记的提交的哈希值
要使用的版本号
将在 releases.openstack.org/$SERIES/highlights.html 上发布的 cycle 亮点(可选,仅适用于 cycle_with_intermediary 和 cycle_with_rc 项目)
所有分支的起始点
我们跟踪 deliverable 所有发布版本的元数据,以便我们可以渲染一组发布历史记录文档。
文件应基于要标记的 deliverable 命名,因此来自 openstack/oslo.config 仓库的 liberty 的发布版本将在 openstack/releases 中名为 deliverables/liberty/oslo.config.yaml 的文件中。来自 stable/kilo 分支的相同 deliverable 的发布版本将由 deliverables/kilo/oslo.config.yaml 描述。
deliverable 文件的顶层是一个映射,其键为
team拥有 deliverable 的团队的名称,如治理仓库数据文件中所列。
launchpadlaunchpad 项目的 slug 名称,适用于 URL。 (对于使用 storyboard 的项目不需要。)
storyboardstoryboard 项目的 ID,适用于 URL 和 API 调用。 (对于使用 launchpad 的项目不需要。)
release-notes发布说明的 URL 或 URL,适用于该系列的 deliverable。
包含单个仓库的 Deliverables 应该只包含指向该仓库的说明的 URL。由多个仓库组成的 Deliverables 应该使用哈希将每个仓库名称映射到其说明 URL。
include-pypi-link要么 true 要么 false,指示发布公告是否应包含指向 PyPI 上软件包的链接。默认值为 false。
release-model确定交付项使用的发布模型。有关有效模型的描述,请参阅文档的参考部分。
type根据交付项的功能对其进行分类。有关有效交付项类型的描述,请参阅文档的参考部分。
artifact-link-mode描述如何链接到项目生成的工件。默认值为 tarball。有效值为
tarball自动生成指向 tarballs.openstack.org 上的特定版本文件的链接。
none不链接到任何内容,仅显示版本号。
repository-settings特殊设置到每个仓库行为的映射,按仓库名称键控。
flags附加到仓库的标志列表。
no-artifact-build-job此仓库没有构建工件的作业,但仍应进行标记。
retired此仓库不再使用,但存在于交付项的旧版本中。
pypi-name在 pypi.python.org 上的交付项的可选名称。仅当 PyPI 上的名称与 python setup.py --name 的规范化输出不匹配时(例如,使用大写字母“DragonFlow”而不是“dragonflow”),才需要此值。
tarball-base发布创建的 tarball 的可选名称。如果未提供值,则默认使用仓库基本名称或在 releases 下特定发布条目中设置的覆盖值。
release-type此(可选)键设置版本号的验证级别。
python-service默认:强制执行发布中 3 位数字的语义化版本号,并允许常见的 alpha、beta 和 dev 版本。这应该适用于大多数 OpenStack 组件发布需求。
python-pypi类似于 python-service,但要求作业将组件发布到 Python 包索引 (PyPI)。
xstatic允许符合 xstatic 包指南和要求的更灵活的版本控制。
fuelFuel 项目管理自己的软件包。
puppet所有 puppet 模块都应使用此选项。如果未指定 release-type,并且验证作业可以确定模块是 puppet 模块,则假定 release-type 为 puppet。
nodejs所有 nodejs 模块都应使用此选项。如果未指定 release-type,并且验证作业可以确定模块是 nodejs 模块,则假定 release-type 为 nodejs。
neutron对于使用 PyPI 发布变体来安装 neutron 以构建软件包的项目。通常由 neutron 插件使用。
horizon对于使用 PyPI 发布变体来安装 horizon 以构建软件包的项目。通常由 horizon 插件使用。
releases交付项的发布列表。
stable-branch-type此(可选)键设置与每个稳定分支关联的位置的验证。
std默认:要求从标记的发布创建稳定分支。这是大多数项目的正确分支类型。
位置必须是现有的版本标签,或者是发布列表下最近添加的版本号(允许同时提交标签和分支)。与版本关联的所有仓库(由交付项文件标识)将使用给定的名称从该版本分支。
std-with-versions此模式的含义与 std 分支类型相同,此外还可以创建基于版本的分支。
这些基于版本的分支是短期稳定分支,其名称为主要和次要版本号(例如 bugfix/3.1)。这主要用于 Ironic 发布。
tagless此模式要求稳定分支位置是仓库名称与现有提交(由哈希指定)之间的映射。此模式仅应用于不标记发布的项目,例如 devstack 和 grenade。
upstream稳定分支名称跟踪上游发布名称,而不是 OpenStack 系列名称。
none此模式表示交付项不应有稳定分支。这用于特定的交付项,例如 tempest。
cycle-highlights描述您希望在此发布周期中重点介绍的一些顶级新功能或更改的纯文本项目符号列表。支持最少的 RST 标记。这些亮点将按团队编译并在 releases.openstack.org/$SERIES/highlights.html 上发布。
branches交付项的分支列表。
每个 release 条目都是一个映射,其中包含键
version应用于所有成员项目的发布标签。
projects构成该发布交付项的所有项目的列表。
highlights要在发布说明电子邮件中包含的可选消息。 (使用 | 表示多行、预格式化的消息。)
flags附加到发布的标志列表。
forced此发布由发布团队应用,而不是项目团队。
skipped-sig此独立发布早于 Ocata 周期,未生成任何签名。生成网站页面时应跳过签名链接显示。
在 projects 列表中,每个条目都是一个映射,其中包含键
repogit.openstack.org 上的仓库名称。
hash要接收版本标签的提交的 SHA1 哈希值。
tarball-base发布创建的 tarball 的可选名称。如果未提供值,则默认使用 repository-settings 值(如果已设置),否则使用仓库基本名称。
在 branches 列表中,每个条目都是一个映射,其中包含键
name分支名称。
location位置值取决于名称。
如果分支名称以 stable/ 开头,则 location 值取决于 stable-branch-type 设置。
如果分支名称以 feature/ 开头,则 location 必须是目标仓库名称和目标仓库中已存在提交的 SHA 之间的映射。
例如,deliverables/liberty/oslo.config.yaml 的一个版本可能包含
---
launchpad: oslo.config
branches:
- name: feature/random-feature-work
location:
openstack/oslo.config: 02a86d2eefeda5144ea8c39657aed24b8b0c9a39
releases:
- version: 1.12.0
projects:
- repo: openstack/oslo.config
hash: 02a86d2eefeda5144ea8c39657aed24b8b0c9a39
然后对于后续发布,它将被更新为包含
---
launchpad: oslo.config
branches:
- name: feature/random-feature-work
location:
openstack/oslo.config: 02a86d2eefeda5144ea8c39657aed24b8b0c9a39
- name: stable/newton
location: 1.12.1
releases:
- version: 1.12.0
projects:
- repo: openstack/oslo.config
hash: 02a86d2eefeda5144ea8c39657aed24b8b0c9a39
- version: 1.12.1
projects:
- repo: openstack/oslo.config
hash: 0c9113f68285f7b55ca01f0bbb5ce6cddada5023
highlights: |
This release includes the change to stop importing
from the 'oslo' namespace package.
对于具有多个仓库的 deliverables,项目列表将包含所有这些仓库。例如,Neutron deliverable 可以由 deliverables/mitaka/neutron.yaml 描述,其中包含
---
launchpad: neutron
release-notes:
openstack/neutron: https://docs.openstack.org/releasenotes/neutron/mitaka.html
openstack/neutron-lbaas: https://docs.openstack.org/releasenotes/neutron-lbaas/mitaka.html
openstack/neutron-fwaas: https://docs.openstack.org/releasenotes/neutron-fwaas/mitaka.html
openstack/neutron-vpnaas: https://docs.openstack.org/releasenotes/neutron-vpnaas/mitaka.html
releases:
- version: 8.0.0
projects:
- repo: openstack/neutron
hash: 3213eb124e40b130e174ac3a91067e2b196788dd
- repo: openstack/neutron-fwaas
hash: ab5622891e2b1a7631f97471f55ffb9b5235e5ee
- repo: openstack/neutron-lbaas
hash: 19b18f05037dae4bbbada848aae6421da18ab490
- repo: openstack/neutron-vpnaas
hash: a1b12601a64a2359b2224fd4406c5db008484700
为了允许对没有构建工件的仓库进行标记,请设置 no-artifact-build-job 标志。
---
launchpad: astara
repository-settings:
openstack/astara-appliance:
flags:
- no-artifact-build-job
releases:
- version: 9.0.0.0b1
projects:
- repo: openstack/astara-appliance
hash: c21a64ea7b3b0fbdab8592afecdd31d9b8e64a6a
为了帮助构建这些文件,该仓库包含各种基于命令行工具。要安装这些工具,只需在此仓库目录中运行 pip install . 即可。
new-release 接受参数来描述一个新发布,并更新 deliverable 文件,自动计算版本号
edit-deliverable 接受参数来更新单个 deliverable 文件的内容
list-changes 列出给定发布文件中的更改。
interactive-release 以向导式问题集的形式,生成给定项目或一组项目的新的或更新的发布。
missing-releases 扫描 deliverable 文件,并验证所有应该手动标记的发布是否已标记
init-series 基于上一个发布,初始化一个新的 deliverable 目录,并带有 stub 文件。
get-contacts 加载治理和联络数据,以打印给定团队的联系方式
一个脚本,用于处理 stable/$SERIES 分支上的发布前/发布后 ACL。
‘acls’ 操作有助于为 stable/$SERIES 生成一个补丁,该补丁插入到 openstack-infra/project-config 中。
‘groups’ 操作有助于调整 $PROJ-release-branch Gerrit 组的成员资格,具体取决于发布分支所处的阶段。在发布前,我们删除 $PROJ-stable-maint,并添加 $PROJ-release 和 Release Managers 组(pre_release 子操作)。在发布后,我们删除 $PROJ-release 和 Release Managers,并添加 $PROJ-stable-maint(post_release 子操作)。
示例
要为 stable/newton 创建 ACL 补丁
tox -e aclmanager -- --series newton acls ~/branches/openstack-infra/project-config
要设置发布前的组员资格
tox -e aclmanager -- groups pre_release ttx
一个脚本,用于将 PTL 和发布联络人添加到一个或多个评审中。
在周期内,尤其是在周期结束时,发布团队需要为各种包含的 deliverables 的子集生成大量的发布补丁。add_reviewers.sh 脚本可用于确保已将适当的人员添加为这些评审的评审人员。
例如,假设 Ussuri 周期发布候选补丁使用 Gerrit 评审主题 ussuri-rc 生成,则以下命令将处理所有这些评审,以添加必要的 PTL 和联络人评审人员
./tools/add_reviewers.sh ussuri-rc
请注意,可以使用任何主题,因此即使只是将评审人员添加到单个评审,也可以使用此脚本。
一个脚本,用于测试发布请求是否已获得团队联络人的批准。
示例
tox -e check_approval -- 695375
一个脚本,用于获取一个工作目录,并将修改后的文件分成一组独立的按团队划分的评审。每个按团队划分的更改都应该能够以任何顺序进行处理。这些评审将请求 PTL 和所有发布联络人的评审。
该工具旨在由发布团队在周期的关键点使用,以简化批量发布。
注意
此工具最终将提交所有修改后的 deliverables 并修改 git 状态。因此,在运行它之前,工作树仅包含适合发布阶段的逻辑更改并且所有更改都已保存到其他地方,以防脚本遇到问题,这一点至关重要。
一个围绕 new-release 的包装脚本,旨在由发布团队在发布周期的适当时间创建发布,例如里程碑。完成 tools/make_missing_releases.sh 后,发布经理可以使用 tools/bulk_review.sh 提交发布请求。
自动化了部分流程,以提出大量 deliverables 的发布。
在发布周期中,有多个时间点需要发布团队启动库发布、标记 RC 或其他需要检查一组 deliverables 中的每个 deliverable 以生成发布请求的情况。
此工具会要求输入一些用于发布的常见设置。命令行中输入一个模板提交消息,使用占位符 PROJECT,该占位符将被实际的 deliverable 名称替换。然后,它遍历一组 deliverables,并显示相关仓库中尚未包含在发布中的任何提交。然后,您可以决定是否需要发布它,并根据包含的提交选择发布类型(主要、次要、bugfix、rc 等)。
可以将此工具与 list-deliverables 命令结合使用,以获取要处理的特定 deliverables。一个示例用法是
./tools/process_auto_releases.sh ussuri $(list-deliverables --unreleased --series ussuri)
或者,如果需要编辑 deliverables 列表后再运行该命令,那也可以这样做:
tox -e venv -- list-deliverables --unreleased --series ussuri > deliverables.log
vi deliverables.log # edit contents as needed
./tools/process_auto_releases.sh ussuri $(cat deliverables.log)
与 make_missing_releases.sh 不同,此脚本将创建每个仓库的新临时克隆,以避免过时信息,并且它将立即提交每个新的发布请求。
一个脚本,用于在需要时将缺失的发布说明链接添加到交付物。
该脚本设计为由发布团队在发布周期中的适当时间(例如里程碑)运行,以确保发布说明链接存在于交付物中。
示例
要检查 ussuri 发布说明链接
tools/add_release_note_links.sh ussuri
一个脚本,用于搜索 openstack-discuss 邮件列表中的电子邮件。默认情况下,此脚本将搜索与发布团队相关的电子邮件,但可以覆盖主题以查找特定主题。
示例
最基本的示例如下,它将在 openstack-discuss 上搜索与发布主题相关的电子邮件,从邮件列表创建日期(2018 年 11 月)到当前日期。
$ tools/search_emails.py
要查找与发布相关并在 2 个日期之间过滤的电子邮件
$ tools/search_emails.py --starting-date 2020-04-01 --ending-date 2020-4-1
要查找与发布相关并按作者过滤的电子邮件
$ tools/search_emails.py --authors "Herve Beraud" "Sean McGinnis"
要查找与发布相关并在 2 个日期之间由作者发送的电子邮件
$ tools/search_emails.py --starting-date 2020-04-01 --ending-date 2020-4-1 --authors "Herve Beraud" "Sean McGinnis"
要查找自 2020 年 8 月以来与发布 FFE 相关的电子邮件
$ tools/search_emails.py –topic “.?[release].*FFE.*” –starting-date 2020-8-1
要查找在 victoria 期间发送的所有发布倒计时电子邮件
$ tools/search_emails.py --topic ".?\[release\] Release countdown.*" --starting-date 2020-5-1
默认情况下将在 http://lists.openstack.org/pipermail/openstack-discuss 上执行,但您可以更改 url 以在不同的邮件列表上执行研究。
在以下示例中,我们正在查找 openstack/watcher* 的所有失败的发布作业
$ tools/search_emails.py --topic ".?openstack/watcher.*" --mailing-list http://lists.openstack.org/pipermail/
release-job-failures/ --starting-date 2016-6-1
请注意,默认情况下,我们在 http://lists.openstack.org/pipermail/openstack-discuss 上搜索,并且该邮件列表是在 2018 年 11 月创建的,因此 --starting-date 默认初始化为该日期,但日期不能早于此默认日期,除非您在不同的邮件列表上搜索,并且如果您也通过传递参数使用 --mailing-list 来覆盖它。
有关更多用法和示例
$ tools/search_emails.py -h
一个脚本,用于检测具有 EOL 过时分支的交付物,并可选地删除它们。
示例
tools/list_eol_stale_branches.sh
另一个示例,预定义要用于分支删除的 gerrit 用户
GERRIT_USER=<gerrit_user_name> tools/list_eol_stale_branches.sh
该工具背后的原因是,自从引入扩展维护模型以来,我们停止自动删除寿命结束 (EOL) 分支。该工具旨在列出已声明 End of Life(即,标记为 $series-eol)的项目,但相应的系列分支仍然存在。该脚本还提供删除这些过时分支的功能。
注意
只有发布经理才有删除分支的访问权限。
一个脚本,用于检测具有 EOM 过时分支的交付物,并可选地删除它们。
示例
tools/list_eom_stale_branches.sh <series>
随着流程的变化,维护的分支不再进入扩展维护,而是进入未维护阶段。稳定分支的 HEAD 标记为 <series>-eom 标签,并从该标签切出一个名为 unmaintained/<series> 的分支。之后需要删除 stable/<series> 分支。该脚本列出这些 stable/分支并提供删除它们的功能。
注意
只有发布经理才有删除分支的访问权限。
一个脚本,用于帮助放弃当给定分支过渡到 Unmaintained 或 End of Life 并且需要放弃 stable/<series> 分支上的所有补丁才能删除该分支时打开的补丁。
示例
tools/abandon_patches_on_branch.sh yoga $(list-deliverables --series yoga)
一个脚本,用于检测在先前系列中未分支的交付物。
示例
tools/list_unbranched_projects.sh
该工具旨在避免遗漏分支。这是拖尾项目的副作用,每个系列都会有一些项目遗漏并保持未分支。我们之前遇到过类似的情况,这导致我们在稳定分支上发布时出现问题。
一个脚本,用于测试治理中从未在发布管理下运行的新交付物,因此逃避了任何形式的发布管理跟踪。
需要在 milestone-2 左右(在 MembershipFreeze 之前)检查这些内容,以便在它们是最终发布的一部分时创建交付物文件。
示例
要检查 Stein 发布
tox -e membership_freeze_test -- stein ~/branches/governance/reference/projects.yaml
该脚本可以生成一个项目 url 并将其附加到每个找到的结果,只需将标志 –url 添加到您的命令即可。
默认情况下,生成的 url 使用官方 git 存储库 (https://git.openstack.org),但您可以使用另一个 url,例如 github 或您特定的 dist git url,方法是添加选项 –distgit <base-url> 到您的命令。
示例
tox -e membership_freeze_test -- stein ~/branches/governance/reference/projects.yaml --url --distgit https://github.com/
用于编辑发布存储库中的交付物文件以提出最终发布版本的命令。该命令修改存储库中现有副本中的文件,并且根本不调用 git,因此您需要在运行它之前创建一个分支,然后查看输出,提交更改,并将补丁推送到 gerrit。
tox -e venv -- propose-final-releases newton ocata
用于编辑发布存储库中的交付物文件以提出库的稳定分支的命令。该命令修改存储库中现有副本中的文件,并且根本不调用 git,因此您需要在运行它之前创建一个分支,然后查看输出,提交更改,并将补丁推送到 gerrit。
tox -e venv -- propose-library-branches
tox -e venv -- propose-library-branches pike
给定一个分支和一个或多个存储库,生成自该分支上上次标签以来这些存储库中的更改列表。这对于确定项目是否需要准备发布以及通过查看提交日志来预测下一个发布版本应该是什么很有用。
./tools/list_unreleased_changes.sh master openstack/oslo.config
打印 openstack/oslo.config 沿 master 分支的更改列表。
给定一个系列和团队名称,生成自该分支上上次标签以来该团队存储库中的更改列表。这对于确定项目是否需要准备发布以及通过查看提交日志来预测下一个发布版本应该是什么很有用。
./tools/list_unreleased_changes_for_team.sh stein oslo
打印 Oslo 团队存储库沿 stein 发布分支(发布前为“master”,发布后为“stable/stein”)的更改列表。
为任何项目管理的所有库运行 list_unreleased_changes.sh。
使用给定的分支,对所有仓库运行 list_unreleased_changes.sh。
./list_stable_unreleased_changes.sh stable/liberty
等同于
./list_unreleased_changes.sh stable/liberty $(list-deliverables --repos --series liberty)
列出所有标记为已结束维护(“不再维护”)的系列。
tox -e venv -- list-eom-series
除非另有说明,本文档根据知识共享署名3.0许可协议授权。请参阅所有OpenStack法律文件。