...
Now, add your Apache GPG key to the Flink’s KEYS
file in the release
repository at dist.apache.org
. Follow the instructions listed at the top of these files. (Note: Only PMC members have write access to the release repository. If you end up getting 403 errors ask on the mailing list for assistance.)Configure git
to use this key when signing code by giving it your key ID, as follows: PMC member can refer following scripts to add your Apache GPG key to the KEYS in the release repository.
Code Block | ||
---|---|---|
| ||
git config --global user.signingkey 845E6689 |
You may drop the --global
option if you’d prefer to use this key for the current repository only.
svn co https://dist.apache.org/repos/dist/release/flink flink-dist-release-repo
cd flink-dist-release-repo
(gpg --list-sigs <YOUR_KEY_ID> && gpg --armor --export <YOUR_KEY_ID>) >> KEYS
svn ci -m "[flink] Add <YOUR_NAME>'s public key" |
Configure git
to use this key when signing code by giving it your key ID, as follows:
Code Block | ||
---|---|---|
| ||
git config --global user.signingkey 845E6689 |
You may drop the --global
option if you’d prefer to use this key for the current repository only.
You may wish to start gpg-agent
to unlock your GPG key only You may wish to start gpg-agent
to unlock your GPG key only once using your passphrase. Otherwise, you may need to enter this passphrase hundreds of times. The setup for gpg-agent
varies based on operating system, but may be something like this:
...
Code Block | ||
---|---|---|
| ||
RELEASE_VERSION="2.0.0"
SHORT_RELEASE_VERSION="2.0"
CURRENT_SNAPSHOT_VERSION="$SHORT_RELEASE_VERSION-SNAPSHOT"
NEXT_SNAPSHOT_VERSION="2.1-SNAPSHOT"
SHORT_NEXT_SNAPSHOT_VERSION="2.1"
SUPPORTED_FLINK_VERSIONS="1.15,1.16,1.17" |
If you are doing a new major/If you are doing a new major/minor release (e.g. 2.0.0, 2.1.0), check out the version of the codebase from which you start the release. This may be HEAD
of the master
branch. Create a branch for the new version that we want to release before updating the master branch to the next development version:
...
Code Block | ||
---|---|---|
| ||
$ OLD_VERSION=$CURRENT_SNAPSHOT_VERSION NEW_VERSION=$RELEASE_VERSION tools/releasing/update_branch_version.sh $ RELEASE_VERSION=$RELEASE_VERSION tools/releasing/create_source_release.sh |
Note: Please manually update the Flink version used in archetypeVersion in build-your-own-project.md and quick-start.md as appropriate.
Next, we build the Python artifacts:
...
Finally, we stage the maven artifacts:
Code Block | ||
---|---|---|
| ||
$ SUPPORTED_FLINK_VERSIONS=$SUPPORTED_FLINK_VERSIONS tools/releasing/deploy_staging_jars.sh |
...
If you have not already, check out the Flink section of the
dev
repository ondist.apache.org
via Subversion. In a fresh directory:Code Block language bash svn checkout https://dist.apache.org/repos/dist/dev/flink --depth=immediates
Make a directory for the new release:
Code Block language bash mkdir flink/flink-ml-${RELEASE_VERSION}-rc${RC_NUM}
Copy all release distributions, hashes, and GPG signature:
Code Block mv <flink-ml-dir>/release/* flink/flink-ml-${RELEASE_VERSION}-rc${RC_NUM}
Add and commit all the files.
Code Block language bash cd flink svn add flink-ml-${RELEASE_VERSION}-rc${RC_NUM} svn commit -m "Apache Flink ML, version ${RELEASE_VERSION}, release candidate ${RC_NUM}"
Verify that files are present
NUM}"
Verify that files are present
Update apache/infrastructure-bb2
https://github.com/apache/infrastructure-bb2 is visible only to committers.
See previous changes of flink-ml.py to understand the changes needed to create website buildbot for the new Flink ML release branch. Please remove the last minor release branch after adding a new release branch.
After the change takes effect within one day, you should be able to find the corresponding buildbot at https://ci2.apache.org/#/builders.
Propose a pull request for
...
flink-web
The final step of building the candidate is to propose a website pull request.
Start by updating the variables for the latest released version in the top-level config.toml, and update updating the version/date in release_archive.yml, linking to the source code download and the Release Notes in JIRA. Also and adding urls in flink_ml.yml. Also, add a new blog entry announcing the release in docs/content/posts.
...
Code Block |
---|
$ svn move -m "Release Flink ML ${RELEASE_VERSION}" \ https://dist.apache.org/repos/dist/dev/flink/flink-ml-${RELEASE_VERSION}-rc${RC_NUM} \ https://dist.apache.org/repos/dist/release/flink/flink-ml-${RELEASE_VERSION} |
Remove old release candidates from dist.apache.org
...
For a new major release remove all release files older than 2 versions, e.g., when releasing 1.7, remove all releases <= 1.5.For a new bugfix version remove all release files for previous bugfix releases in the same seriesfiles older than 2 versions, e.g., when releasing 1.7.1, remove the 1.7.0 release.
If you have not already, check out the Flink section of the release
repository on dist.apache.org
via Subversion. In a fresh directory:
Code Block | ||
---|---|---|
| ||
svn checkout https://dist.apache.org/repos/dist/release/flink --depth=immediates
cd flink |
Remove files for outdated releases and commit the changes.
Code Block | ||
---|---|---|
| ||
svn remove flink-ml-<version_to_remove>
svn commit |
all releases <= 1.5.
For a new bugfix version remove all release files for previous bugfix releases in the same series, e.g., when releasing 1.7.1, remove the 1.7.0 release.
If you have not already, check out the Flink section of the
release
repository ondist.apache.org
via Subversion. In a fresh directory:Code Block language bash svn checkout https://dist.apache.org/repos/dist/release/flink --depth=immediates cd flink
Remove files for outdated releases and commit the changes.
Code Block language bash svn remove flink-ml-<version_to_remove> svn commit
Verify that files are removed
Git tag
Create a new Git tag for the released version by copying the tag for the final release candidate, as follows:
Code Block | ||
---|---|---|
| ||
git tag -s "release-${RELEASE_VERSION}" refs/tags/${TAG}^{} -m "Release Flink ML ${RELEASE_VERSION}"
git push <remote> refs/tags/release-${RELEASE_VERSION} |
Mark the version as released in JIRA
In JIRA, inside version management, hover over the current release and a settings menu will appear. Click Release
, and select today’s date.
Update flink-web repository
1) Add a new entry for the new Flink ML release in the docs/data/release_archive.yml file.
2) Add download links for the new Flink ML release in the docs/data/flink_ml.yml file.
3) For major releases, update the following settings in the docs/config.toml file.
Code Block | ||
---|---|---|
| ||
FLINK_ML_VERSION_STABLE: $RELEASE_VERSION
FlinkMLStableShortVersion: $SHORT_RELEASE_VERSION |
4) For major releases, add the release announcement under docs/content/posts.
5) Rebuild the website and push
...
Verify that files are removed
Git tag
Create a new Git tag for the released version by copying the tag for the final release candidate, as follows:
Code Block | ||
---|---|---|
| ||
git tag -s "release-${RELEASE_VERSION}" refs/tags/${TAG}^{} -m "Release Flink ML ${RELEASE_VERSION}"
git push <remote> refs/tags/release-${RELEASE_VERSION} |
Mark the version as released in JIRA
In JIRA, inside version management, hover over the current release and a settings menu will appear. Click Release
, and select today’s date.
Update website to point to new stable release documentation (for major releases only)
In our website repository flink-web
, for major releases we need to update the website to point to the new stable release.
In the _config.yml
file under the root directory, update the following settings:
Code Block | ||
---|---|---|
| ||
FLINK_ML_VERSION_STABLE: $RELEASE_VERSION
FLINK_ML_VERSION_STABLE_SHORT: $SHORT_RELEASE_VERSION
docs-ml-stable: "https://ci.apache.org/projects/flink/flink-ml-docs-release-$SHORT_RELEASE_VERSION" |
Finally, rebuild the website and push.
Add download links for the new release to the website
In the _config.yml
file under the root directory of flink-web
, you will find a list of download links for previous releases.
Following the same format,
- add a new entry to
release_archive.flink_ml
- for major releases, add a new entry to
flink_ml_releases
for the release binaries and sources - for minor releases, update the entry for the previous release in the series in
flink_ml_releases
Please pay notice to the ids assigned to the download entries. They should be unique and reflect their corresponding version number.
Checklist to proceed to the next step
...