如何验证 Beam 版本

发布新版本是任何软件项目的核心职责。在 Apache 项目的文化中,这一点尤为重要。发布是新代码/功能在项目社区中传播的主要途径。

Beam 也不例外:我们希望保持大约 6 周的发布节奏,并努力与社区合作发布有用的新功能,并保持 Beam 的实用性。

配置 Java 构建以验证 Beam 预发布版本

首先,在您的 pom.xml 文件中有一个用于保存全局 Beam 版本的属性会很有帮助。在您的 pom.xml 文件中添加类似以下内容:

<properties>
    ...
    <beam.version>2.26.0</beam.version>
    ...
</properties>
<dependencies>
    <dependency>
        <groupId>org.apache.beam</groupId>
        <artifactId>beam-sdks-java-core</artifactId>
        <version>${beam.version}</version>
    </dependency>
    ...
</dependencies>

其次,您可以为 pom.xml 文件添加一个新的配置文件。在这个新的配置文件中,添加一个新的仓库,其中包含新 Beam 版本的暂存仓库。对于 Beam 2.27.0,这个仓库是 https://repository.apache.org/content/repositories/orgapachebeam-1149/

        <profile>
            <id>validaterelease</id>
            <repositories>
                <repository>
                    <id>apache.beam.newrelease</id>
                    <url>${beam.release.repo}</url>
                </repository>
            </repositories>
        </profile>

在您的 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.txtsetup.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