Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
alexandru committed Sep 22, 2016
1 parent 73f746f commit c7a7fce
Show file tree
Hide file tree
Showing 5 changed files with 188 additions and 0 deletions.
1 change: 1 addition & 0 deletions .java-version
@@ -0,0 +1 @@
1.8
166 changes: 166 additions & 0 deletions build.sbt
@@ -0,0 +1,166 @@
import com.typesafe.sbt.pgp.PgpKeys

lazy val projectSettings = Seq(
name := "monix-kafka",
organization := "io.monix",
scalaVersion := "2.11.8",
crossScalaVersions := Seq("2.10.6", "2.11.8", "2.12.0-RC1"),

scalacOptions ++= Seq(
// warnings
"-unchecked", // able additional warnings where generated code depends on assumptions
"-deprecation", // emit warning for usages of deprecated APIs
"-feature", // emit warning usages of features that should be imported explicitly
// Features enabled by default
"-language:higherKinds",
"-language:implicitConversions",
"-language:experimental.macros",
// possibly deprecated options
"-Ywarn-dead-code",
"-Ywarn-inaccessible"
),

// Force building with Java 8
initialize := {
val required = "1.8"
val current = sys.props("java.specification.version")
assert(current == required, s"Unsupported build JDK: java.specification.version $current != $required")
},

// Targeting Java 6, but only for Scala <= 2.11
javacOptions ++= (CrossVersion.partialVersion(scalaVersion.value) match {
case Some((2, majorVersion)) if majorVersion <= 11 =>
// generates code with the Java 6 class format
Seq("-source", "1.6", "-target", "1.6")
case _ =>
// For 2.12 we are targeting the Java 8 class format
Seq.empty
}),

// Targeting Java 6, but only for Scala <= 2.11
scalacOptions ++= (CrossVersion.partialVersion(scalaVersion.value) match {
case Some((2, majorVersion)) if majorVersion <= 11 =>
// generates code with the Java 6 class format
Seq("-target:jvm-1.6")
case _ =>
// For 2.12 we are targeting the Java 8 class format
Seq.empty
}),

// version specific compiler options
scalacOptions ++= (CrossVersion.partialVersion(scalaVersion.value) match {
case Some((2, majorVersion)) if majorVersion >= 11 =>
Seq(
// Turns all warnings into errors ;-)
"-Xfatal-warnings",
// Enables linter options
"-Xlint:adapted-args", // warn if an argument list is modified to match the receiver
"-Xlint:nullary-unit", // warn when nullary methods return Unit
"-Xlint:inaccessible", // warn about inaccessible types in method signatures
"-Xlint:nullary-override", // warn when non-nullary `def f()' overrides nullary `def f'
"-Xlint:infer-any", // warn when a type argument is inferred to be `Any`
"-Xlint:missing-interpolator", // a string literal appears to be missing an interpolator id
"-Xlint:doc-detached", // a ScalaDoc comment appears to be detached from its element
"-Xlint:private-shadow", // a private field (or class parameter) shadows a superclass field
"-Xlint:type-parameter-shadow", // a local type parameter shadows a type already in scope
"-Xlint:poly-implicit-overload", // parameterized overloaded implicit methods are not visible as view bounds
"-Xlint:option-implicit", // Option.apply used implicit view
"-Xlint:delayedinit-select", // Selecting member of DelayedInit
"-Xlint:by-name-right-associative", // By-name parameter of right associative operator
"-Xlint:package-object-classes", // Class or object defined in package object
"-Xlint:unsound-match" // Pattern match may not be typesafe
)
case _ =>
Seq.empty
}),

// For warning of unused imports
scalacOptions += "-Ywarn-unused-import",
scalacOptions in (Compile, console) ~= {_.filterNot("-Ywarn-unused-import" == _)},
scalacOptions in (Test, console) <<= (scalacOptions in (Compile, console)),

scalacOptions in doc ++=
Opts.doc.title(s"Monix"),
scalacOptions in doc ++=
Opts.doc.sourceUrl(s"https://github.com/monixio/monix-kafka/tree/v${version.value}€{FILE_PATH}.scala"),
scalacOptions in doc ++=
Seq("-doc-root-content", file("docs/rootdoc.txt").getAbsolutePath),
scalacOptions in doc ++=
Opts.doc.version(s"${version.value}"),

// ScalaDoc settings
autoAPIMappings := true,
scalacOptions in ThisBuild ++= Seq(
// Note, this is used by the doc-source-url feature to determine the
// relative path of a given source file. If it's not a prefix of a the
// absolute path of the source file, the absolute path of that file
// will be put into the FILE_SOURCE variable, which is
// definitely not what we want.
"-sourcepath", file(".").getAbsolutePath.replaceAll("[.]$", "")
),

parallelExecution in Test := false,
parallelExecution in IntegrationTest := false,
testForkedParallel in Test := false,
testForkedParallel in IntegrationTest := false,
concurrentRestrictions in Global += Tags.limit(Tags.Test, 1),

resolvers ++= Seq(
"Typesafe Releases" at "http://repo.typesafe.com/typesafe/releases",
Resolver.sonatypeRepo("releases")
),

libraryDependencies ++= Seq(
"io.monix" %% "monix-reactive" % "2.0.1",
"org.apache.kafka" % "kafka-clients" % "0.10.0.1",
"com.typesafe" % "config" % "1.3.0",
"org.scalatest" %% "scalatest" % "2.2.4" % "test",
"net.manub" %% "scalatest-embedded-kafka" % "0.7.1" % "test"
),

// -- Settings meant for deployment on oss.sonatype.org

useGpg := true,
useGpgAgent := true,
usePgpKeyHex("2673B174C4071B0E"),

publishMavenStyle := true,
releaseCrossBuild := true,
releasePublishArtifactsAction := PgpKeys.publishSigned.value,

publishTo := {
val nexus = "https://oss.sonatype.org/"
if (isSnapshot.value)
Some("snapshots" at nexus + "content/repositories/snapshots")
else
Some("releases" at nexus + "service/local/staging/deploy/maven2")
},

publishArtifact in Test := false,
pomIncludeRepository := { _ => false }, // removes optional dependencies

pomExtra :=
<url>https://github.com/monixio/monix-kafka/</url>
<licenses>
<license>
<name>Apache License, Version 2.0</name>
<url>https://www.apache.org/licenses/LICENSE-2.0</url>
<distribution>repo</distribution>
</license>
</licenses>
<scm>
<url>git@github.com:monixio/monix-kafka.git</url>
<connection>scm:git:git@github.com:monixio/monix-kafka.git</connection>
</scm>
<developers>
<developer>
<id>alex_ndc</id>
<name>Alexandru Nedelcu</name>
<url>https://alexn.org/</url>
</developer>
</developers>
)

lazy val monixKafka = project.in(file("."))
.settings(projectSettings)

18 changes: 18 additions & 0 deletions project/build.properties
@@ -0,0 +1,18 @@
#
# Copyright (c) 2014-2016 by its authors. Some rights reserved.
# See the project homepage at: https://github.com/monixio/monix-kafka
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

sbt.version=0.13.12
2 changes: 2 additions & 0 deletions project/plugins.sbt
@@ -0,0 +1,2 @@
addSbtPlugin("com.jsuereth" % "sbt-pgp" % "1.0.0")
addSbtPlugin("com.github.gseitz" % "sbt-release" % "1.0.0")
1 change: 1 addition & 0 deletions version.sbt
@@ -0,0 +1 @@
version in ThisBuild := "0.1-SNAPSHOT"

0 comments on commit c7a7fce

Please sign in to comment.