ブログ
2021/06/08
Beam リリースを検証する方法
新しいリリースを実行することは、あらゆるソフトウェアプロジェクトの重要な責務です。Apache プロジェクトの文化ではさらに重要です。リリースは、プロジェクトのコミュニティにおける新しいコード/機能の主な流れです。
Beam も例外ではありません。約6週間のリリース頻度を維持し、コミュニティと協力して便利な新機能をリリースし、Beam を有用な状態に保つよう努めています。
Beam リリース候補を検証するための Java ビルドを設定する
まず、使用しているグローバルな Beam バージョンを保持する単一のプロパティを pom.xml
に用意すると便利です。pom.xml
に以下のようなものを記述します。
次に、pom.xml
ファイルに新しいプロファイルを追加できます。この新しいプロファイルに、新しい Beam リリースのステージングリポジトリを持つ新しいリポジトリを追加します。Beam 2.27.0 の場合、これは https://repository.apache.org/content/repositories/orgapachebeam-1149/
でした。
pom.xml
に beam.version
プロパティがあり、新しいリリースを含む新しいプロファイルがある場合は、新しいプロファイルを有効にし、新しい Beam バージョンを指定して mvn
コマンドを実行できます。
mvn test -Pvalidaterelease \
-Dbeam.version=2.27.0 \
-Dbeam.release.repo=https://repository.apache.org/content/repositories/orgapachebeam-XXXX/
これにより、新しいリリースに対してプロジェクトがビルドされ、基本的なテストが実行されます。新しい Beam リリースに対して基本的な検証を実行できます。問題が見つかった場合は、リリースが完了する前に共有して、コミュニティが懸念に対処できるようにしてください。
Beam リリース候補を検証するための Python ビルドを設定する
Python SDK リリースの場合は、プレリリースアーティファクトのインストールを有効にすることで、Pypi から SDK をインストールできます。
まず、requirements.txt
または setup.py
ファイルで、現在のバージョンよりも高い Beam バージョンを許可していることを確認してください。以下のようなもので、利用可能な最新バージョンがインストールされるはずです。
apache-beam<=3.0.0
これにより、pip
に、環境内に Beam のプレリリースバージョンをインストールするように要求できます。
pip install --pre apache-beam
これで、環境内の Beam バージョンが最新のリリース候補となり、テストを実行してすべてが正常に動作することを確認できます。
RC SDK に対して Prism Runner RC を検証する
検証対象の RC バージョンのタグで v2.59.0-RC1 を置き換えてください。
Python
Python で prism ランナーを検証するには、--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 ファイルを設定します。
Beam リリース候補を検証するための Go ビルドを設定する
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