Versions Compared

Key

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

...

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
languagebash
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
languagebash
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
languagebash
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
languagebash
RC_NUM="1"
TAG="release-${RELEASE_VERSION}-rc${RC_NUM}"

Now, create a candidate branch:

Code Block
languagebash
RELEASE_VERSION=$RELEASE_VERSION RELEASE_CANDIDATE=$RC_NUM tools/releasing/create_release_branch.sh

Tag and push Tag the release commit:

Code Block
git tag -s ${TAG} -m "${TAG}"
git push <remote> refs/tags/${TAG}

We now need to do several things:

...

Code Block
languagebash
$ 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 Next, we build the Python artifacts:

...

Finally, we stage the maven artifacts:

Code Block
languagebash
$ SUPPORTED_FLINK_VERSIONS=$SUPPORTED_FLINK_VERSIONS tools/releasing/deploy_staging_jars.sh

...

  1. If you have not already, check out the Flink section of the dev repository on dist.apache.org via Subversion. In a fresh directory:

    Code Block
    languagebash
    svn checkout https://dist.apache.org/repos/dist/dev/flink --depth=immediates


  2. Make a directory for the new release:

    Code Block
    languagebash
    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}


  3. Add and commit all the files.

    Code Block
    languagebash
    cd flink 
    svn add flink-ml-${RELEASE_VERSION}-rc${RC_NUM}
    svn commit -m "Apache Flink ML, version ${RELEASE_VERSION}, release candidate ${RC_NUM}"
  4. Verify that files are present

  5. NUM}"


  6. 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.

...

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
languagebash
 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
languagebash
 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.

  1. 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
    languagebash
     svn checkout https://dist.apache.org/repos/dist/release/flink --depth=immediates
     cd flink


  2. Remove files for outdated releases and commit the changes.

    Code Block
    languagebash
     svn remove flink-ml-<version_to_remove>
     svn commit


  3. 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
languagebash
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.

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
languagetext
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
languagebash
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
languagetext
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

...