如何驗證 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 版本將是最新發佈候選版本,您可以繼續執行測試以驗證一切正常。

針對 RC SDK 驗證 Prism Runner RC

將 v2.59.0-RC1 替換為要驗證的 RC 版本的標籤。

Python

若要使用 Python 驗證 prism runner,請使用 --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