跳过导航

发布新版本

您是否知道此页面是从 Github Wiki 页面 自动生成的?您可以在 此处 自行改进!

开始之前

  • 阅读 Sonatype 的 OSSRH 指南。

  • 创建 GnuPG 密钥来对工件进行签名。

  • 配置您的 ~/.m2/settings.xml 包含以下配置

    <?xml version="1.0" encoding="UTF-8"?>
    <settings>
      <servers>
        <server>
          <id>sonatype-nexus-snapshots</id>
          <username>myusername</username>
          <password>mypassword</password>
        </server>
        <server>
          <id>sonatype-nexus-staging</id>
          <username>myusername</username>
          <password>mypassword</password>
        </server>
      </servers>
      ...
    </settings>

发布过程目前是执行 GitHub Action 工作流和运行一些脚本以完成 macOS(64 位)上的发布过程的混合。同样安装 必需的软件包

使用 GitHub Actions 启动发布过程

现在发布过程大部分是自动化的(并且希望在未来完全自动化)。要开始发布,您需要做的就是运行 GitHub Action 发布工作流。该工作流将负责构建所有本机库以及正常的 jar。完成后,它会自动将所有内容暂存到 nexus 暂存存储库。监视 GitHub Action 发布工作流 并等到它完成。

完成发布

Netty 4.x 版本必须使用 OpenJDK8 发布,该版本可从 AdoptOpenJDK 下载。下载并安装后,创建一个指向安装位置的 JAVA8_HOME 环境。

例如

export JAVA8_HOME=/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home

完成后,即可完成发布。

首先获取当前暂存版本名称(此版本之前由 GitHub 工作流暂存)。

./scripts/list_staged_release.sh

现在,使用此暂存 ID,可以运行脚本完成发布。脚本将暂存 ID 作为第一个参数,将标记名称作为第二个参数。例如,如果您要尝试完成 netty 4.1.64.Final 的发布,则将运行以下命令

./scripts/finish_release.sh ionetty-1395 netty-4.1.64.Final

脚本完成后,netty 本身的发布即已完成,并且将被“提升”到 maven central。

现在是时候将所有 apidocs 和 xref 文件复制到 netty 网站(如果您尚未签出网站,请阅读 [更新网站|发布新版本#更新网站])。

为此,您需要运行另一个脚本

./scripts/generate_docs.sh ../netty-website netty-4.1.64.Final

如果发生故障,该怎么办?

由于验证失败,scripts/finish_release.sh 可能会失败

[ERROR] Failed to execute goal org.sonatype.plugins:nexus-staging-maven-plugin:1.6.8:rc-close (default-cli) on project netty-parent: Could not perform action: there are failing staging rules!: Staging rules failure! -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn <args> -rf :netty-parent

在这种情况下,登录 https://oss.sonatype.org 并检查验证失败的原因并修复它。完成后,重新运行脚本。

更新网站

我们的官方网站是使用 Awestruct 构建的。请确保您熟悉 Awestruct 及其相关的标记语言,例如 HAML 和 Markdown。

如果您尚未执行此操作,请克隆网站项目

git clone [email protected]:netty/netty-website.git
cd netty-website

如果您尚未安装 Awestruct,最简单的方法是使用 bundler

gem install bundler

完成后,请确保通过在 netty-website 目录中执行 bundle 安装所有依赖项。这将负责安装所有必需的依赖项和 Awestruct 本身。请注意,如果您不希望 bundler 在系统范围内安装依赖项,则可以通过在 netty-website 目录中运行 bundle config set --local path .bundle 来告诉它将它们保留在 netty-website 目录的本地。

bundle

_config/site.yml 包含有关最新 Netty 版本的重要元数据。例如,它具有以下部分

releases:
  - version: 4.1.65.Final
    date: 19-May-2021
    stable: stable
  - version: 4.0.56.Final
    date: 05-Feb-2018
    stable: true
  - version: 3.10.6.Final
    date: 29-Jun-2016
    stable: true

使用新版本号和发布日期对其进行更新。

在此之后,向 news/ 文件夹添加一个包含发布详细信息的新条目。确保文件名不包含点 (.) 或空格(例如,可以:2014-07-04-4-1-0-Beta1-released.html.md,不可以:2014-07-04-4.1.0.Beta1-released.html.md

尝试生成网站以确认新版本显示在生成的网站中。

可以通过以下方式完成此操作

bundle exec awestruct -d -u https://netty.java.net.cn

现在,您应该可以通过 http://localhost:4242 访问该网站。

如果一切都符合预期,则可以提交更改

git add *
git commit -m "Release 4.1.64.Final"
git push

在此之后,网站将由 GitHub 操作自动构建和部署。

TODO: 编写我

发布过程通过 GitHub 操作完全自动化。要启动发布,您需要做的就是运行 GitHub 操作发布工作流。该工作流将负责构建所有本机库以及普通 jar。完成后,它会自动将所有内容暂存到 nexus 暂存存储库 并将其发布到中央 maven。

无需手动执行任何操作,也就是说,您可以考虑撰写发布公告并将其推送到网站。

发布过程通过 GitHub 操作完全自动化。要启动发布,您需要做的就是运行 GitHub 操作发布工作流。该工作流将负责构建所有本机库以及普通 jar。完成后,它会自动将所有内容暂存到 nexus 暂存存储库 并将其发布到中央 maven。

无需手动执行任何操作,也就是说,您可以考虑撰写发布公告并将其推送到网站。

发布过程通过 GitHub 操作完全自动化。要启动发布,您需要做的就是运行 GitHub 操作发布工作流。该工作流将负责构建所有本机库以及普通 jar。完成后,它会自动将所有内容暂存到 nexus 暂存存储库 并将其发布到中央 maven。

无需手动执行任何操作,也就是说,您可以考虑撰写发布公告并将其推送到网站。

发布过程目前是执行 GitHub Action 工作流和运行一些脚本以完成 macOS(64 位)上的发布过程的混合。同样安装 必需的软件包

使用 GitHub Actions 启动发布过程

现在,发布过程大多是自动化的(并且希望在未来完全自动化)。要开始发布,您需要做的就是运行 GitHub Action 发布工作流。该工作流将负责构建所有本机库以及普通 jar。完成后,它会自动将所有内容暂存到 nexus 暂存存储库 中。监视 GitHub Action 发布工作流 并等到它完成。

完成发布

Netty/Incubator/Codec/Quic 发布必须使用 OpenJDK8 完成,该版本可以从 AdoptOpenJDK 下载。下载并安装后,创建一个指向该安装的 JAVA8_HOME env。

例如

export JAVA8_HOME=/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home

完成后,即可完成发布。

首先获取当前暂存版本名称(此版本之前由 GitHub 工作流暂存)。

./scripts/list_staged_release.sh

现在,有了此暂存 ID,您可以运行脚本以完成发布。该脚本将暂存 ID 作为第一个参数,将标记的名称作为第二个参数。因此,例如,如果您尝试完成 netty-incubator-codec-quic 0.0.13.Final 的发布,您将运行以下命令

./scripts/finish_release.sh ionetty-1398 netty-incubator-codec-quic-0.0.13.Final

脚本完成后,netty 本身的发布即已完成,并且将被“提升”到 maven central。

上次检索于 2024 年 7 月 19 日