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 | ||
---|---|---|
| ||
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 | ||
---|---|---|
| ||
pip install --upgrade twine==1.12.0 |
Download the python artifacts from dist.apache.org and upload it to pypi.org:
Code Block | ||
---|---|---|
| ||
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
...