發布指南
如何建立和發布 ActiveMQ Classic 版本。此發布基於 在 Apache 發布基於 Maven 的專案的一般指南,因此請務必在繼續之前查看並滿足所有先決條件。
Maven 2 設定
在使用 Maven 2 將任何內容部署到 Maven 儲存庫之前,您應該配置您的 ~/.m2/settings.xml 檔案
以便部署工件的檔案權限是群組可寫入的。如果您不這樣做,其他開發人員將無法使用較新的版本覆蓋您的 SNAPSHOT 版本。
<settings>
...
<servers>
<server>
<id>apache.snapshots.https</id>
<username>dejanb</username>
</server>
<!\-\- To publish a website of some part of Maven -->
<server>
<id>apache.website</id>
<username>dejanb</username>
<filePermissions>664</filePermissions>
<directoryPermissions>775</directoryPermissions>
</server>
<!\-\- To stage a release of some part of Maven -->
<server>
<id>apache.releases.https</id>
<username>dejanb</username>
</server>
<!\-\- To stage a website of some part of Maven -->
<server>
<id>stagingSite</id> <!-- must match hard-coded repository identifier in site:stage-deploy -->
<username>dejanb</username>
<filePermissions>664</filePermissions>
<directoryPermissions>775</directoryPermissions>
</server>
</servers>
...
</settings>
對於非互動式登入,在 people.apache.org 上將您的 umask 設定為 2 也是至關重要的。如果您的 shell 是 tcsh,您可以編輯 .cshrc 以包含
umask 2
其他 shell 初始化檔案可能會干擾此設定,但如果這是唯一的 umask 設定,它似乎可以正常工作。歡迎提供其他 shell 的說明。
使用發布和暫存外掛程式的其他本機設定。
若要有效地使用發布和暫存外掛程式,您需要一些關於暫存將發生在哪裡以及 gpg 的簽署資訊。您的 ~/.m2/settings.xml 應該包含類似這樣的設定檔
<settings>
<profiles>
<profile>
<id>apache-release</id>
<properties>
<gpg.passphrase>secretPhrase</gpg.passphrase>
</properties>
</profile>
</profiles>
...
</settings>
建立 ActiveMQ Classic 版本
發布外掛程式會提示輸入發布版本、標籤和下一個發布版本。使用 5.x.x 形式的三位數發布版本,對於標籤,使用 activemq-5.x.x 形式的字串。下一個版本字串應使用 5.x-SNAPSHOT 形式的兩位數,因為這可以與未來的 SNAPSHOT 版本保持一致。
- 驗證待發布的版本識別碼是否存在於 META-INF/spring.schemas 對應檔案以及 activemq-osgi/src/main/resources/META-INF/spring.schemas 檔案中,如果不存在,請新增並提交。它應該包含
https://activemq.dev.org.tw/schema/core/activemq-core-${pom.version}.xsd=activemq.xsd
- 使用 rat 驗證標頭
mvn -e apache-rat:check grep -e ' !?????' target/rat.txt -- will show any files without licenses
- 執行發布試執行以檢查問題
mvn release:prepare -DdryRun=true
檢查您是否對結果感到滿意。建議標籤的 pom 將位於 pom.xml.tag 中。當您喜歡結果時,請清理
mvn release:clean
- 準備發布
mvn release:prepare
這將在 git 中建立標籤,並在本機保留各種內容以引導執行階段。
- 建立發布設定的本機副本,以防萬一發生錯誤
cd .. cp -r activemq-release activemq-release-prepared cd activemq-release
- 執行發布到暫存儲存庫
mvn release:perform
這同時使用 activemq 發布設定檔(指示建立來源 jar、javadoc jar 和簽署所有內容),以及 settings 發布設定檔(說明在哪裡
放置內容以及如何簽署它)。 -
關閉暫存儲存庫
引述 Apache 專案的 Maven 發布指南使用您的 Apache LDAP 憑證登入 https://repository.apache.org。按一下「暫存」。然後按一下儲存庫列表中的「maven」。在下面的面板中,您應該會看到一個連結到您的使用者名稱和 IP 的開啟儲存庫。在該儲存庫上按一下滑鼠右鍵,然後選取「關閉」。這將關閉儲存庫,使其無法進行未來部署,並可供其他人檢視。如果您要一起暫存多個發布版本,請跳過此步驟,直到您暫存完所有內容。在「描述」欄位中輸入正在發布的工件的名稱和版本,然後按一下「關閉」。這將使稍後更容易識別它。
請參閱原始指南中的影像以瞭解更多資訊。
-
驗證暫存的工件
引述 原始指南如果您按一下您的儲存庫,下方會出現樹狀檢視。然後您可以瀏覽內容,以確保工件符合您的預期。請特別注意 *.asc(簽章)檔案是否存在。如果您不喜歡儲存庫的內容,請在您的儲存庫上按一下滑鼠右鍵,然後選擇「捨棄」。然後,您可以復原您的發布並重複該過程。
請注意儲存庫 URL,您將在您的投票電子郵件中需要它。 - 從 release:perform 在上一個步驟中簽出的 target/checkout 中的標籤建立網站。
請注意,需要 -Prelease 設定檔來指定 settings.xml 中設定暫存位置的設定檔。cd target/checkout mvn site -Prelease
- 在 svn 中填入 Javadocs 網站
svn co https://svn.apache.org/repos/infra/websites/production/activemq/content cd content/maven mkdir <version> #將網站外掛程式建立的 apidocs 資料夾複製到 <version>/apidocs svn add <version> svn rm apidocs ln -s <version>/apidocs apidocs svn add apidocs #並在它看起來不錯時提交。
-
使用儲存庫中已有的 helper 指令碼,在 SVN dist dev 區域中暫存正式發布工件,供人員測試和投票:
svn co https://dist.apache.org/repos/dist/dev/activemq/activemq/ cd activemq ./prepare-release.sh <nexus-staging-repo-url> <version> # 範例:./prepare-release.sh https://repository.apache.org/content/repositories/orgapacheactivemq-1149 5.15.1 svn add <version>
並在它看起來不錯時提交。 - 在開發人員清單上呼籲投票,列出發布版本的所有新功能。
在投票通過後
- 升級發布版本(即發布暫存儲存庫):登入 https://repository.apache.org,瀏覽至暫存儲存庫,然後按一下「發布」按鈕。
- 將暫存的發布檔案從 SVN dist dev 資料夾複製到 SVN dist release 資料夾: https://dist.apache.org/repos/dist/release/activemq/
svn cp -m "add files for activemq-<version>" https://dist.apache.org/repos/dist/dev/activemq/activemq/<version> https://dist.apache.org/repos/dist/release/activemq/<version> # Example: svn cp -m "add files for activemq-5.15.1" https://dist.apache.org/repos/dist/dev/activemq/activemq/5.15.1 https://dist.apache.org/repos/dist/release/activemq/5.15.1
- 在 svn 中填入架構網站
svn co https://svn.apache.org/repos/infra/websites/production/activemq/content cd content/schema/core curl --remote-name-all https://repository.apache.org/content/repositories/releases/org/apache/activemq/activemq-spring/<version>/activemq-spring-<version>{-schema.html,.xsd}{.asc,.asc.md5,.asc.sha1,.sha1,.md5,} for i in activemq-spring-5.9.0*; do mv -- "$i" "${i//spring/core}"; done; svn add activemq-core-5.9.0* svn rm activemq-core.xsd ln -s activemq-core-5.9.0.xsd activemq-core.xsd svn add activemq-core.xsd # and commit once it looks good.
- 繼續下方的「宣布」區段
- 為下一個發布版本建立一個進行中的 Wiki 頁面
- 從 dist 網站中移除任何不再支援的發布版本,並更新該發布版本的 Wiki 頁面,使其指向下載的封存。
宣布 ActiveMQ Classic 發布版本
- 在 JIRA 中執行發布,並在 JIRA 中建立新的發布版本。
- 先將未解決的問題批量移動到下一個發布版本(不要傳送電子郵件)更新
- 您可能還想要搜尋已解決/已關閉且沒有修復版本的議題,以防萬一
- 藉由在
src/_releases/
中新增檔案並將其名稱命名為轉換為整數的版本(例如,5.16.1 的檔案應命名為activemq-5016001-release.md
),為發布版本建立下載頁面。Front Matter 必須包含version
、release_notes
、release_date
和title
。例如,這可能是基於 5.16.1 發布的預期內容--- version: 5.16.1 release_notes: https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311210&version=12347027 release_date: Jan 20, 2021 title: ActiveMQ Classic 5.16.1 Release --- Apache ActiveMQ Classic was released on . It fully supports JDK 9+ at runtime and includes several resolved [issues]() and bug fixes.
- 如有必要,請編輯
src/_data/current_releases.yml
中的5x
清單,以更新目前版本。在 下載頁面上會自動包含在src/_releases/
中發布的主要版本和小版本中最新修補程式發布。 - 使用 HTML 和 XSD 的連結更新 Xml 參考頁面
- 更新 快速連結 和 JavaDocs 頁面
- 將郵件寄給 開發人員 & 使用者 清單
- 在 WIKI 上發布新聞條目
- 推文
- 喝一杯啤酒!