Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Build and stage Java artifacts with Maven)

Info

This is based on the release guide of the Apache Beam project: https://beam.apache.org/contribute/release-guide/

...

The core of the release process is the build-vote-fix cycle. Each cycle produces one release candidate. The Release Manager repeats this cycle until the community approves one release candidate, which is then finalized.

Build and stage Java and Python artifacts

...

Set up a few environment variables to simplify Maven commands that follow. This identifies the release candidate being built. Start with RC_NUM equal to 1 and increment it for each candidate.

...

Code Block
languagebash
for f in flink-*-bin*.tgz; do gpg --armor --detach-sig $f; done

gpg --armor --detach-sig apache-flink-*.tar.gz


Stage source and binary releases on dist.apache.org

...

Once the release candidate has been reviewed and approved by the community, the release should be finalized. This involves the final deployment of the release candidate to the release repositories, merging of the website changes, etc.


Deploy Python artifacts to PyPI

Release manager should get the pypi account and password from PMC to deploy the Python artifacts to PyPI. The artifacts could be uploaded using twine(https://pypi.org/project/twine/). To install twine, just run:

Code Block
languagetext
pip install --upgrade twine==1.12.0

Download the python artifacts from dist.apache.org and upload it to pypi.org:

Code Block
languagetext
svn checkout https://dist.apache.org/repos/dist/dev/flink/ --depth=immediates
cd flink/flink-${RELEASE_VERSION}-rc${RC_NUM}
twine upload --repository-url https://upload.pypi.org/legacy/ apache-flink-${RELEASE_VERSION}.tar.gz apache-flink-${RELEASE_VERSION}.tar.gz.asc

If upload failed or incorrect for some reason(e.g. network transmission problem), you need to delete the uploaded release package of the same version(if exists) and rename the artifact to apache-flink-${RELEASE_VERSION}.post0.tar.gz, then re-upload.

Note: re-uploading to pypi.org must be avoided as much as possible because it will cause some irreparable problems. If that happens, users cannot install the apache-flink package by explicitly specifying the package version, i.e. the following command "pip install apache-flink==${RELEASE_VERSION}" will fail. Instead they have to run "pip install apache-flink" or "pip install apache-flink==${RELEASE_VERSION}.post0" to install the apache-flink package.

Deploy artifacts to Maven Central Repository

...