alpinegizmo commented on a change in pull request #5: [hotfix] Improve instructions to update playgrounds. URL: https://github.com/apache/flink-playgrounds/pull/5#discussion_r328126198
########## File path: howto-update-playgrounds.md ########## @@ -14,29 +14,57 @@ Internally defined version: # Updating the playgrounds +## Update playgrounds due to a new bugfix Flink release + +Apache Flink bugfix releases are frequently published. For example, Flink 1.8.2 is the second bugfix release in the Flink 1.8 release line. Bugfix releases are binary compatible with previous releases on the same minor release line. + +When a new bugfix release as published, we have to wait until the corresponding Flink Docker image is published on [Docker Hub](https://hub.docker.com/_/flink). Once the Flink Docker image is available, update all playgrounds as follows: + +1. All `pom.xml`: + * Update the versions of all Flink dependencies + * Update the Maven artifact version to the new playground version (`4-Flink-1.9` is the fourth update of the playground for the Flink 1.9 line). + * All Maven projects should still build as bugfix releases should be compatible with previous versions. +2. All `Dockerfile`: + * Update the version of the base image to the new Flink Docker image version. +3. `docker-compose.yaml`: + * Update the version of the custom Docker images to the new playground version. + * Update the version of the Flink containers to the new Flink docker image version if necessary. + +The `flink-playgrounds` repository has a branch for every minor Flink release (for example `release-1.9` for all releases of the Flink 1.9 line). Updates for a bugfix release should be pushed to the existing branch of the updated release line. + ## Update playgrounds due to a new minor (or major) Flink release -First of all, check that a Flink Docker image was published on [Docker Hub](https://hub.docker.com/_/flink) for the new Flink version. +A major release marks a significant new version of Flink that probably breaks a lot of existing code. For example Flink 2.0.0 would be a major release that starts the Flink 2.x line. A minor release marks a new version of Apache Flink with significant improvements and changes. For example, Flink 1.9.0 is the minor release which starts the Flink 1.9 release line. New minor releases aim to be compatible but might deprecate, evolve, or remove code of previous releases. For updates due to minor and major Flink versions, the same update rules apply. -Update all playgrounds as follows: +When a new minor or major release as published, we have to wait until the corresponding Flink Docker image is published on [Docker Hub](https://hub.docker.com/_/flink). Once the Flink Docker image is available, update all playgrounds as follows: 1. All `pom.xml`: * Update the versions of all Flink dependencies - * Update the Maven artifact version to the new playground version (`1-Flink-1.9` if 1.9.0 is the new Flink release). - * Check that all Maven projects build. + * Update the Maven artifact version to the new playground version (`1-Flink-1.9` is the first version of the playground for the Flink 1.9 line). + * Check that all Maven projects still build and fix all issues related to the Flink version update. 2. All `Dockerfile`: - * Update version of the base image to the new Flink Docker image version. + * Update the version of the base image to the new Flink Docker image version. 3. `docker-compose.yaml`: - * Update the version of the Flink containers to the new Flink docker image version. * Update the version of the custom Docker images to the new playground version. + * Update the version of the Flink containers to the new Flink docker image version. -## Update a playground due to bug in a custom Docker image +The `flink-playgrounds` repository has a branch for every minor Flink release (for example `release-1.9` for all releases of the Flink 1.9 line). A playground update due to a new minor or major Flink release starts a new branch. Moreover, the new version should also be pushed to the `master` branch. -Whenever, you need to update a Docker image, please increment the playground version in the following places. +## Update a playground to improve a custom Docker image -* the artifact version of all Maven projects in all `pom.xml` files. -* the tag (name and version) of all custom images in all `docker-compose.yaml` files. +You might want to update the software in a Docker image to add a new features or fix a bug. +Whenever, you update an image, you have to increment the playground version in the following places. + +* the artifact version of all Maven projects that are modified. +* the tag (name and version) of all affected custom images the `docker-compose.yaml` files. + +The update of the `docker-compose.yaml` file is important to ensure that the updated Docker image gets a new version. +Otherwise, the new image might not be build if a user had run playground with an earlier image before. Review comment: ```suggestion Otherwise the new image might not be built if a user had run the playground before with an earlier image. ``` ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: [email protected] With regards, Apache Git Services
