博客
2021/06/08
如何验证 Beam 版本
发布新版本是任何软件项目的核心职责。在 Apache 项目的文化中,这一点尤为重要。发布是新代码/功能在项目社区中传播的主要途径。
Beam 也不例外:我们希望保持大约 6 周的发布节奏,并努力与社区合作发布有用的新功能,并保持 Beam 的实用性。
配置 Java 构建以验证 Beam 预发布版本
首先,在您的 pom.xml
文件中有一个用于保存全局 Beam 版本的属性会很有帮助。在您的 pom.xml
文件中添加类似以下内容:
其次,您可以为 pom.xml
文件添加一个新的配置文件。在这个新的配置文件中,添加一个新的仓库,其中包含新 Beam 版本的暂存仓库。对于 Beam 2.27.0,这个仓库是 https://repository.apache.org/content/repositories/orgapachebeam-1149/
。
在您的 pom.xml
文件中有了 beam.version
属性,并且有了包含新版本的新的配置文件后,您可以运行 mvn
命令,并激活新的配置文件和新的 Beam 版本:
mvn test -Pvalidaterelease \
-Dbeam.version=2.27.0 \
-Dbeam.release.repo=https://repository.apache.org/content/repositories/orgapachebeam-XXXX/
这将使用新版本构建您的项目,并运行基本测试。它将允许您对新的 Beam 版本运行基本验证。如果您发现任何问题,那么您可以在发布最终确定之前分享它们,这样您的担忧就可以得到社区的解决。
配置 Python 构建以验证 Beam 预发布版本
对于 Python SDK 版本,您可以通过启用安装预发布工件来从 Pypi 安装 SDK。
首先,确保您的 requirements.txt
或 setup.py
文件允许 Beam 版本高于当前版本。类似以下内容将安装最新可用的版本:
apache-beam<=3.0.0
有了这些,您就可以要求 pip
在您的环境中安装 Beam 的预发布版本:
pip install --pre apache-beam
有了这些,您环境中的 Beam 版本将是最新发布的候选版本,您可以继续运行您的测试以验证一切正常。
验证 Prism Runner RC 与 RC SDK
将 v2.59.0-RC1 替换为要验证的 RC 版本的标签。
Python
要使用 Python 验证棱镜运行器,--runner=PrismRunner --prism_location=https://github.com/apache/beam/releases/tag/v2.59.0-RC1 --prism_beam_version_override=v2.59.0
runner
标志将 Beam 设置为使用 Prism。prism_location
设置 Prism 资产的来源。prism_beam_version_override
标志设置这些资产的标记方式。- 这些资产打包为最终的发布版本,因此需要覆盖。
Java
对于 Gradle,将 Prism 和 JAMM 依赖项添加到您的 build.gradle
文件中。
implementation "org.apache.beam:beam-runners-prism-java:2.59.0"
implementation "com.github.jbellis:jamm:0.4.0"
然后添加以下标志,并相应地替换版本。
`–runner=PrismRunner –prismLocation=“https://github.com/apache/beam/releases/tag/v2.59.0-RC1/" –prismVersionOverride=v2.59.0
runner
标志将 Beam 设置为使用 Prism。prismLocation
设置 Prism 资产的来源,具体来说是该版本的 zip 文件。
配置 Go 构建以验证 Beam 预发布版本
对于 Go SDK 版本,您可以使用 go get
获取 Go SDK RC,方法是请求特定的预发布版本。
例如,要请求 2.44.0 的第一个预发布版本:
go get -d github.com/apache/beam/sdks/v2@v2.44.0-RC1
有了这些,您 go.mod
文件中的 Beam 版本将是指定的预发布版本。您可以继续运行您的测试以验证一切正常。
您可能还需要在运行作业时指定与 RC 匹配的容器。使用 --environment_config
标志指定预发布版本容器:例如 --environment_config=apache/beam_go_sdk:2.44.0rc1