发布指南
如何创建和宣布 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 的说明。
使用 release 和 staging 插件的其他本地配置。
要有效地使用 release 和 staging 插件,您需要了解 staging 将在何处发生以及 gpg 的签名信息。您的 ~/.m2/settings.xml 应该包含一个类似于此的配置文件
<settings>
<profiles>
<profile>
<id>apache-release</id>
<properties>
<gpg.passphrase>secretPhrase</gpg.passphrase>
</properties>
</profile>
</profiles>
...
</settings>
创建 ActiveMQ Classic 版本
release 插件将提示输入发布版本、标签和下一个发布版本。使用形式为 5.x.x 的三位发布版本,并将标签用于形式为 activemq-5.x.x 的字符串。下一个版本字符串应使用两位数从:5.x-SNAPSHOT 开始,因为这对于将来的 SNAPSHOT 版本可以保持一致。
- 验证待发布的版本标识符是否存在于 META-INF/spring.schemas 映射文件 AND activemq-osgi/src/main/resources/META-INF/spring.schemas 文件中,如果没有,请添加它并提交。它应该包含
https://activemq.apache.org/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
- 将发布执行到 staging 存储库
mvn release:perform
这同时使用 activemq 发布配置文件(它指导构建源 jar、javadoc jar 以及对所有内容进行签名),以及 settings 发布配置文件(它说明在何处
放置东西以及如何签署它。 -
关闭 staging 存储库
引用自 Apache 项目的 Maven 发布指南使用您的 Apache LDAP 凭据登录 https://repository.apache.org。单击“Staging”。然后在存储库列表中单击“maven”。在下面的面板中,您应该看到一个与您的用户名和 IP 链接的开放存储库。右键单击此存储库并选择“Close”。这将从将来的部署中关闭存储库,并使其他用户能够查看它。如果您同时进行多个发布,请跳过此步骤,直到您将所有内容都提交完毕。在“Description”字段中输入要发布的工件的名称和版本,然后单击“Close”。这将使您稍后更容易识别它。
有关更多信息,请参见原始指南中的图像。
-
验证已提交的工件
引用自 原始指南如果您单击您的存储库,将在下面出现一个树形视图。然后,您可以浏览内容以确保工件与您期望的一致。特别注意 *.asc(签名)文件的存在。如果您不喜欢存储库的内容,请右键单击您的存储库并选择“Drop”。然后,您可以回滚发布并重复此过程。
注意存储库 URL,您将在投票电子邮件中需要它。 - 从 release:perform 在上一步中检出的目标/结账中的标签构建站点。
请注意,-Prelease 配置文件是必要的,用于指定 settings.xml 中配置 staging 位置的配置文件。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> # 将 site 插件创建的 apidocs 文件夹复制到 <version>/apidocs svn add <version> svn rm apidocs ln -s <version>/apidocs apidocs svn add apidocs # 并在看起来不错时提交。
-
使用存储库中已有的帮助程序脚本,将官方发布工件提交到 SVN dist 开发区,供人们测试和投票:
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>
并在看起来不错时提交。 - 在开发人员列表上进行投票,列出发布的重大新功能。
投票通过后
- 提升发布(即发布 staging 存储库):登录 https://repository.apache.org,导航到 staging 存储库,然后单击“release”按钮。
- 将已提交的发布文件从 SVN dist 开发文件夹复制到 SVN dist 发布文件夹: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
。前置内容必须包含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
列表来更新当前版本。在列表中发布的最新补丁版本将自动包含在 下载页面 上。 - 使用指向 HTML 和 XSD 的链接更新 XML 参考 页面
- 更新 快速链接 和 JavaDocs 页面
- 向 dev 和 user 列表发送邮件
- 发布 WIKI 上的新闻条目
- 推特
- 喝一杯啤酒!