發布新版本
-
設定你的
~/.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 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
目錄中執行 bundled。此步驟將安裝所有必要的相依性與 Awestruct 本身。請注意,如果您不希望 Bundler 系統性地安裝相依性,您可以在 netty-website
目錄中執行 bundle config set --local path .bundle
來指示 Bundler 將相依性保留在本機。
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.dev.org.tw
現在您應可透過 https://127.0.0.1:4242 存取網站。
如果一切符合預期,即可提交變更
git add *
git commit -m "Release 4.1.64.Final"
git push
之後,網站將由 GitHub action 自動建置和部署。
待辦事項:撰寫說明
釋出程序已透過 GitHub Actions 完全自動化。啟動釋出時,您只需執行 GitHub Action 釋出工作流程。這個工作流程將負責建置所有原生程式庫,以及一般 JAR 檔。完成後,它會自動分批處理所有準備發佈至 nexus 準備發布存放庫 之內容,並發佈到中央 Maven。
手動處理已無需進行,但您可以考慮撰寫釋出公告並將它發佈至網站。
釋出程序已透過 GitHub Actions 完全自動化。啟動釋出時,您只需執行 GitHub Action 釋出工作流程。這個工作流程將負責建置所有原生程式庫,以及一般 JAR 檔。完成後,它會自動分批處理所有準備發佈至 nexus 準備發布存放庫 之內容,並發佈到中央 Maven。
手動處理已無需進行,但您可以考慮撰寫釋出公告並將它發佈至網站。
釋出程序已透過 GitHub Actions 完全自動化。啟動釋出時,您只需執行 GitHub Action 釋出工作流程。這個工作流程將負責建置所有原生程式庫,以及一般 JAR 檔。完成後,它會自動分批處理所有準備發佈至 nexus 準備發布存放庫 之內容,並發佈到中央 Maven。
手動處理已無需進行,但您可以考慮撰寫釋出公告並將它發佈至網站。
目前發布程序同時採用執行 GitHub Action 工作流程及執行某些腳本的方式來完成 macOS(64 位元)上的發布程序。另外,也請安裝 必要的套件。
釋出作業現已大多自動化(未來希望可完全自動化)。啟動釋出時,您只需執行 GitHub Action 釋出工作流程。這個工作流程將負責建置所有原生程式庫,以及一般 JAR 檔。完成後,它會自動分批處理所有準備發佈至 nexus 準備發布存放庫 之內容。監控 GitHub Action 釋出工作流程 並等待它完成。
Netty/Incubator/Codec/Quic 釋出必須使用 OpenJDK8,它可以從 AdoptOpenJDK 下載。下載並安裝後,建立一個指向此安裝的 JAVA8_HOME
環境。
例如
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。