ナビゲーションをスキップ

新バージョンのリリース

このページはGitHub Wikiページから自動生成されていることをご存知でしたか? こちらで改善できます!

始める前に

リリース手順は現在、GitHub Actionsワークフローの実行と、macOS(64ビット)でのリリースプロセスの完了のためのいくつかのスクリプトの実行を組み合わせたものです。必要なパッケージもインストールしてください。

GitHub Actionsを使用してリリースプロセスを開始する

リリースは現在ほとんど自動化されています(将来的には完全に自動化される予定です)。リリースを開始するには、GitHub Actionsリリースワークフローを実行するだけです。ワークフローは、すべてのネイティブライブラリと通常のjarのビルドを処理します。完了すると、すべてがnexusステージングリポジトリに自動的にステージングされます。GitHub Actionsリリースワークフローを監視し、完了するまで待ちます。

リリースを完了する

Netty 4.xリリースは、AdoptOpenJDKからダウンロードできるOpenJDK8を使用して実行する必要があります。ダウンロードしてインストールしたら、インストール先を指すJAVA8_HOME環境変数を設定します。

例:

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

これが完了したら、リリースを完了する準備ができました。

まず、現在のステージング済みリリースの名前を取得します(このリリースは、事前にGitHubワークフローによってステージングされています)。

./scripts/list_staged_release.sh

このステージングIDを使用して、リリースを完了するためのスクリプトを実行できます。スクリプトは、ステージングIDを最初の引数として、タグの名前を2番目の引数として受け取ります。たとえば、Netty 4.1.64.Finalのリリースを完了する場合は、次のコマンドを実行します。

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

スクリプトが完了すると、Netty自体のリリースは完了し、Maven Centralに「昇格」されます。

次に、すべてのapidocsファイルとxrefファイルをNetty Webサイトにコピーします(まだWebサイトをチェックアウトしていない場合は、[Webサイトの更新|Releasing-new-version#update-the-web-site]をお読みください)。

これには、実行する必要がある別のスクリプトがあります。

./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にログインして、検証失敗の原因を確認し、修正します。完了したら、スクリプトを再実行します。

Webサイトの更新

公式WebサイトはAwestructで構築されています。HAMLやMarkdownなどのAwestructと関連するマークアップ言語に精通していることを確認してください。

まだ行っていない場合は、Webサイトプロジェクトをクローンします。

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/フォルダに新しいエントリを追加します。ファイル名にドット(.)または空白を含めないでください(例:OK: 2014-07-04-4-1-0-Beta1-released.html.md NG: 2014-07-04-4.1.0.Beta1-released.html.md

生成されたWebサイトに新しいバージョンが表示されることを確認するために、Webサイトを生成してみてください。

これは次のように実行できます。

bundle exec awestruct -d -u https://netty.dokyumento.jp

これで、https://:4242からWebサイトにアクセスできるようになります。

すべてが期待どおりであれば、変更をコミットする時間です。

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

その後、WebサイトはGitHub Actionsによって自動的にビルドおよびデプロイされます。

TODO: 記述する

リリース手順はGitHub Actionsによって完全に自動化されています。リリースを開始するには、GitHub Actionsリリースワークフローを実行するだけです。ワークフローは、すべてのネイティブライブラリと通常のjarのビルドを処理します。完了すると、すべてがnexusステージングリポジトリに自動的にステージングされ、Central Mavenにリリースされます。

手動で行う必要はありませんが、リリースアナウンスを作成してWebサイトにプッシュすることを検討してください。

リリース手順はGitHub Actionsによって完全に自動化されています。リリースを開始するには、GitHub Actionsリリースワークフローを実行するだけです。ワークフローは、すべてのネイティブライブラリと通常のjarのビルドを処理します。完了すると、すべてがnexusステージングリポジトリに自動的にステージングされ、Central Mavenにリリースされます。

手動で行う必要はありませんが、リリースアナウンスを作成してWebサイトにプッシュすることを検討してください。

リリース手順はGitHub Actionsによって完全に自動化されています。リリースを開始するには、GitHub Actionsリリースワークフローを実行するだけです。ワークフローは、すべてのネイティブライブラリと通常のjarのビルドを処理します。完了すると、すべてがnexusステージングリポジトリに自動的にステージングされ、Central Mavenにリリースされます。

手動で行う必要はありませんが、リリースアナウンスを作成してWebサイトにプッシュすることを検討してください。

リリース手順は現在、GitHub Actionsワークフローの実行と、macOS(64ビット)でのリリースプロセスの完了のためのいくつかのスクリプトの実行を組み合わせたものです。必要なパッケージもインストールしてください。

GitHub Actionsを使用してリリースプロセスを開始する

リリースは現在ほとんど自動化されています(将来的には完全に自動化される予定です)。リリースを開始するには、GitHub Actionsリリースワークフローを実行するだけです。ワークフローは、すべてのネイティブライブラリと通常のjarのビルドを処理します。完了すると、すべてがnexusステージングリポジトリに自動的にステージングされます。GitHub Actionsリリースワークフローを監視し、完了するまで待ちます。

リリースを完了する

Netty/Incubator/Codec/Quicリリースは、AdoptOpenJDKからダウンロードできるOpenJDK8を使用して実行する必要があります。ダウンロードしてインストールしたら、インストール先を指すJAVA8_HOME環境変数を設定します。

例:

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

これが完了したら、リリースを完了する準備ができました。

まず、現在のステージング済みリリースの名前を取得します(このリリースは、事前にGitHubワークフローによってステージングされています)。

./scripts/list_staged_release.sh

このステージングIDを使用して、リリースを完了するためのスクリプトを実行できます。スクリプトは、ステージングIDを最初の引数として、タグの名前を2番目の引数として受け取ります。たとえば、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日