发布流程

发布流程

本文档描述了准备发布的相关流程和每周步骤。应根据团队的假期和其他承诺进行调整,并转化为发布周期内的明确行动计划。

上一版本发布后的周次

  1. 处理任何分支的交付物的延迟或阻塞的发布请求(将新的系列分支视为稳定)。

  2. 通过在下一个周期的目录中添加交付文件,为下一个发布周期做准备。删除最终没有发布的当前周期中的任何交付文件。然后运行以下命令,使用当前周期的交付物为下一个周期生成占位符

    tox -e venv -- init-series $SERIES $NEXT_SERIES
    

    使用 gerrit 主题 $series-init-series 提交您的更改。

    警告

    此时,上一系列的尾部交付物可能尚未发布。将它们添加到此处没有问题,但是我们应该保持警惕,并确保首先为上一系列创建新的发布。

  3. 与基础设施团队协调,更换上一周期的签名密钥并建立启动周期的新密钥。

  4. 使用 make-tracking-etherpad 命令创建 $series-relmgt-tracking etherpad。例如

    tox -e venv -- make-tracking-pad ussuri
    

    可以将此命令的输出粘贴到 $SERIES-relmgt-tracking etherpad 中。设置顶部部分标题格式。然后突出显示列出的所有周次并设置为 Heading 3 样式。填写其中一周的内容,然后将其复制并粘贴到后续的每一周,以准备其余周期。

  5. 通过电子邮件直接通知 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.
    
  6. 在周结束时,发送以下每周电子邮件内容

    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
    

里程碑 1 前的周次

  1. 检查周期尾部项目,查看哪些尚未发布。如果尚未发布,请要求他们准备发布。可以通过运行以下命令确定待处理的周期尾部交付物列表

    tox -e venv -- list-deliverables --series $LASTSERIES \
        --type trailing --missing-final
    
  2. 在周结束时,发送以下每周电子邮件内容

    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
    

里程碑 1

  1. 确保所有尾部项目都已为上一系列分支。

    • 使用以下命令列出未分支的项目

      tools/list_unbranched_projects.sh
      
    • 提出补丁以分支缺失的项目。

  2. 为自上一版本发布以来未发布的具有中间库的周期项目提出自动发布。

    • 使用以下命令列出它们

      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 的一个示例

      https://review.opendev.org/q/topic:%22w1-c-w-i%22

    • 从周二到周四,尽快合并获得 PTL 或发布联络人 +1 的补丁。

    • 在周五,合并未获得 PTL 或发布联络人反馈的补丁。讨论持续的 -1,看看是否应该授予例外并等待下周。

  3. 为了捕获新创建的存储库中是否存在 acl 问题,运行 tools/aclissues.py 以检测 Gerrit ACL 中潜在的遗留问题,这些问题允许直接标记或分支官方交付物,而无需经过 openstack/releases。您需要指定治理和项目配置存储库的最新签出位置。例如

    tools/aclissues.py ../project-config ../governance
    

    如果该工具报告任何违规行为,可以使用 --patch 重新运行它,以生成 ../project-config 中所需的更改,以使 ACL 与治理保持一致,并提出更改以供审核。

  4. 在周结束时,发送以下每周电子邮件内容

    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. 审查任何剩余的里程碑 1 例外

  2. 确保要求存储库中里程碑 1 发布的所有新发布补丁都已合并。这应该是一个空列表

    https://review.opendev.org/q/project:openstack/requirements+branch:master+is:open+topic:new-release

里程碑 1 和里程碑 2 之间

  1. 发送以下每周电子邮件内容

    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
    

里程碑 2 前的周次

  1. 在 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。

  2. 发送以下每周电子邮件内容

    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
    

里程碑 2

  1. 生成自 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 的示例

    https://review.opendev.org/q/topic:%22w2-c-w-i%22

  2. 为了检测新创建的仓库中是否存在 acl 问题,运行 tools/aclissues.py 以检测 Gerrit ACL 中潜在的遗留问题,这些问题允许直接标记或分支官方交付物,而无需经过 openstack/releases。您需要指定治理仓库和项目配置仓库的最新签出位置。例如

    tools/aclissues.py ../project-config ../governance
    

    如果该工具报告任何违规行为,可以使用 --patch 重新运行它,以生成 ../project-config 中所需的更改,以使 ACL 与治理保持一致,并提出更改以供审核。

  3. 发送以下每周电子邮件内容

    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 周后

  1. 审查任何剩余的 milestone-2 例外情况

  2. 确保 milestone-2 发布的要求仓库中的所有新发布补丁都已合并。此列表应为空

    https://review.opendev.org/q/project:openstack/requirements+branch:master+is:open+topic:new-release

  3. 现在我们已经通过了 MembershipFreeze,我们应该检查 OpenStack 地图是否需要更新以反映未来的最终发布内容。如果需要任何更改,应将其作为对 openinfra/openstack-map 仓库的更改在 Gerrit 中提出。

  4. 根据期望的周数或确保周期在下一次开发者活动前几周结束,计划下一个发布周期计划。使用上一个周期的结束星期一以及计划的新周期的最后一周的星期一,使用工具 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 检查一致性。

Milestone-2 和 Milestone-3 之间

  1. 生成一个尚未在此周期内发布的中间发布的服务交付物列表。为此,请使用

    tox -e venv -- list-deliverables --unreleased \
    --model cycle-with-intermediary \
    --type horizon-plugin --type other --type service
    

    在上一个周期内仅发布一次,并且尚未发布的中间发布交付物是切换到带有 rc 的周期的良好候选者,这对于每个周期仅发布一次的交付物来说更合适。

    注意

    并非所有满足上述条件的可交付物都应鼓励更改发布模型。例如,如果每个周期的更改非常有限,则无需 RC 的单个发布可能就足够了。团队可能还希望保留每个周期发布多次的可能性。

    应在发布会议期间审查可能满足条件的交付物,并针对所有可能有意义的交付物提出发布模型更改。PTL 和发布联络员可能会决定

    • 立即发布中间版本(并 -1 提议的更改)

    • 确认发布模型更改(+1 提议的更改)

    • 对本周期将进行多少次发布保持不确定,但承认需要在 RC1 之前进行发布(-1 提议的更改)

  2. 发送以下每周电子邮件内容

    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
    

R-8 周

  1. 确保将下一个开发系列名称添加到 data/series_status.yaml 文件中。

  2. 发送以下每周电子邮件内容

    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
    

R-7 周(额外 AC 截止日期周)

  1. 通知 Infrastructure 团队 生成工件签名密钥(但尚未替换当前密钥),并开始证明过程。

  2. 与技术委员会确认,已确定下一个开发周期的 Python 运行时,并且已创建 Zuul 作业模板以包含这些运行时。

    即将到来的发布截止日期可能包括创建稳定分支。当执行该分支时,将向这些仓库的主分支提出自动补丁,以将其切换到下一个周期的作业模板。如果模板尚未定义,这些补丁将收到 Zuul 错误。重新检查失败的补丁将在定义模板后清除该错误,但最好避免任何错误,以确保及时批准补丁。

  3. 发送以下每周电子邮件内容

    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
    

R-6 周(最终库发布截止日期)

  1. 为存在尚未包含在发布中的提交的周期性中间发布库(不包括客户端库)提出自动发布。

    • 使用以下命令列出它们

      ./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,看看是否应该授予例外并等待下周。

  2. 在本周结束时,发送每周电子邮件内容,为 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
    

R-5 周(Milestone-3)

  1. 处理任何剩余的库冻结例外情况。

  2. 确保要求仓库中的所有新发布补丁都已合并,用于库发布。此列表应为空

    https://review.opendev.org/q/project:openstack/requirements+branch:master+is:open+topic:new-release

  3. 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,看看是否应该授予例外并等待下周。

  4. 评估在整个周期内没有合并任何更改的任何非客户端库,以查看是否是时候 过渡到独立发布模型

    注意:客户端库(以及与其他交付物密切相关的其他库)通常应遵循其父交付物的发布模型,即使它们本身没有很多活动。

    如果可以过渡,请提出将交付物文件移动到 _independent 目录。

    如果不能过渡,请提出一个新的次要版本并从 HEAD 创建稳定分支。

    可以按以下方式找到周期内未发布的 librariesclient-libraries 的完整列表

    tox -e venv -- list-deliverables --unreleased --type library --type client-library
    
  5. 列出尚未发布的周期性中间发布交付物

    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.
    
  6. 周五,提醒需求团队通过应用 -2 到所有未合并的补丁来冻结 openstack/requirements 的更改。确保审查者不要批准提案机器人创建的更改,但要批准新 OpenStack 交付物发布的更改。

  7. 在周结束时,发送 R-4 周的每周电子邮件内容。

    注意:字符串冻结应用于 I18n 团队目标项目,并使用 cycle-with-rccycle-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
    

R-4 周

  1. 处理剩余的客户端库冻结例外情况。

  2. 确保客户端库发布的需求存储库中的所有新发布补丁都已合并。这应该是一个空列表

    https://review.opendev.org/q/project:openstack/requirements+branch:master+is:open+topic:new-release

  3. 在周初,向 openstack-discuss 邮件列表发送电子邮件,提醒 PTL 们本周到期的 cycle-highlights,以便将其包含在发布营销准备中。

  4. 冻结所有基于周期的库发布,除了发布关键的错误之外。独立发布的库仍然可以发布,但约束或需求更改将保留到冻结期之后。

    注意

    不要发布没有链接到 openstack-discuss 消息的库,该消息请求需求 RFE,并从该团队获得批准回复。

  5. 为所有在冻结时未请求它的客户端和非客户端库,提出 stable/$series 分支创建。

    • 可以使用以下命令

      tox -e venv -- propose-library-branches --include-clients
      

      警告

      请使用 $series-stable-branches 作为 gerrit 主题。

      在上述命令创建分支切分更改后,可以使用 tools/bulk_review.sh 脚本以单独的补丁形式提出它们,按团队分组。

    • 该补丁将用作与团队沟通的基础:如果团队希望某个补丁进入库,团队成员可以 -1 该补丁以将其保留,或使用不同的提交 SHA 更新该补丁。

    • 在周五,合并未获得 PTL 或发布联络人反馈的补丁。讨论持续的 -1,看看是否应该授予例外并等待下周。

  6. 列出过去 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.
    
  7. 在周结束时,发送每周电子邮件内容,为 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
    

R-3 周(RC1 截止日期)

  1. 处理剩余的库分支例外情况。

  2. 在周一,为所有尚未有合适候选机的交付物生成发布请求。这包括

    • 分支 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,看看是否应该授予例外并等待下周。

  3. 在周结束时,发送每周电子邮件内容,为 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
    

R-2 周

  1. 处理所有待处理的 RC1 截止日期例外情况。

  2. 优雅地发布具有最新更改的 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 主题。

  3. 在周一,为所有仍然缺少一个的周期交付物生成稳定分支。

    • 您可以使用以下命令列出它们

      tox -e venv -- list-deliverables --no-stable-branch --cycle-based-no-trailing
      

      警告

      请使用 $series-missing-stable-branches 作为 gerrit 主题。

    • 这些补丁将用作与团队沟通的基础:如果团队希望等待并进行另一个发布,然后再切分分支,团队成员可以 -1 该补丁以将其保留,或更新该补丁以包含另一个发布和稳定分支点。

    • 从周二到周四,尽快合并获得 PTL 或发布联络人 +1 的补丁。

    • 在周五,合并未获得 PTL 或发布联络人反馈的补丁。讨论持续的 -1,看看是否应该授予例外并等待下周。

  4. 在所有默认情况下在 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 上发生的更改将不会使用它,并且我们可能会在被测试的需求和声明为正确的需求之间出现差异。

  5. 确保所有发布发行说明的项目都在其可交付成果文件中包含发行说明链接。通过运行以下命令来完成:

    tools/add_release_note_links.sh $series
    

    然后提交更新后的可交付成果文件到一个补丁中,以更新文档。

    示例:https://review.opendev.org/#/c/723540/

  6. 让带有 RC 的周期项目根据需要迭代 RC。每个项目的最终发布候选版本需要在最终发布日期至少提前一周准备好。

    注意

    尽量避免创建超过 3 个发布候选版本,以免创建消费者随后被训练忽略的候选版本。每个发布候选版本应至少保留 1 天,因此如果有人提出创建 RCx 但清楚地有理由创建另一个版本,请延迟 RCX 以包含额外的补丁。知道他们需要额外发布候选版本的团队可以提交请求并将其标记为 WIP,直到实际准备好,以便发布团队知道会有更多的候选版本。

  7. 在周结束时,发送每周电子邮件内容,为 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
    

R-1 周(最终 RC 截止日期)

  1. 处理任何剩余的稳定分支异常。

  2. 通知技术委员会,应用文档发布流程以创建 docs.openstack.org 的新发布系列着陆页是安全的。如果他们等到大多数项目创建了稳定的分支,该流程会更好,但他们可以在最终发布日期之前完成工作,以避免在当天与发布团队同步。

    注意

    这项任务最初面向文档团队,但该团队不再存在。可以通过遵循 Documentation Contributor GuideUpdate www pages for end of release 部分来完成此任务。

    示例补丁:https://review.opendev.org/q/topic:www-dalmatian-final

    (有关文档的更多信息,请参见以前的 Technical Writing SIG’s page)

  3. 在最终发布候选版本的截止日期前一天,提出需要的最后一分钟 RC

    • 通过在 releases 仓库的工作目录中运行以下命令,检查带有 RC 的项目的未发布更改列表:

      $ ./tools/list_rc_updates.sh
      
    • 为那些具有未发布 bug 修复或更新的翻译的项目提出创建新 RC 的补丁。使用 process_auto_releases 生成补丁。

      警告

      process_auto_releases 会要求您输入补丁的主题。请使用 $series-final-rc 作为主题。

    • 获得 PTL 或发布联络人 +1 的补丁应被批准。-1 将意味着 PTL 宁愿等待发布后稳定更新。在截止日期前未收到任何反馈的补丁应被放弃。

  4. 在周结束时,发送每周电子邮件内容,为 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
    
  5. 在发送电子邮件后,使用 propose-final-releases 将现有的最新发布候选版本标记为使用 cycle-with-rc 模型项目的最终发布版本。

R+0 周(最终发布)

  1. 我们处于预发布冻结状态。只有发布关键的回归,或法律合规性问题,或使软件在发布当天安装和使用变得不可能的错误,才应由发布管理团队考虑预发布冻结例外情况。如果获得批准,预发布冻结例外情况应触发新的 RC(或带有中间发布)的生成,以及(如果需要)最终发布补丁的重新生成。

  2. 在发布当天冻结所有其他发布活动,在协调的发布进行中时,暂停稳定分支发布。

  3. 在周二,要求 infra 团队准备并合并临时 semaphore 删除补丁,以加快发布当天发布说明的发布速度。

  4. 在批准发布补丁前几个小时,确保所有可用的发布说明着陆页都存在(示例:https://review.opendev.org/c/openstack/releases/+/786374

    tools/add_release_note_links.sh $SERIES
    
  5. 在发布当天(大约 10:00 UTC),批准之前创建的最终发布补丁。在合并补丁之前,确保使用的 infras 正常运行,可以通过查看 https://status.python.org/ 并向我们的 infra 团队询问 openstack infra 的状况来做到这一点。

    注意

    这需要在基金会的新闻稿发布前几个小时完成(以便我们有时间处理故障),但不要太早(以免在新闻稿发布前一天发布)。

  6. 在最终补丁处理完成后,运行 missing-releases 脚本,在发布公告之前检查发布页面上是否缺少 tarball 文件。

    tox -e venv -- missing-releases --series $SERIES
    

    如果有任何缺失的交付物,请修复它们。

    警告

    process_auto_releases 会要求您输入补丁的主题。请使用 $series-final-missing-deliverables 作为主题。

  7. 在 13:00 UTC 之前,使用标记为已发布的系列更新文档页面。(例如:https://review.opendev.org/c/openstack/openstack-manuals/+/945319

    警告

    文档页面大约需要 1 小时才能刷新,因此需要提前完成。

  8. 通过更新 doc/source/$series/index.rstdata\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

  9. 根据 templates/final.txt,向 openstack-announce@lists.openstack.org 发送发布公告邮件。与基金会工作人员的媒体发布协调邮件发送时间。

  10. 向 openstack-discuss 邮件列表发送一封邮件,指向前一步的官方发布公告,并声明 openstack/releases 对新系列的发布不再冻结。

Creative Commons Attribution 3.0 License

除非另有说明,本文档根据知识共享署名3.0许可协议授权。请参阅所有OpenStack法律文件