You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

This page describes the release process of Apache Flink.

 

Verifying a Release Candidate

Legal: (required checks for a valid ASF compilant release)

  • Check if checksums and GPG files match the corresponding release files
  • Check if the source archive contains any binaries
    • binaries are not allowed in the source release
  • Check if the source release is building properly with maven (including license header check (default) and checkstyle). Also the tests should be executed (mvn clean install)
  • Verify that the LICENSE and NOTICE file is correct for the binary and source release.

Functional: (checks for delivering a release with good quality)

  • Verify that the examples are running from both ./bin/flink and from the web-based job submission tool
    • Check also that the examples are running with the build-in data and external sources.
    • On a cluster with HDFS check that a good amount of input splits is read locally
  • Verify that Flink is working properly on OS X, Linux and Windows
    • No exceptions in the log output (after shutdown)
    • Web interface shows progress and finished job in history
    • Results of job are produced and correct
  • Verify the plan visualizer with different browsers/operating systems
  • Verify that the quickstarts for scala and java are working with the staging repository for both IntelliJ and Eclipse.
    • in particular the dependencies of the quickstart project need to be set correctly and the QS project needs to build from the staging repository (replace the snapshot repo URL with the staging repo URL)
    • The dependency tree of the QS project must not contain any dependencies we shade away upstream (guava, netty, ...)

 

Creating a release candidate

  • Read and understand: http://www.apache.org/dev/release-publishing.html
  • Read http://www.apache.org/dev/release-signing.html and create yourself a PGP key
  • run the ./tools/create_release_files.sh script from the Flink repo, with the following parameters: (the call below as used to create RC1 of Flink 0.8.1

    sonatype_user=YOURAPACHEID sonatype_pw=YOURAPACHEIDPASSWORD NEW_VERSION=0.8.1 RELEASE_CANDIDATE="rc1" RELEASE_BRANCH=release-0.8 OLD_VERSION=0.8-SNAPSHOT USER_NAME=YOURAPACHEID GPG_PASSPHRASE=YOURGPGPASSPHRASE GPG_KEY=YOURGPGKEY ./create_release_files.sh

    Note: the ./tools/create_release_files.sh script needs to make sure that the "mvn deploy" call is done using Java 8 (to release the java8 module to mvn central as well), but the fat jar for the binary release needs to be created by Java6 (due to a bug in java6 jar opening mechanism).

  • Usually the create_release_files.sh script needs to be adopted a bit depending on the used linux distribution
  • Close the staging repository in repository.apache.org (DO NOT PRESS "RELEASE"!)
  • Check that the release files are located in your people.apache.org home directory
  • go to the ./tools/flink directory and push the release commit to release-x.y.z-rcn branch. (DO NOT COMMIT THE LOCAL CHANGES, the release commit has already been created.)
  • Send the VOTE mail to the dev@flink.a.o list, containing the release commit hash, the link to your people.apache.org and to the staging repository.

Releasing a Release Candidate

  • Upload binaries to svn repo at: https://dist.apache.org/repos/dist/release/flink (sync needs 24 hours)
  • Release staging repository https://repository.apache.org/ to Maven Central.
  • Update Flink website with updated download URLs and Maven artifacts. Manually update the index.html of the website.
  • Publish release announcement blog post
  • Email to dev, news, user  AT flink.a.o; also announce AT apache.
  • No labels