Frrouting学习笔记(七)——发布程序

本篇翻译自doc/developer/frr-release-procedure.rst

``<version>`` - 即将发布的版本,例如 7.3

``origin`` - FRR 上游存储库

一、第 1 阶段 - 准备

  1. 为新版本准备更新日志

        注意:使用 ``tools/release_notes.py``来帮助起草发行说明更新日志

     2.检测现有的  ``dev/<version>`` 分支。

        git checkout dev/<version>

     3.根据  ``dev/<version>`` 分支创建并推送一个名为  ``stable/<version>`` 的新分支。

        git checkout -b stable/<version>

     4.删除名为``dev/<version>``的开发分支

        git push origin --delete dev/<version>

     5.更新 Red Hat 软件包的更新日志:

        编辑  :file:`redhat/frr.spec.in`  并查找  ``%changelog`` 部分:

        5.1 将最后一个(列表顶部)条目从``%{version}``更改为上次发布的版本号。例如,如果  ``<version>`` ``7.3``,而最后一个公开版本是 ``7.2``,则可以使用  ``7.2``,更改文件,如下所示:

        * Tue Nov 7 2017 Martin Winter <mwinter@opensourcerouting.org> - %{version}

        改为

        * Tue Nov 7 2017 Martin Winter <mwinter@opensourcerouting.org> - 7.2

​​​​​​​        5.2. 在列表顶部添加带有“%{version}”标记的新条目。请务必注意格式,即日期始终为 2 个字符,如果日期为 1 位数字,则第 1 个字符为空格。

​​​​​​​​​​​​​​        5.3. 在此条目下方添加更改日志文本。

        6. 更新 Debian 软件包的更新日志:

        更新 :file:`debian/changelog`:

  • 使用最后的发行版号和debian修订版(通常为-1)作为``dch --newversion VERSION``的参数运行以下命令。例如,如果  ``<version>`` 为  ``7.3``,则将运行  ``dch --newversion 7.3-1``
  • ​​​​​​​``dch`` 将运行一个编辑器,您应该在此条目下方添加更改日志文本,通常为:**New upstream version**
  • ​​​​​​​使用 ``dpkg-parsechangelog`` 验证变更日志格式。在存储库根目录中:

                dpkg-parsechangelog

   您应该看到如下输出:

        7.提交更改,将更改日志添加到提交消息中。遵循所有现有的提交准则。提交消息应类似于:

                debian, redhat: updating changelog for new release

        8. 更改主版本号:

        8.1 编辑  :file:'configure.ac' 并将 ``AC_INIT``  命令中的版本更改为  ``<version>``

         添加并提交此更改。此提交应与包含更改日志的提交分开。提交消息应为:

                FRR Release <version>

         版本字段应完整;即对于``8.0.0``,版本应为``8.0.0``,而不是``8.0``或``8``。

二、第 2 阶段 - 暂存

  1. 将稳定分支推送到以``rc``: 为前缀的新远程分支:

                git push origin stable/<version>:rc/version

        这将触发 NetDEF CI,该 CI 用作发布分支上的健全性检查。验证所有测试是否通过,以及所有包生成是否成功。为此,请转到位于此处的 NetDEF CI:

   https://ci1.netdef.org/browse/FRR-FRR

        在左上角的``Plan branch``下拉列表中查找``rc-<version>``。选择此版本。请注意,CI 可能需要几分钟时间才能启动此新分支并显示在列表中。

        2.推送稳定分支:

                git push origin stable/<version>:refs/heads/stable/<version>

        3. 为版本创建并推送 git 标签:

                git tag -a frr-<version> -m "FRRouting Release <version>"

        4. 基于 ``master`` 创建一个新分支,挑选之前添加更改日志的提交,并使用它来创建针对  ``master`` 的 PR。这样,``master``就有了下一个周期的最新更新日志。

        5. 在 CI 系统上启动"Release"构建计划,以获得正确的发布。有关此步骤,请联系 Martin Winter。确保所有发布包都成功生成。

        6. 启动该版本的 Snapcraft 构建计划。

三、第 3 阶段 - 发布

  1. 将 Debian 和 RPM 软件包上传到各自的存储库。
  2. 与 FRR 的 RPM 存储库的维护者协调,以在该存储库上发布 RPM 包。更新存储库网页。验证网页上的说明是否有效,以及 FRR 是否可以从 Red Hat 系统的存储库安装。

        当前维护者: *Martin Winter*

        3.与 FRR Debian 软件包的维护者协调,在该存储库上发布 Debian 软件包。更新存储库网页。验证网页上的说明是否有效,以及 FRR 是否可以从 Debian 系统的存储库安装。

        当前维护者: *Jafar Al-Gharaibeh*

        4.登录到 Read The Docs 实例。 在“FRRouting”项目中,导航到“概述”选项卡。 确保列出了“stable-<version>”版本并已启用该版本。转到“管理员”,然后转到“高级设置”。将“默认版本”更改为新版本。这样可以确保默认情况下向访问者显示的文档是最新版本的文档。

        此步骤必须由对“读取文档”实例具有管理访问权限的人员执行。

        5.在 GitHub 上,转到 <https://github.com/FRRouting/frr/releases>_ 并单击“起草新版本”。编写发布公告。发布公告应遵循本文档旁边的“release-announcement-template.md”中的模板。检查拼写错误,并可选择(但最好)让其他维护人员校对公告文本。

        不要将任何包或源码压缩包附加到 GitHub 版本。 审核后发布版本。

        6. 部署 Snapcraft 版本。请记住,这将自动升级 Snap 用户。

        当前维护者:  *Martin Winter*

        7.生成并发布 Docker 容器。

        当前维护者: *Quentin Young*

        8.克隆  ``frr-www`` 存储库:

                git clone https://github.com/FRRouting/frr-www.git

        9. 使用以前的公告作为模板添加新的发布公告:

                cp content/release/<old-version>.md content/release/<new-version>.md

           将 GitHub 发布公告文本粘贴到此文档中,并删除换行符。换句话说,这是:

                This is one continous

                sentence that should be

                rendered on one line

          需要改成这样:

                      This is one continous sentence that should be rendered on one line

        这非常重要,否则公告将无法在网站上阅读。

        要获取提交者和提交的数量,这里有几个方便的命令:

                # The number of commits

                %git log --oneline --no-merges base_8.2...base_8.1 | wc -l

                # The number of commiters

                %git shortlog --summary --no-merges base_8.2...base_8.1 | wc -l

        请确保在顶部添加指向 GitHub 版本页面的链接。

        10.在 frrouting.org Web 服务器上部署更新的“frr-www”,并验证公告文本是否可见。

        11. https://docs.frrouting.org 的更新 readthedocs.org(默认版本)是此最新版本的版本。

        12. 发送电子邮件至 “announce@lists.frrouting.org”。这封电子邮件的文本应包括 GitHub 版本中的适当文本,以及指向 GitHub 版本、Debian 存储库和 RPM 存储库的链接。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JSP(JavaServer Pages)是一种服务器端的动态网页开发技术,它可以将 Java 代码嵌入 HTML 页面中,从而实现动态网页的生成。 JSP 的基本原理是将 JSP 页面翻译成 Servlet,在服务器端执行 Servlet 代码,再将执行结果返回给客户端。因此,我们在使用 JSP 开发网页时,需要先了解 Servlet 的相关知识。 JSP 的语法基本上就是 HTML 标签加上 Java 代码。以下是一些基本的 JSP 标签: 1. <% ... %>:嵌入 Java 代码,可以用于定义变量、写循环、判断语句等。 2. <%= ... %>:输出 Java 代码的执行结果。 3. <%-- ... --%>:注释,不会被翻译成 Servlet。 4. <jsp:include ... />:包含其他 JSP 页面或 HTML 页面。 5. <jsp:forward ... />:将请求转发到其他资源(JSP 页面、Servlet 或 HTML 页面)。 6. <jsp:useBean ... />:创建 JavaBean 对象。 7. <jsp:setProperty ... />:为 JavaBean 对象设置属性。 8. <jsp:getProperty ... />:取得 JavaBean 对象的属性值。 在 JSP 页面中,我们还可以使用 EL 表达式和 JSTL 标签库来简化代码编写,提高开发效率。 EL(Expression Language)表达式是一种简化的表达式语言,可以用于取值、赋值、计算等操作。例如,${name} 表示取得名为 name 的变量的值。 JSTL(JavaServer Pages Standard Tag Library)是一套标签库,提供了循环、条件判断、格式化、国际化等常用功能的标签。例如,<c:forEach> 标签可以用于循环遍历集合,<c:if> 标签可以用于条件判断。 除了以上标签库,JSP 还支持自定义标签库。我们可以通过编写标签处理器来扩展 JSP 的功能。 JSP 的优点是可以将 Java 代码嵌入 HTML 页面中,使得网页的开发更加灵活和方便。但是,由于 JSP 页面需要翻译成 Servlet,因此会增加服务器的负担和响应时间。此外,JSP 页面中夹杂着 Java 代码,也不利于代码的维护和调试。因此,在开发大型网站时,建议使用 MVC 设计模式,将业务逻辑和视图分离,使得代码更加清晰和易于维护。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值