From commits-return-10666-archive-asf-public=cust-asf.ponee.io@kafka.apache.org Sun Oct 28 19:31:56 2018 Return-Path: X-Original-To: archive-asf-public@cust-asf.ponee.io Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by mx-eu-01.ponee.io (Postfix) with SMTP id 6AD35180671 for ; Sun, 28 Oct 2018 19:31:55 +0100 (CET) Received: (qmail 53933 invoked by uid 500); 28 Oct 2018 18:31:54 -0000 Mailing-List: contact commits-help@kafka.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@kafka.apache.org Delivered-To: mailing list commits@kafka.apache.org Received: (qmail 53924 invoked by uid 99); 28 Oct 2018 18:31:54 -0000 Received: from ec2-52-202-80-70.compute-1.amazonaws.com (HELO gitbox.apache.org) (52.202.80.70) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 28 Oct 2018 18:31:54 +0000 Received: by gitbox.apache.org (ASF Mail Server at gitbox.apache.org, from userid 33) id CCB11829C0; Sun, 28 Oct 2018 18:31:53 +0000 (UTC) Date: Sun, 28 Oct 2018 18:31:52 +0000 To: "commits@kafka.apache.org" Subject: [kafka] branch trunk updated: KAFKA-7524: Recommend Scala 2.12 and use it for development (#5530) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Message-ID: <154075151208.31395.10578239401059545150@gitbox.apache.org> From: ijuma@apache.org X-Git-Host: gitbox.apache.org X-Git-Repo: kafka X-Git-Refname: refs/heads/trunk X-Git-Reftype: branch X-Git-Oldrev: 4fd5fe2af3d0ebcfade232d322a007428c9decff X-Git-Newrev: b4722cc16f285e8835c0733b9ec5cdc492f16874 X-Git-Rev: b4722cc16f285e8835c0733b9ec5cdc492f16874 X-Git-NotificationType: ref_changed_plus_diff X-Git-Multimail-Version: 1.5.dev Auto-Submitted: auto-generated This is an automated email from the ASF dual-hosted git repository. ijuma pushed a commit to branch trunk in repository https://gitbox.apache.org/repos/asf/kafka.git The following commit(s) were added to refs/heads/trunk by this push: new b4722cc KAFKA-7524: Recommend Scala 2.12 and use it for development (#5530) b4722cc is described below commit b4722cc16f285e8835c0733b9ec5cdc492f16874 Author: Ismael Juma AuthorDate: Sun Oct 28 11:31:39 2018 -0700 KAFKA-7524: Recommend Scala 2.12 and use it for development (#5530) Scala 2.12 has better support for newer Java versions and includes additional compiler warnings that are helpful during development. In addition, Scala 2.11 hasn't been supported by the Scala community for a long time, the soon to be released Spark 2.4.0 will finally support Scala 2.12 (this was the main reason preventing many from upgrading to Scala 2.12) and Scala 2.13 is at the RC stage. It's time to start recommending the Scala 2.12 build as we prepare support for Scala 2.13 and start thinking about removing support for Scala 2.11. In the meantime, Jenkins will continue to build all supported Scala versions (including Scala 2.11) so the PR and trunk jobs will fail if people accidentally use methods introduced in Scala 2.12. Reviewers: Ewen Cheslack-Postava --- README.md | 38 ++++++++++++------------- bin/kafka-run-class.sh | 2 +- bin/windows/kafka-run-class.bat | 2 +- docs/api.html | 4 +-- docs/js/templateData.js | 2 +- docs/quickstart.html | 6 ++-- docs/streams/developer-guide/dsl-api.html | 4 +-- docs/streams/developer-guide/write-streams.html | 4 +-- gradle.properties | 2 +- release.py | 6 ++-- 10 files changed, 35 insertions(+), 35 deletions(-) diff --git a/README.md b/README.md index 4e8c149..f12b10f 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,9 @@ You need to have [Gradle](http://www.gradle.org/installation) and [Java](http:// Kafka requires Gradle 4.7 or higher. -Java 8 should be used for building in order to support both Java 8 and Java 10 at runtime. +Java 8 should be used for building in order to support both Java 8 and Java 11 at runtime. + +Scala 2.12 is used by default, see below for how to use a different Scala version or all of the supported Scala versions. ### First bootstrap and download the wrapper ### cd kafka_source_dir @@ -64,26 +66,33 @@ Generate coverage for a single module, i.e.: ./gradlew clients:reportCoverage ### Building a binary release gzipped tar ball ### - ./gradlew clean - ./gradlew releaseTarGz + ./gradlew clean releaseTarGz The above command will fail if you haven't set up the signing key. To bypass signing the artifact, you can run: - ./gradlew releaseTarGz -x signArchives + ./gradlew clean releaseTarGz -x signArchives The release file can be found inside `./core/build/distributions/`. ### Cleaning the build ### ./gradlew clean -### Running a task on a particular version of Scala (either 2.11.x or 2.12.x) ### -*Note that if building the jars with a version other than 2.11.12, you need to set the `SCALA_VERSION` variable or change it in `bin/kafka-run-class.sh` to run the quick start.* +### Running a task with a particular version of Scala (either 2.11.x or 2.12.x) ### +*Note that if building the jars with a version other than 2.12.x, you need to set the `SCALA_VERSION` variable or change it in `bin/kafka-run-class.sh` to run the quick start.* + +You can pass either the major version (eg 2.12) or the full version (eg 2.12.7): + + ./gradlew -PscalaVersion=2.12 jar + ./gradlew -PscalaVersion=2.12 test + ./gradlew -PscalaVersion=2.12 releaseTarGz -You can pass either the major version (eg 2.11) or the full version (eg 2.11.12): +### Running a task with all scala versions ### - ./gradlew -PscalaVersion=2.11 jar - ./gradlew -PscalaVersion=2.11 test - ./gradlew -PscalaVersion=2.11 releaseTarGz +Append `All` to the task name: + + ./gradlew testAll + ./gradlew jarAll + ./gradlew releaseTarGzAll ### Running a task for a specific project ### This is for `core`, `examples` and `clients` @@ -104,15 +113,6 @@ The `eclipse` task has been configured to use `${project_dir}/build_eclipse` as build directory (`${project_dir}/bin`) clashes with Kafka's scripts directory and we don't use Gradle's build directory to avoid known issues with this configuration. -### Building the jar for all scala versions and for all projects ### - ./gradlew jarAll - -### Running unit/integration tests for all scala versions and for all projects ### - ./gradlew testAll - -### Building a binary release gzipped tar ball for all scala versions ### - ./gradlew releaseTarGzAll - ### Publishing the jar for all version of Scala and for all projects to maven ### ./gradlew uploadArchivesAll diff --git a/bin/kafka-run-class.sh b/bin/kafka-run-class.sh index eed3955..88698a5 100755 --- a/bin/kafka-run-class.sh +++ b/bin/kafka-run-class.sh @@ -48,7 +48,7 @@ should_include_file() { base_dir=$(dirname $0)/.. if [ -z "$SCALA_VERSION" ]; then - SCALA_VERSION=2.11.12 + SCALA_VERSION=2.12.7 fi if [ -z "$SCALA_BINARY_VERSION" ]; then diff --git a/bin/windows/kafka-run-class.bat b/bin/windows/kafka-run-class.bat index a21171b..5a61f8d 100755 --- a/bin/windows/kafka-run-class.bat +++ b/bin/windows/kafka-run-class.bat @@ -27,7 +27,7 @@ set BASE_DIR=%CD% popd IF ["%SCALA_VERSION%"] EQU [""] ( - set SCALA_VERSION=2.11.12 + set SCALA_VERSION=2.12.7 ) IF ["%SCALA_BINARY_VERSION%"] EQU [""] ( diff --git a/docs/api.html b/docs/api.html index ea511b4..4545e9b 100644 --- a/docs/api.html +++ b/docs/api.html @@ -81,12 +81,12 @@

When using Scala you may optionally include the kafka-streams-scala library. Additional documentation on using the Kafka Streams DSL for Scala is available in the developer guide.

- To use Kafka Streams DSL for Scala for Scala 2.11 you can use the following maven dependency: + To use Kafka Streams DSL for Scala for Scala {{scalaVersion}} you can use the following maven dependency:

 		<dependency>
 			<groupId>org.apache.kafka</groupId>
-			<artifactId>kafka-streams-scala_2.11</artifactId>
+			<artifactId>kafka-streams-scala_{{scalaVersion}}</artifactId>
 			<version>{{fullDotVersion}}</version>
 		</dependency>
 	
diff --git a/docs/js/templateData.js b/docs/js/templateData.js index eae0b30..f40542b 100644 --- a/docs/js/templateData.js +++ b/docs/js/templateData.js @@ -20,5 +20,5 @@ var context={ "version": "21", "dotVersion": "2.1", "fullDotVersion": "2.1.0", - "scalaVersion": "2.11" + "scalaVersion": "2.12" }; diff --git a/docs/quickstart.html b/docs/quickstart.html index e709cc7..6a88241 100644 --- a/docs/quickstart.html +++ b/docs/quickstart.html @@ -25,11 +25,11 @@ Since Kafka console scripts are different for Unix-based and Windows platforms,

Step 1: Download the code

-Download the {{fullDotVersion}} release and un-tar it. +Download the {{fullDotVersion}} release and un-tar it.
-> tar -xzf kafka_2.11-{{fullDotVersion}}.tgz
-> cd kafka_2.11-{{fullDotVersion}}
+> tar -xzf kafka_{{scalaVersion}}-{{fullDotVersion}}.tgz
+> cd kafka_{{scalaVersion}}-{{fullDotVersion}}
 

Step 2: Start the server

diff --git a/docs/streams/developer-guide/dsl-api.html b/docs/streams/developer-guide/dsl-api.html index 4b91eaa..c40d6ce 100644 --- a/docs/streams/developer-guide/dsl-api.html +++ b/docs/streams/developer-guide/dsl-api.html @@ -3414,11 +3414,11 @@ groupedTable
  • org.apache.kafka.streams.scala.ImplicitConversions: Module that brings into scope the implicit conversions between the Scala and Java classes.
  • org.apache.kafka.streams.scala.Serdes: Module that contains all primitive SerDes that can be imported as implicits and a helper to create custom SerDes.
  • -

    The library is cross-built with Scala 2.11 and 2.12. To reference the library compiled against Scala 2.11 include the following in your maven pom.xml add the following:

    +

    The library is cross-built with Scala 2.11 and 2.12. To reference the library compiled against Scala {{scalaVersion}} include the following in your maven pom.xml add the following:

                   <dependency>
                     <groupId>org.apache.kafka</groupId>
    -                <artifactId>kafka-streams-scala_2.11</artifactId>
    +                <artifactId>kafka-streams-scala_{{scalaVersion}}</artifactId>
                     <version>{{fullDotVersion}}</version>
                   </dependency>
                 
    diff --git a/docs/streams/developer-guide/write-streams.html b/docs/streams/developer-guide/write-streams.html index 145eb30..ad320fa 100644 --- a/docs/streams/developer-guide/write-streams.html +++ b/docs/streams/developer-guide/write-streams.html @@ -101,10 +101,10 @@ kafka-clients {{fullDotVersion}} - + org.apache.kafka - kafka-streams-scala_2.11 + kafka-streams-scala_{{scalaVersion}} {{fullDotVersion}} diff --git a/gradle.properties b/gradle.properties index 3e3dbfa..d63d3e3 100644 --- a/gradle.properties +++ b/gradle.properties @@ -20,6 +20,6 @@ group=org.apache.kafka # - tests/kafkatest/version.py (variable DEV_VERSION) # - kafka-merge-pr.py. version=2.2.0-SNAPSHOT -scalaVersion=2.11.12 +scalaVersion=2.12.7 task=build org.gradle.jvmargs=-Xmx1024m -Xss2m diff --git a/release.py b/release.py index d91f535..8e2624e 100755 --- a/release.py +++ b/release.py @@ -245,7 +245,7 @@ def command_stage_docs(): cmd("Building docs", "./gradlew -Pversion=%s clean releaseTarGzAll aggregatedJavadoc" % gradle_version_override, cwd=REPO_HOME, env=jdk8_env) - docs_tar = os.path.join(REPO_HOME, 'core', 'build', 'distributions', 'kafka_2.11-%s-site-docs.tgz' % gradle_version_override) + docs_tar = os.path.join(REPO_HOME, 'core', 'build', 'distributions', 'kafka_2.12-%s-site-docs.tgz' % gradle_version_override) versioned_docs_path = os.path.join(kafka_site_repo_path, docs_version(version)) if not os.path.exists(versioned_docs_path): @@ -641,8 +641,8 @@ Now you should sanity check it before proceeding. All subsequent steps start mak Some suggested steps: * Grab the source archive and make sure it compiles: http://home.apache.org/~%(apache_id)s/kafka-%(rc_tag)s/kafka-%(release_version)s-src.tgz - * Grab one of the binary distros and run the quickstarts against them: http://home.apache.org/~%(apache_id)s/kafka-%(rc_tag)s/kafka_2.11-%(release_version)s.tgz - * Extract and verify one of the site docs jars: http://home.apache.org/~%(apache_id)s/kafka-%(rc_tag)s/kafka_2.11-%(release_version)s-site-docs.tgz + * Grab one of the binary distros and run the quickstarts against them: http://home.apache.org/~%(apache_id)s/kafka-%(rc_tag)s/kafka_2.12-%(release_version)s.tgz + * Extract and verify one of the site docs jars: http://home.apache.org/~%(apache_id)s/kafka-%(rc_tag)s/kafka_2.12-%(release_version)s-site-docs.tgz * Build a sample against jars in the staging repo: (TODO: Can we get a temporary URL before "closing" the staged artifacts?) * Validate GPG signatures on at least one file: wget http://home.apache.org/~%(apache_id)s/kafka-%(rc_tag)s/kafka-%(release_version)s-src.tgz &&