本文档描述了准备发布的相关流程和每周步骤。应根据团队的假期和其他承诺进行调整,并转化为发布周期内的明确行动计划。
处理任何分支的交付物的延迟或阻塞的发布请求(将新的系列分支视为稳定)。
通过在下一个周期的目录中添加交付文件,为下一个发布周期做准备。删除最终没有发布的当前周期中的任何交付文件。然后运行以下命令,使用当前周期的交付物为下一个周期生成占位符
tox -e venv -- init-series $SERIES $NEXT_SERIES
使用 gerrit 主题 $series-init-series 提交您的更改。
警告
此时,上一系列的尾部交付物可能尚未发布。将它们添加到此处没有问题,但是我们应该保持警惕,并确保首先为上一系列创建新的发布。
与基础设施团队协调,更换上一周期的签名密钥并建立启动周期的新密钥。
使用 make-tracking-etherpad 命令创建 $series-relmgt-tracking etherpad。例如
tox -e venv -- make-tracking-pad ussuri
可以将此命令的输出粘贴到 $SERIES-relmgt-tracking etherpad 中。设置顶部部分标题格式。然后突出显示列出的所有周次并设置为 Heading 3 样式。填写其中一周的内容,然后将其复制并粘贴到后续的每一周,以准备其余周期。
通过电子邮件直接通知 PTL 一次,解释在 openstack-discuss 邮件列表中使用“[release][ptl]”电子邮件标签,并告知他们关注 [release] 倒计时电子邮件。使用以下电子邮件模板,并以 $SERIES 周期 信息 作为电子邮件主题发送
This email is going out to all PTLs and release liaisons for $SERIES.
Welcome to the $SERIES series. On behalf of the release management team, I
just wanted to say hello and make sure you had the information you need
to know what to do and what to expect during this coming release cycle.
Release Schedule
================
If you haven't seen it yet, please take a look at the published schedule for
this cycle:
https://releases.openstack.org/$SERIES/schedule.html
That lists all of the major milestones along the way as we work towards the
coordinated release on $release-date.
Community-wide deadlines are listed under the "Cross-project events" column.
You may notice some projects have added project-specific deadlines under the
"Project-specific events" column. That can be done by submitting a patch to the
openstack/releases repo updating the doc/source/$SERIES/schedule.* files, if
you would like to make sure those deadlines are published somewhere.
Countdown Emails
================
Throughout the cycle, we will be sending regular "countdown" emails to the
openstack-discuss mailing list. If you have filtering set up for mailing list
emails, please make sure you are not filtering out subject lines that contain
"[release]" and "[ptl]" tags.
These countdown emails will contain important updates on upcoming deadlines and
information about necessary actions throughout the cycle. We try to keep them
to a minimum, so earlier on in the cycle they will not be sent weekly, but
around deadline times and especially towards the end of the cycle, these will
go out weekly to make sure everyone has the information they need to get work
done in time. Your attention to these emails would be appreciated. We will try
to keep them short.
Deliverables
============
The release process may be new for a few of you. All official OpenStack
deliverables are released by updating deliverable files in the
openstack/releases repo:
https://opendev.org/openstack/releases/src/branch/master/deliverables/$SERIES
Please take a look at your deliverable files and make sure the release-model
matches what the team plans to follow for this cycle. This model is a way to
communicate to downstream consumers what to expect, so the release team uses
your declared model to determine when and how to enforce different steps during
the cycle.
Details on the release models and what they mean, as well as documentation on
how to use the releases repo, can be found in the references section here:
https://releases.openstack.org/index.html#references
That has documentation for some of our tooling too. The most important one you
may want to know about is the new-release tooling so you don't need to edit
those yaml files directly. That command can be used like this:
tools/new_release.sh $SERIES cinder feature
The last part can be major (major version bump), feature (minor version bump),
and bugfix (bugfix, or the Z in X.Y.Z).
Reviews
=======
Because of the strict timing of the cycle schedule, it is important that you
review release patches within some days or usually until Thursdays EOB if
possible. Please look at the incoming review request emails (sent by gerrit)
from openstack/releases repository regularly or at least check your inbox at
least once or twice a week:
https://review.opendev.org/q/project:openstack/releases+reviewer:self+is:open
The above link shows a customised list of release patches that only contains
patches that you are added as reviewer. Release managers use a script to add
PTLs and release liaisons to their relevant release patches as reviewers.
Release Liaisons
================
If anyone should be added as a release liaison, or removed, just submit a patch
to update the data/release_liaisons.yaml file in the openstack/releases repo
with current information for your team.
Please contact us at any point with any questions. We can be reached on the
openstack-discuss mailing list with the [release] tag, or on IRC in the
#openstack-release channel.
Thanks for your attention. I hope the $SERIES cycle goes well for everyone.
在周结束时,发送以下每周电子邮件内容
Welcome back to the release countdown emails! These will be sent at
major points in the $SERIES development cycle, which should conclude
with a final release on $release-date.
Development Focus
-----------------
At this stage in the release cycle, focus should be on planning the
$SERIES development cycle, assessing $SERIES community goals and approving
$SERIES specs.
General Information
-------------------
$remark-on-series-length. In case you haven't seen it yet, please take
a look over the schedule for this release:
https://releases.openstack.org/$SERIES/schedule.html
By default, the team PTL is responsible for handling the release cycle
and approving release requests. This task can (and probably should) be
delegated to release liaisons. Now is a good time to review release
liaison information for your team and make sure it is up to date:
https://opendev.org/openstack/releases/src/branch/master/data/release_liaisons.yaml
By default, all your team deliverables from the $PREVIOUS_SERIES release are
continued in $SERIES with a similar release model.
Upcoming Deadlines & Dates
--------------------------
$other-upcoming-event_
$SERIES-1 milestone: $milestone1
检查周期尾部项目,查看哪些尚未发布。如果尚未发布,请要求他们准备发布。可以通过运行以下命令确定待处理的周期尾部交付物列表
tox -e venv -- list-deliverables --series $LASTSERIES \
--type trailing --missing-final
在周结束时,发送以下每周电子邮件内容
Development Focus
-----------------
The $SERIES-1 milestone is next week, on $milestone1! Project team plans
for the $SERIES cycle should now be solidified.
General Information
-------------------
Libraries need to be released at least once per milestone period. Next
week, the release team will propose releases for any library which had
changes but has not been otherwise released since the $LASTSERIES release.
PTL's or release liaisons, please watch for these and give a +1 to
acknowledge them. If there is some reason to hold off on a release, let
us know that as well, by posting a -1. If we do not hear anything at all
by the end of the week, we will assume things are OK to proceed.
NB: If one of your libraries is still releasing 0.x versions, start
thinking about when it will be appropriate to do a 1.0 version. The
version number does signal the state, real or perceived, of the library,
so we strongly encourage going to a full major version once things are
in a good and usable state.
Upcoming Deadlines & Dates
--------------------------
$SERIES-1 milestone: $milestone1
确保所有尾部项目都已为上一系列分支。
使用以下命令列出未分支的项目
tools/list_unbranched_projects.sh
提出补丁以分支缺失的项目。
为自上一版本发布以来未发布的具有中间库的周期项目提出自动发布。
使用以下命令列出它们
tox -e venv -- \
list-deliverables \
--unreleased \
--model cycle-with-intermediary \
--type client-library \
--type library \
> /tmp/deliverables.log
编辑生成的文件 (/tmp/deliverables.log) 以删除 tox 的日志。
为自上一版本发布以来发生更改但尚未发布的具有中间库的周期项目生成发布请求。
警告
process_auto_releases 将要求您输入补丁的主题。请使用 $series-milestone-1 作为主题。
为此,运行 (参阅 tools/process_auto_releases.sh)
tools/process_auto_releases.sh $SERIES $(cat /tmp/deliverables.log)
该补丁将用作与团队沟通的基础:如果团队希望某个补丁进入库,团队成员可以 -1 该补丁以将其保留,或使用不同的提交 SHA 更新该补丁。
这是为 Wallaby 生成的里程碑 1 的一个示例
从周二到周四,尽快合并获得 PTL 或发布联络人 +1 的补丁。
在周五,合并未获得 PTL 或发布联络人反馈的补丁。讨论持续的 -1,看看是否应该授予例外并等待下周。
为了捕获新创建的存储库中是否存在 acl 问题,运行 tools/aclissues.py 以检测 Gerrit ACL 中潜在的遗留问题,这些问题允许直接标记或分支官方交付物,而无需经过 openstack/releases。您需要指定治理和项目配置存储库的最新签出位置。例如
tools/aclissues.py ../project-config ../governance
如果该工具报告任何违规行为,可以使用 --patch 重新运行它,以生成 ../project-config 中所需的更改,以使 ACL 与治理保持一致,并提出更改以供审核。
在周结束时,发送以下每周电子邮件内容
Development Focus
-----------------
We are now past the $SERIES-1 milestone. Teams should now be focused on
feature development and completion of goals [0].
[0] https://governance.openstack.org/tc/goals/selected/index.html
General Information
-------------------
Our next milestone in this development cycle will be $SERIES-2, on
$milestone2. This milestone is when we freeze the list of deliverables
that will be included in the $SERIES final release, so if you plan to
introduce new deliverables in this release, please propose a change to
add an empty deliverable file in the deliverables/$SERIES directory of
the openstack/releases repository.
Now is also generally a good time to look at bugfixes that were
introduced in the master branch that might make sense to be backported
and released in a stable release.
If you have any question around the OpenStack release process, feel free
to ask on this mailing-list or on the #openstack-release channel on IRC.
Upcoming Deadlines & Dates
--------------------------
$SERIES-2 Milestone: $milestone2
审查任何剩余的里程碑 1 例外
确保要求存储库中里程碑 1 发布的所有新发布补丁都已合并。这应该是一个空列表
https://review.opendev.org/q/project:openstack/requirements+branch:master+is:open+topic:new-release
发送以下每周电子邮件内容
Development Focus
-----------------
The $SERIES-2 milestone will happen in next month, on $milestone2.
$SERIES-related specs should now be finalized so that teams can move
to implementation ASAP. Some teams observe specific deadlines on
the second milestone (mostly spec freezes): please refer to
https://releases.openstack.org/$SERIES/schedule.html for details.
General Information
-------------------
Please remember that libraries need to be released at least once per
milestone period. At milestone 2, the release team will propose releases
for any library that has not been otherwise released since milestone 1.
Other non-library deliverables that follow the cycle-with-intermediary
release model should have an intermediary release before milestone-2.
Those who haven't will be proposed to switch to the cycle-with-rc model,
which is more suited to deliverables that are released only once per cycle.
At milestone-2 we also freeze the contents of the final release. If you
have a new deliverable that should be included in the final release, you
should make sure it has a deliverable file in:
https://opendev.org/openstack/releases/src/branch/master/deliverables/$series
You should request a beta release (or intermediary release) for those new
deliverables by milestone-2. We understand some may not be quite ready
for a full release yet, but if you have something minimally viable to
get released it would be good to do a 0.x release to exercise the release
tooling for your deliverables. See the MembershipFreeze description for
more details: https://releases.openstack.org/$SERIES/schedule.html#$S-mf
Finally, now may be a good time for teams to check on any stable
releases that need to be done for your deliverables. If you have
bugfixes that have been backported, but no stable release getting
those. If you are unsure what is out there committed but not released,
in the openstack/releases repo, running the command
"tools/list_stable_unreleased_changes.sh <cycle_name>" gives a nice report.
Upcoming Deadlines & Dates
--------------------------
$SERIES-2 Milestone: $milestone2
在 MembershipFreeze 之前,运行 governance_consistency.py
python3 tools/governance_consistency.py $series $project_yaml_file
此工具将列出治理的参考“projects.yaml”文件和 $series 目录或 _independent 目录中定义的交付物之间的所有不一致之处。理想情况下,应该没有不一致之处。
对于在治理中定义但未在交付文件中定义的交付物,它们可能列在 TC 的“非活动”项目中。否则,如果它们不需要发布(请参阅治理 projects.yaml 文件中的 release-management 键),则应将其标记为发布管理例外,或者应添加一个空交付文件到系列中,以便我们可以正确跟踪它。遗留项目被认为太年轻,无法在下一次发布中发布,将在下一个周期中重新考虑。
对于在交付文件中定义但在(活动)治理中未定义的交付物,通常应从 $series 目录中删除其交付文件,或者如果存在于 _independent 目录中,则标记为 release-model:abandoned。
发送以下每周电子邮件内容
Development Focus
-----------------
The $SERIES-2 milestone is next week, on $milestone2! $SERIES-related
specs should now be finalized so that teams can move to implementation
ASAP. Some teams observe specific deadlines on the second milestone
(mostly spec freezes): please refer to
https://releases.openstack.org/$SERIES/schedule.html for details.
General Information
-------------------
Libraries need to be released at least once per milestone period. Next
week, the release team will propose releases for any library that has not
been otherwise released since milestone 1. PTL's and release liaisons,
please watch for these and give a +1 to acknowledge them. If there is
some reason to hold off on a release, let us know that as well. A +1
would be appreciated, but if we do not hear anything at all by the end
of the week, we will assume things are OK to proceed.
Remember that non-library deliverables that follow the
cycle-with-intermediary release model should have an intermediary
release before milestone-2. Those who haven't will be proposed to switch
to the cycle-with-rc model, which is more suited to deliverables that
are released only once per cycle.
Next week is also the deadline to freeze the contents of the final
release. All new '$SERIES' deliverables need to have a deliverable file
in https://opendev.org/openstack/releases/src/branch/master/deliverables
and need to have done a release by milestone-2.
Changes proposing those deliverables for inclusion in $SERIES have been
posted, please update them with an actual release request before the
milestone-2 deadline if you plan on including that deliverable in $SERIES,
or -1 if you need one more cycle to be ready.
Upcoming Deadlines & Dates
--------------------------
$SERIES-2 Milestone: $milestone2
生成自 YYYY-MM-DD 日期(里程碑 1 的日期)以来未发布的所有具有中间库的周期项目列表。为此,运行
tox -e venv -- \
list-deliverables \
--unreleased-since YYYY-MM-DD \
--model cycle-with-intermediary \
--type client-library \
--type library \
> /tmp/deliverables.log
然后,编辑生成的文件以删除 tox 的日志。
为所有存在变更但自 milestone-1 以来尚未发布的周期性中间发布库生成发布请求。
警告
process_auto_releases 将要求您输入补丁的主题。请使用 $series-milestone-2 作为主题。
为此,运行 (参阅 tools/process_auto_releases.sh)
tools/process_auto_releases.sh $SERIES $(cat /tmp/deliverables.log)
该补丁将用作与团队沟通的基础:如果团队希望某个补丁进入库,团队成员可以 -1 该补丁以将其保留,或使用不同的提交 SHA 更新该补丁。
以下是为 Wallaby 生成的 milestone 2 的示例
为了检测新创建的仓库中是否存在 acl 问题,运行 tools/aclissues.py 以检测 Gerrit ACL 中潜在的遗留问题,这些问题允许直接标记或分支官方交付物,而无需经过 openstack/releases。您需要指定治理仓库和项目配置仓库的最新签出位置。例如
tools/aclissues.py ../project-config ../governance
如果该工具报告任何违规行为,可以使用 --patch 重新运行它,以生成 ../project-config 中所需的更改,以使 ACL 与治理保持一致,并提出更改以供审核。
发送以下每周电子邮件内容
Development Focus
-----------------
We are now past the $SERIES-2 milestone, and entering the last development
phase of the cycle. Teams should be focused on implementing planned work
for the cycle.
Now is a good time to review those plans and reprioritize anything if
needed based on the what progress has been made and what looks realistic
to complete in the next few weeks.
General Information
-------------------
Looking ahead to the end of the release cycle, please be aware of the
feature freeze dates. Those vary depending on deliverable type:
* General libraries (except client libraries) need to have their last
feature release before Non-client library freeze ($nclfreeze). Their
stable branches are cut early.
* Client libraries (think python-*client libraries) need to have their
last feature release before Client library freeze ($milestone3)
* Deliverables following a cycle-with-rc model (that would be most
services) observe a Feature freeze on that same date, $milestone3.
Any feature addition beyond that date should be discussed on the
mailing-list and get PTL approval. After feature freeze, cycle-with-rc
deliverables need to produce a first release candidate (and a stable
branch) before RC1 deadline ($rc1-deadline)
* Deliverables following cycle-with-intermediary model can release as
necessary, but in all cases before Final RC deadline ($final-rc-deadline)
Upcoming Deadlines & Dates
--------------------------
Non-client library freeze: $nclfreeze (R-6 week)
Client library freeze: $milestone3 (R-5 week)
$SERIES-3 milestone: $milestone3 (R-5 week)
$other-upcoming-event
审查任何剩余的 milestone-2 例外情况
确保 milestone-2 发布的要求仓库中的所有新发布补丁都已合并。此列表应为空
https://review.opendev.org/q/project:openstack/requirements+branch:master+is:open+topic:new-release
现在我们已经通过了 MembershipFreeze,我们应该检查 OpenStack 地图是否需要更新以反映未来的最终发布内容。如果需要任何更改,应将其作为对 openinfra/openstack-map 仓库的更改在 Gerrit 中提出。
根据期望的周数或确保周期在下一次开发者活动前几周结束,计划下一个发布周期计划。使用上一个周期的结束星期一以及计划的新周期的最后一周的星期一,使用工具 tools/list_weeks.py 生成发布计划 YAML 文件。例如
./tools/list_weeks.py t 2019-04-15 2019-10-16
生成的输出可用于设置计划,类似于为 Ussuri 发布 所做的那样。
注意
在将补丁推送到 gerrit 之前,使用 format-yaml doc/source/$series/schedule.yaml 检查一致性。
生成一个尚未在此周期内发布的中间发布的服务交付物列表。为此,请使用
tox -e venv -- list-deliverables --unreleased \
--model cycle-with-intermediary \
--type horizon-plugin --type other --type service
在上一个周期内仅发布一次,并且尚未发布的中间发布交付物是切换到带有 rc 的周期的良好候选者,这对于每个周期仅发布一次的交付物来说更合适。
注意
并非所有满足上述条件的可交付物都应鼓励更改发布模型。例如,如果每个周期的更改非常有限,则无需 RC 的单个发布可能就足够了。团队可能还希望保留每个周期发布多次的可能性。
应在发布会议期间审查可能满足条件的交付物,并针对所有可能有意义的交付物提出发布模型更改。PTL 和发布联络员可能会决定
立即发布中间版本(并 -1 提议的更改)
确认发布模型更改(+1 提议的更改)
对本周期将进行多少次发布保持不确定,但承认需要在 RC1 之前进行发布(-1 提议的更改)
发送以下每周电子邮件内容
General Information
-------------------
The following cycle-with-intermediary deliverables have not done any
intermediary release yet during this cycle. The cycle-with-rc release
model is more suited for deliverables that plan to be released only once
per cycle. As a result, we have proposed[1] to change the release model
for the following deliverables:
[ list of deliverables ]
[1] https://review.opendev.org/#/q/topic:$series-cwi
PTLs and release liaisons for each of those deliverables can either +1
the release model change, or propose an intermediary release for that
deliverable. In absence of answer by the end of R-10 week we'll consider
that the switch to cycle-with-rc is preferable.
We also published a proposed release schedule for the upcoming
$nextseries cycle. Please check out the separate thread:
[ link to thread ]
Upcoming Deadlines & Dates
--------------------------
Non-client library freeze: $nclfreeze (R-6 week)
Client library freeze: $milestone3 (R-5 week)
$SERIES-3 milestone: $milestone3 (R-5 week)
$other-upcoming-event
确保将下一个开发系列名称添加到 data/series_status.yaml 文件中。
发送以下每周电子邮件内容
Development Focus
-----------------
We are entering the last weeks of the $series development cycle. From
now until the final release, we'll send a countdown email like this
every week.
It's probably a good time for teams to take stock of their library and
client work that needs to be completed yet. The non-client library freeze
is coming up, followed closely by the client lib freeze. Please plan
accordingly to avoid any last minute rushes to get key functionality in.
General Information
-------------------
Next week is the Extra-AC freeze, in preparation for elections. All
contributions to OpenStack are valuable, but some are not expressed as
Gerrit code changes. Please list active contributors to your project team
who do not have a code contribution this cycle, and therefore won't
automatically be considered an Active Contributor and allowed
to vote. This is done by adding extra-acs to
https://opendev.org/openstack/governance/src/branch/master/reference/projects.yaml
before the Extra-AC freeze on $extraac.
A quick reminder of the upcoming freeze dates. Those vary depending on
deliverable type:
* Oslo libraries are entering feature freeze next week, $extraac.
* General libraries (except client libraries) need to have their last
feature release before Non-client library freeze ($nclfreeze). Their
stable branches are cut early.
* Client libraries (think python-*client libraries) need to have their
last feature release before Client library freeze ($milestone3)
* Deliverables following a cycle-with-rc model (that would be most
services) observe a Feature freeze on that same date, $milestone3. Any
feature addition beyond that date should be discussed on the mailing-list
and get PTL approval. After feature freeze, cycle-with-rc deliverables
need to produce a first release candidate (and a stable branch) before
RC1 deadline ($rc1-deadline)
* Deliverables following cycle-with-intermediary model can release as
necessary, but in all cases before Final RC deadline ($final-rc-deadline)
Finally, now is also a good time to start planning what highlights you
want for your deliverables in the cycle highlights. The deadline to
submit an initial version for those is set to one week after Feature
freeze ($highlights).
Background on cycle-highlights:
http://lists.openstack.org/pipermail/openstack-dev/2017-December/125613.html
Project Team Guide, Cycle-Highlights:
https://docs.openstack.org/project-team-guide/release-management.html#cycle-highlights
jeremy [at] openstack.org/fungi on IRC is available if you need
help selecting or writing your highlights.
Upcoming Deadlines & Dates
--------------------------
Extra-AC freeze: $extraac (R-7 week)
Oslo feature freeze: $extraac (R-7 week)
Non-client library freeze: $nclfreeze (R-6 week)
Client library freeze: $milestone3 (R-5 week)
$SERIES-3 milestone: $milestone3 (R-5 week)
Cycle highlights deadline: $highlights (R-4 week)
$other-upcoming-event
通知 Infrastructure 团队 生成工件签名密钥(但尚未替换当前密钥),并开始证明过程。
与技术委员会确认,已确定下一个开发周期的 Python 运行时,并且已创建 Zuul 作业模板以包含这些运行时。
即将到来的发布截止日期可能包括创建稳定分支。当执行该分支时,将向这些仓库的主分支提出自动补丁,以将其切换到下一个周期的作业模板。如果模板尚未定义,这些补丁将收到 Zuul 错误。重新检查失败的补丁将在定义模板后清除该错误,但最好避免任何错误,以确保及时批准补丁。
发送以下每周电子邮件内容
Development Focus
-----------------
Work on libraries should be wrapping up, in preparation for the various
library-related deadlines coming up. Now is a good time to make decisions
on deferring feature work to the next development cycle in order to be
able to focus on finishing already-started feature work.
General Information
-------------------
We are now getting close to the end of the cycle, and will be gradually
freezing feature work on the various deliverables that make up the
OpenStack release.
This coming week is the deadline for general libraries (except client
libraries): their last feature release needs to happen before "Non-client
library freeze" on $nclfreeze. Only bugfixes releases will be allowed
beyond this point.
When requesting those library releases, you can also include the
stable/$series branching request with the review (as an example, see the
"branches" section here:
https://opendev.org/openstack/releases/src/branch/master/deliverables/pike/os-brick.yaml#n2
In the next weeks we will have deadlines for:
* Client libraries (think python-*client libraries), which need to have
their last feature release before "Client library freeze" ($milestone3)
* Deliverables following a cycle-with-rc model (that would be most
services), which observe a Feature freeze on that same date, $milestone3.
Any feature addition beyond that date should be discussed on the
mailing-list and get PTL approval.
As we are getting to the point of creating stable/$series branches, this
would be a good point for teams to review membership in their
$project-stable-maint groups. Once the stable/$series branches are cut
for a repo, the ability to approve any necessary backports into those
branches for $series will be limited to the members of that stable team.
If there are any questions about stable policy or stable team membership,
please reach out in the #openstack-stable channel.
Upcoming Deadlines & Dates
--------------------------
Non-client library freeze: $nclfreeze (R-6 week)
Client library freeze: $milestone3 (R-5 week)
$SERIES-3 milestone: $milestone3 (R-5 week)
Cycle Highlights Due: $highlight (R-4 week)
$series final release: $release-date
$other-upcoming-event
为存在尚未包含在发布中的提交的周期性中间发布库(不包括客户端库)提出自动发布。
使用以下命令列出它们
./tools/list_library_unreleased_changes.sh > /tmp/cwiff.log
清理生成的列表以仅保留项目名称。
使用 process_auto_releases 生成补丁
./tools/process_auto_releases.sh $SERIES $(cat /tmp/cwiff.log)
警告
process_auto_releases 将要求您输入补丁的主题。请使用 $series-final-non-client-libs 作为主题。
该补丁将用作与团队沟通的基础:如果团队希望某个补丁进入库,团队成员可以 -1 该补丁以将其保留,或使用不同的提交 SHA 更新该补丁。
注意
此时,我们希望所有交付物中的更改,以确保在稍后创建稳定分支时 CI 配置是最新的。
如果他们准备好了,允许请求 stable/$series 分支,每个库的最终发布。此时不要强制分支,以防在冻结日期之后需要另一个批准的发布来解决关键问题。
从周二到周四,尽快合并获得 PTL 或发布联络人 +1 的补丁。
在周五,合并未获得 PTL 或发布联络人反馈的补丁。讨论持续的 -1,看看是否应该授予例外并等待下周。
在本周结束时,发送每周电子邮件内容,为 R-5 周做准备
Development Focus
-----------------
We are getting close to the end of the $series cycle! Next week on
$milestone3 is the $series-3 milestone, also known as feature freeze.
It's time to wrap up feature work in the services and their client
libraries, and defer features that won't make it to the $next-series cycle.
General Information
-------------------
This coming week is the deadline for client libraries: their last feature
release needs to happen before "Client library freeze" on $milestone3.
Only bugfix releases will be allowed beyond this point.
When requesting those library releases, you can also include the
stable/$series branching request with the review. As an example, see the
"branches" section here:
https://opendev.org/openstack/releases/src/branch/master/deliverables/pike/os-brick.yaml#n2
$milestone3 is also the deadline for feature work in all OpenStack
deliverables following the cycle-with-rc model. To help those projects
produce a first release candidate in time, only bugfixes should be allowed
in the master branch beyond this point. Any feature work past that deadline
has to be raised as a Feature Freeze Exception (FFE) and approved by the
team PTL.
Finally, feature freeze is also a good time for submitting a first version
of your cycle-highlights. Cycle highlights are the raw data that helps shape
what is communicated in press releases and other release activity at the
end of the cycle, avoiding direct contacts from marketing folks. See
https://docs.openstack.org/project-team-guide/release-management.html#cycle-highlights
for more details.
Upcoming Deadlines & Dates
--------------------------
$series-3 milestone (feature freeze): $milestone3 (R-5 week)
RC1 deadline: $rc1-deadline (R-3 week)
Final RC deadline: $final-rc-deadline (R-1 week)
Final $SERIES release: $release-date
$other-upcoming-event
处理任何剩余的库冻结例外情况。
确保要求仓库中的所有新发布补丁都已合并,用于库发布。此列表应为空
https://review.opendev.org/q/project:openstack/requirements+branch:master+is:open+topic:new-release
为 cycle-with-intermediary 客户端库(存在尚未包含在发布中的提交)提出自动发布 (process_auto_releases)。
使用以下命令列出它们
./tools/list_client_library_unreleased_changes.sh
警告
process_auto_releases 将要求您输入补丁的主题。请使用 $series-milestone-3 作为主题。
该补丁将用作与团队沟通的基础:如果团队希望某个补丁进入库,团队成员可以 -1 该补丁以将其保留,或使用不同的提交 SHA 更新该补丁。
如果他们准备好了,允许请求 stable/$series 分支,每个客户端库的最终发布。此时不要强制分支,以防在冻结日期之后需要另一个批准的发布来解决关键问题。
从周二到周四,尽快合并获得 PTL 或发布联络人 +1 的补丁。
在周五,合并未获得 PTL 或发布联络人反馈的补丁。讨论持续的 -1,看看是否应该授予例外并等待下周。
评估在整个周期内没有合并任何更改的任何非客户端库,以查看是否是时候 过渡到独立发布模型。
注意:客户端库(以及与其他交付物密切相关的其他库)通常应遵循其父交付物的发布模型,即使它们本身没有很多活动。
如果可以过渡,请提出将交付物文件移动到 _independent 目录。
如果不能过渡,请提出一个新的次要版本并从 HEAD 创建稳定分支。
可以按以下方式找到周期内未发布的 libraries 和 client-libraries 的完整列表
tox -e venv -- list-deliverables --unreleased --type library --type client-library
列出尚未发布的周期性中间发布交付物
tox -e venv -- list-deliverables --unreleased \
--model cycle-with-intermediary \
--type horizon-plugin --type other --type service
向拥有未发布交付物的团队发送单独的电子邮件,说明
Quick reminder that we'll need a release very soon for a number of
deliverables following a cycle-with-intermediary release model but which
have not done *any* release yet in the $series cycle:
{{list-of-deliverables}}
Those should be released ASAP, and in all cases before $rc1-deadline, so
that we have a release to include in the final $series release.
周五,提醒需求团队通过应用 -2 到所有未合并的补丁来冻结 openstack/requirements 的更改。确保审查者不要批准提案机器人创建的更改,但要批准新 OpenStack 交付物发布的更改。
在周结束时,发送 R-4 周的每周电子邮件内容。
注意:字符串冻结应用于 I18n 团队目标项目,并使用 cycle-with-rc 或 cycle-with-intermediary 发布模型
Development Focus
-----------------
We just passed feature freeze! Until release branches are cut, you
should stop accepting featureful changes to deliverables following the
cycle-with-rc release model, or to libraries. Exceptions should be
discussed on separate threads on the mailing-list, and feature freeze
exceptions approved by the team's PTL.
Focus should be on finding and fixing release-critical bugs, so that
release candidates and final versions of the $series deliverables can be
proposed, well ahead of the final $series release date.
General Information
-------------------
We are still finishing up processing a few release requests, but the
$series release requirements are now frozen. If new library releases are
needed to fix release-critical bugs in $series, you must request a
Requirements Freeze Exception (RFE) from the requirements team before we
can do a new release to avoid having something released in $series that
is not actually usable. This is done by posting to the openstack-discuss
mailing list with a subject line similar to:
[$PROJECT][requirements] RFE requested for $PROJECT_LIB
Include justification/reasoning for why a RFE is needed for this lib.
If/when the requirements team OKs the post-freeze update, we can then
process a new release.
A soft String freeze is now in effect, in order to let the I18N team do the
translation work in good conditions. In Horizon and the various dashboard
plugins, you should stop accepting changes that modify user-visible
strings. Exceptions should be discussed on the mailing-list. By
$rc-final-date this will become a hard string freeze, with no changes
in user-visible strings allowed.
Actions
-------
stable/$series branches should be created soon for all not-already-branched
libraries. You should expect 2-3 changes to be proposed for each: a
.gitreview update, a reno update (skipped for projects not using reno),
and a tox.ini constraints URL update. Please review those in priority
so that the branch can be functional ASAP.
The Prelude section of reno release notes is rendered as the top level
overview for the release. Any important overall messaging for $series
changes should be added there to make sure the consumers of your release
notes see them.
Upcoming Deadlines & Dates
--------------------------
RC1 deadline: $rc1-deadline (R-3 week)
Final RC deadline: $final-rc-deadline (R-1 week)
Final $SERIES release: $release-date
$other-upcoming-event
处理剩余的客户端库冻结例外情况。
确保客户端库发布的需求存储库中的所有新发布补丁都已合并。这应该是一个空列表
https://review.opendev.org/q/project:openstack/requirements+branch:master+is:open+topic:new-release
在周初,向 openstack-discuss 邮件列表发送电子邮件,提醒 PTL 们本周到期的 cycle-highlights,以便将其包含在发布营销准备中。
冻结所有基于周期的库发布,除了发布关键的错误之外。独立发布的库仍然可以发布,但约束或需求更改将保留到冻结期之后。
注意
不要发布没有链接到 openstack-discuss 消息的库,该消息请求需求 RFE,并从该团队获得批准回复。
为所有在冻结时未请求它的客户端和非客户端库,提出 stable/$series 分支创建。
可以使用以下命令
tox -e venv -- propose-library-branches --include-clients
警告
请使用 $series-stable-branches 作为 gerrit 主题。
在上述命令创建分支切分更改后,可以使用 tools/bulk_review.sh 脚本以单独的补丁形式提出它们,按团队分组。
该补丁将用作与团队沟通的基础:如果团队希望某个补丁进入库,团队成员可以 -1 该补丁以将其保留,或使用不同的提交 SHA 更新该补丁。
在周五,合并未获得 PTL 或发布联络人反馈的补丁。讨论持续的 -1,看看是否应该授予例外并等待下周。
列出过去 2 个月未刷新的 cycle-with-intermediary 交付物。为此,请使用以下命令,其中 YYYY-MM-DD 是两个月前的日期
tox -e venv -- list-deliverables --unreleased-since YYYY-MM-DD \
--model cycle-with-intermediary \
--type horizon-plugin --type other --type service
向拥有此类旧交付物的团队发送单独的电子邮件,说明
Quick reminder that for deliverables following the cycle-with-intermediary
model, the release team will use the latest $series release available on
release week.
The following deliverables have done a $series release, but it was not
refreshed in the last two months:
{{list_of_deliverables}}
You should consider making a new one very soon, so that we don't use an
outdated version for the final release.
在周结束时,发送每周电子邮件内容,为 R-3 周做准备
Development Focus
-----------------
The Release Candidate (RC) deadline is next Thursday, $rc1-deadline. Work
should be focused on fixing any release-critical bugs.
General Information
-------------------
All deliverables released under a cycle-with-rc model should have a first
release candidate by the end of the week, from which a stable/$series
branch will be cut. This branch will track the $series release.
Once stable/$series has been created, the master branch will be ready to
switch to $next-series development. While the master branch will no longer
be feature-frozen, please prioritize any work necessary for completing
$series plans. Release-critical bugfixes will need to be merged in the
master branch first, then backported to the stable/$series branch before
a new release candidate can be proposed.
Actions
-------
Early in the week, the release team will be proposing RC1 patches for all
cycle-with-rc projects, using the latest commit from the master branch.
If your team is ready to go for cutting RC1, please let us know by
leaving a +1 on these patches.
If there are still a few more patches needed before RC1, you can -1 the
patch and update it later in the week with the new commit hash you would
like to use. Remember, stable/$series branches will be created with this,
so you will want to make sure you have what you need included to avoid
needing to backport changes from the master branch (which will
technically then be $next-series) to this stable branch for any
additional RCs before the final release.
The release team will also be proposing releases for any deliverable
following a cycle-with-intermediary model that has not produced any $series
release so far.
Finally, now is a good time to finalize release highlights. Release
highlights help shape the messaging around the release and make sure that
your work is properly represented.
Upcoming Deadlines & Dates
--------------------------
RC1 deadline: $rc1-deadline (R-3 week)
Final RC deadline: $final-rc-deadline (R-1 week)
Final $SERIES release: $release-date
$other-upcoming-event
处理剩余的库分支例外情况。
在周一,为所有尚未有合适候选机的交付物生成发布请求。这包括
分支 devstack-plugin-* 交付物。通常 devstack 插件是无分支和无标签的,因此不在我们的管辖范围内,但是,有些只是无标签的,因此是必须分支的交付物。请使用 gerrit 主题 devstack-plugin-$series 来帮助跟踪它们。示例 https://review.opendev.org/c/openstack/releases/+/785180
尚未发布的 cycle-with-intermediary 交付物,应该从 HEAD 提出发布。除非交付物指定了“stable-branch-type: none”选项,否则应包括稳定分支创建。您可以使用以下命令列出它们
tox -e venv -- list-deliverables --unreleased \
--model cycle-with-intermediary \
--type horizon-plugin --type other --type service
注意
该命令列出了一些显然不需要发布的交付物(例如 requirements、release-tests)。如果有多个需要发布的交付物,则可以自由使用 process_auto_releases 来生成补丁。请使用 $series-cwi-not-released 作为主题。
尚未完成 RC1 的 cycle-with-rc,且不是尾随交付物,应该从 HEAD 提出发布,并包括稳定分支创建。您可以使用以下命令列出它们
tools/list_rc1.sh
使用 process_auto_releases 生成补丁。
警告
process_auto_releases 将要求您输入补丁的主题。请使用 $series-rc1-deadline 作为主题。
这些补丁将用作与团队沟通的基础:如果团队希望等待某个补丁发布,团队成员可以 -1 该补丁以将其保留,或使用不同的提交 SHA 更新该补丁。
从周二到周四,尽快合并获得 PTL 或发布联络人 +1 的补丁。
到周四结束时,我们理想情况下希望获得 PTL 和/或发布联络员的 +1 以表示批准。但是,我们将缺乏 -1 或其他负面反馈视为自动提出的补丁可以批准的指标。
在周五,合并未获得 PTL 或发布联络人反馈的补丁。讨论持续的 -1,看看是否应该授予例外并等待下周。
在周结束时,发送每周电子邮件内容,为 R-2 周做准备
Development Focus
-----------------
At this point we should have release candidates (RC1 or recent intermediary
release) for all the $series deliverables. Teams should be working on any
release-critical bugs that would require another RC or intermediary release
before the final release.
Actions
-------
Early in the week, the release team will be proposing stable/$series branch
creation for all deliverables that have not branched yet, using the latest
available $series release as the branch point. If your team is ready to go
for creating that branch, please let us know by leaving a +1 on these
patches.
If you would like to wait for another release before branching, you can -1
the patch and update it later in the week with the new release you would
like to use. By the end of the week the release team will merge those
patches though, unless an exception is granted.
Once stable/$series branches are created, if a release-critical bug is
detected, you will need to fix the issue in the master branch first, then
backport the fix to the stable/$series branch before releasing out of the
stable/$series branch.
After all of the cycle-with-rc projects have branched we will branch
devstack, grenade, and the requirements repos. This will effectively open
them up for $next-series development, though the focus should still be on
finishing up $series until the final release.
Opening up the new development cycle is also a good opportunity to teams
to revise their zuul jobs and used nodesets and clean up all unnecessary
ones.
For projects with translations, watch for any translation patches coming
through and merge them quickly. A new release should be produced so that
translations are included in the final $series release.
Finally, now is a good time to finalize release notes. In particular,
consider adding any relevant "prelude" content. Release notes are
targetted for the downstream consumers of your project, so it would be
great to include any useful information for those that are going to pick
up and use or deploy the $series version of your project.
Upcoming Deadlines & Dates
--------------------------
Final RC deadline: $final-rc-deadline (R-1 week)
Final $SERIES release: $release-date
$other-upcoming-event
处理所有待处理的 RC1 截止日期例外情况。
优雅地发布具有最新更改的 tempest 插件。Tempest 插件是无分支的,但是,它们应该至少在每个周期的末尾在其 HEAD 上发布(参见 旧的 cycle automatic 模型 和 tempest-plugin 类型)。
您可以使用以下命令预览未发布的更改
$ tox -e venv -- list-deliverables --type tempest-plugin
$ tools/list_unreleased_changes.sh wallaby <tempest-plugin-projects>
处理需要发布的自动发布。
$ tools/process_auto_releases.sh $series <tempest-plugin-projects-list>
警告
请使用 $series-tp-latest 作为 gerrit 主题。
在周一,为所有仍然缺少一个的周期交付物生成稳定分支。
您可以使用以下命令列出它们
tox -e venv -- list-deliverables --no-stable-branch --cycle-based-no-trailing
警告
请使用 $series-missing-stable-branches 作为 gerrit 主题。
这些补丁将用作与团队沟通的基础:如果团队希望等待并进行另一个发布,然后再切分分支,团队成员可以 -1 该补丁以将其保留,或更新该补丁以包含另一个发布和稳定分支点。
从周二到周四,尽快合并获得 PTL 或发布联络人 +1 的补丁。
在周五,合并未获得 PTL 或发布联络人反馈的补丁。讨论持续的 -1,看看是否应该授予例外并等待下周。
在所有默认情况下在 devstack 中启用的项目都已分支后,我们可以与 QA、I18n 和需求 PTL 沟通,以最终确定稳定分支设置
注意
可以从 governance 项目 或 release 项目 轻松检索 PTL 信息。
目前所有项目应该已经创建了分支,因为首先创建分支是允许我们分支需求的先决条件。您可以使用 tox -e venv -- list-deliverables --no-stable-branch --cycle-based-no-trailing 来确保所有项目都已分支,如果列表不为空,则表示某些项目缺少稳定的分支,应该提出补丁来创建它。需求团队期望此命令的输出为空,因此在输出为空之前不要继续到下一步。
注意
之前的命令会返回 requirements 可交付成果,但在此情况下可以忽略它,因为我们的目标是分支它。
如果之前的列表为空,则提醒 QA PTL 管理他们的发布职责(参考 https://wiki.openstack.org/wiki/QA/releases)。
注意
关于 QA 团队在 ussuri 周期中的更多示例,请参见此处 https://review.opendev.org/#/q/topic:qa-ussuri-release
注意
一旦 grenade 更新了新分支(请参阅后续 RC1 指令),没有稳定分支的项目可能会开始在其 grenade 作业中遇到问题,因为如果没有稳定分支,分支选择将导致作业运行 master->master 而不是 previous->master。在 Ocata 结束时,这给 Ironic 团队带来了麻烦,例如。
提醒 I18n SIG 负责人更新新稳定系列的翻译工具。
如果之前的列表为空,则我们可以提醒需求 PTL 提出更新可交付成果文件,以创建 stable/$series 分支,用于 openstack/requirements,然后提醒他宣布从 master 解除需求冻结。
注意
我们等待其他项目分支完毕后再创建 requirements 的分支,因为这些项目的稳定分支的测试将回退到使用 requirements 的 master 分支,直到创建相同的稳定分支,但如果 requirements 仓库的分支过早存在,其他项目在 master 上发生的更改将不会使用它,并且我们可能会在被测试的需求和声明为正确的需求之间出现差异。
确保所有发布发行说明的项目都在其可交付成果文件中包含发行说明链接。通过运行以下命令来完成:
tools/add_release_note_links.sh $series
然后提交更新后的可交付成果文件到一个补丁中,以更新文档。
让带有 RC 的周期项目根据需要迭代 RC。每个项目的最终发布候选版本需要在最终发布日期至少提前一周准备好。
注意
尽量避免创建超过 3 个发布候选版本,以免创建消费者随后被训练忽略的候选版本。每个发布候选版本应至少保留 1 天,因此如果有人提出创建 RCx 但清楚地有理由创建另一个版本,请延迟 RCX 以包含额外的补丁。知道他们需要额外发布候选版本的团队可以提交请求并将其标记为 WIP,直到实际准备好,以便发布团队知道会有更多的候选版本。
在周结束时,发送每周电子邮件内容,为 R-1 周做准备
Development Focus
-----------------
We are on the final mile of the $series development cycle!
Remember that the $series final release will include the latest release
candidate (for cycle-with-rc deliverables) or the latest intermediary
release (for cycle-with-intermediary deliverables) available.
$final-rc-deadline is the deadline for final $series release candidates
as well as any last cycle-with-intermediary deliverables. We will then
enter a quiet period until we tag the final release on $release-date.
Teams should be prioritizing fixing release-critical bugs, before that
deadline.
Otherwise it's time to start planning the $next-series development cycle,
including discussing Forum and PTG sessions content, in preparation of
$other-upcoming-event.
Actions
-------
Watch for any translation patches coming through on the stable/$series
branch and merge them quickly. If you discover a release-critical issue,
please make sure to fix it on the master branch first, then backport the
bugfix to the stable/$series branch before triggering a new release.
Please drop by #openstack-release with any questions or concerns about
the upcoming release !
Upcoming Deadlines & Dates
--------------------------
Final $SERIES release: $release-date
$other-upcoming-event
处理任何剩余的稳定分支异常。
通知技术委员会,应用文档发布流程以创建 docs.openstack.org 的新发布系列着陆页是安全的。如果他们等到大多数项目创建了稳定的分支,该流程会更好,但他们可以在最终发布日期之前完成工作,以避免在当天与发布团队同步。
注意
这项任务最初面向文档团队,但该团队不再存在。可以通过遵循 Documentation Contributor Guide 的 Update www pages for end of release 部分来完成此任务。
示例补丁:https://review.opendev.org/q/topic:www-dalmatian-final
(有关文档的更多信息,请参见以前的 Technical Writing SIG’s page)
在最终发布候选版本的截止日期前一天,提出需要的最后一分钟 RC
通过在 releases 仓库的工作目录中运行以下命令,检查带有 RC 的项目的未发布更改列表:
$ ./tools/list_rc_updates.sh
为那些具有未发布 bug 修复或更新的翻译的项目提出创建新 RC 的补丁。使用 process_auto_releases 生成补丁。
警告
process_auto_releases 会要求您输入补丁的主题。请使用 $series-final-rc 作为主题。
获得 PTL 或发布联络人 +1 的补丁应被批准。-1 将意味着 PTL 宁愿等待发布后稳定更新。在截止日期前未收到任何反馈的补丁应被放弃。
在周结束时,发送每周电子邮件内容,为 R-0 周做准备
Development Focus
-----------------
We will be releasing the coordinated OpenStack $series release next week,
on $release-date. Thanks to everyone involved in the $series cycle!
We are now in pre-release freeze, so no new deliverable will be created
until final release, unless a release-critical regression is spotted.
Otherwise, teams attending the PTG in $ptg-location should start to plan
what they will be discussing there, by creating and filling team etherpads.
You can access the list of PTG etherpads at:
http://ptg.openstack.org/etherpads.html
General Information
-------------------
On release day, the release team will produce final versions of
deliverables following the cycle-with-rc release model, by re-tagging
the commit used for the last RC.
A patch doing just that will be proposed. PTLs and release liaisons should
watch for that final release patch from the release team. While not
required, we would appreciate having an ack from each team before we
approve it on the 16th, so that their approval is included in the metadata
that goes onto the signed tag.
Upcoming Deadlines & Dates
--------------------------
Final $SERIES release: $release-date
$other-upcoming-event
在发送电子邮件后,使用 propose-final-releases 将现有的最新发布候选版本标记为使用 cycle-with-rc 模型项目的最终发布版本。
我们处于预发布冻结状态。只有发布关键的回归,或法律合规性问题,或使软件在发布当天安装和使用变得不可能的错误,才应由发布管理团队考虑预发布冻结例外情况。如果获得批准,预发布冻结例外情况应触发新的 RC(或带有中间发布)的生成,以及(如果需要)最终发布补丁的重新生成。
在发布当天冻结所有其他发布活动,在协调的发布进行中时,暂停稳定分支发布。
在周二,要求 infra 团队准备并合并临时 semaphore 删除补丁,以加快发布当天发布说明的发布速度。
在批准发布补丁前几个小时,确保所有可用的发布说明着陆页都存在(示例:https://review.opendev.org/c/openstack/releases/+/786374)
tools/add_release_note_links.sh $SERIES
在发布当天(大约 10:00 UTC),批准之前创建的最终发布补丁。在合并补丁之前,确保使用的 infras 正常运行,可以通过查看 https://status.python.org/ 并向我们的 infra 团队询问 openstack infra 的状况来做到这一点。
注意
这需要在基金会的新闻稿发布前几个小时完成(以便我们有时间处理故障),但不要太早(以免在新闻稿发布前一天发布)。
在最终补丁处理完成后,运行 missing-releases 脚本,在发布公告之前检查发布页面上是否缺少 tarball 文件。
tox -e venv -- missing-releases --series $SERIES
如果有任何缺失的交付物,请修复它们。
警告
process_auto_releases 会要求您输入补丁的主题。请使用 $series-final-missing-deliverables 作为主题。
在 13:00 UTC 之前,使用标记为已发布的系列更新文档页面。(例如:https://review.opendev.org/c/openstack/openstack-manuals/+/945319)
警告
文档页面大约需要 1 小时才能刷新,因此需要提前完成。
通过更新 doc/source/$series/index.rst、data\series_status.yaml,以及更改 openstack_releases/default.py 中的默认系列,在 releases.o.o 上将系列标记为已发布。
请参阅 https://review.opendev.org/#/c/727746 以获取示例。
注意
可以将此项作为最终发布补丁之上的补丁进行分阶段处理。
next-phase 日期应设置为声明的维护阶段后的第一个星期一。请参阅 https://docs.openstack.org/project-team-guide/stable-branches.html#maintenance-phases
根据 templates/final.txt,向 openstack-announce@lists.openstack.org 发送发布公告邮件。与基金会工作人员的媒体发布协调邮件发送时间。
向 openstack-discuss 邮件列表发送一封邮件,指向前一步的官方发布公告,并声明 openstack/releases 对新系列的发布不再冻结。
除非另有说明,本文档根据知识共享署名3.0许可协议授权。请参阅所有OpenStack法律文件。