Skip to content

Commit

Permalink
Merge branch 'release/0.12.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
ianoc committed Jul 29, 2015
2 parents 7046e90 + ac5dd7e commit 23b5b57
Show file tree
Hide file tree
Showing 57 changed files with 926 additions and 1,225 deletions.
5 changes: 3 additions & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
language: scala
sudo: false
scala:
- 2.10.4
- 2.9.3
- 2.10.5
- 2.11.7
before_script:
- mysql -u root -e "create database storehaus_test;"
- mysql -u root -e "create user 'storehaususer'@'localhost' identified by 'test1234';"
Expand Down
38 changes: 38 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,43 @@
# Storehaus #

### Version 0.12.0 ###
* Update for new finagle: https://github.com/twitter/storehaus/pull/277
* Move version to separate file, recommended way to do it for sbt: https://github.com/twitter/storehaus/pull/276
* Upgrades scalacheck to the same as other projects, add same scalac op…: https://github.com/twitter/storehaus/pull/275
* Updates for 2.11: https://github.com/twitter/storehaus/pull/274
* AsyncHBaseStringStore is returning wrong instance: https://github.com/twitter/storehaus/pull/271

### Version 0.11.2 ###
* Algebird to 0.10.2 #269

### Version 0.11.1 ###
* storehaus-memcache: pass ttl for MergeableMemcacheStore CAS calls #262
* Upgrade Finagle and Util #265
* Ugprade finagle-memcached to finagle-memcachedx #266
* Elasticsearch test increase timeout #267

### Version 0.11.0 ###
* Add correct String/ChannelBuffer injections #257
* initial scalatest migration #260
* Remove usage of twitter's maven repo, travis seems to dislike it -- mayb... #261
* Bijection 0.8.0, algebird 0.10.0, scalding 0.14.0, and scala 2.10.5

### Version 0.10.0 ###
* Use latest scalding, algebird, and bijection versions: https://github.com/twitter/storehaus/pull/255
* Use new Travis CI container infrastructure: https://github.com/twitter/storehaus/pull/254
* Add hook for CAS based memcache mergeable: https://github.com/twitter/storehaus/pull/252
* Bump bijection/algebird versions: https://github.com/twitter/storehaus/pull/253
* Remove + operator: https://github.com/twitter/storehaus/pull/21
* Memcache mergeable - use semigroup: https://github.com/twitter/storehaus/pull/251
* add logic for replicating writes and reads to stores: https://github.com/twitter/storehaus/pull/20
* bump finagle and util to 6.22.0: https://github.com/twitter/storehaus/pull/247
* Minified kill 2.9.3: https://github.com/twitter/storehaus/pull/249
* Read through store - do not query backing store when no cache miss: https://github.com/twitter/storehaus/pull/246
* implementation of store that uses http protocol: https://github.com/twitter/storehaus/pull/241
* Retry unittest: https://github.com/twitter/storehaus/pull/240
* Added endpoint support to storehaus-dynamodb: https://github.com/twitter/storehaus/pull/236
* Https sonatype: https://github.com/twitter/storehaus/pull/237

### Version 0.9.1 ###
* Feature/write through cache perf: https://github.com/twitter/storehaus/pull/234
* Share the Retrying Read Write store in storehaus repo: https://github.com/twitter/storehaus/pull/230
Expand Down
38 changes: 25 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -83,21 +83,23 @@ The [`MergeableStore`](http://twitter.github.com/storehaus/#com.twitter.storehau

Storehaus provides a number of modules wrapping existing key-value stores. Enriching these key-value stores with Storehaus's combinators has been hugely helpful to us here at Twitter. Writing your jobs in terms of Storehaus stores makes it easy to test your jobs; use an in-memory `JMapStore` in testing and a `MemcacheStore` in production.

* [Storehaus-memcache](http://twitter.github.com/storehaus/#com.twitter.storehaus.memcache.MemcacheStore) (wraps Twitter's [finagle-memcached](https://github.com/twitter/finagle/tree/master/finagle-memcached) library)
* [Storehaus-memcache](http://twitter.github.com/storehaus/#com.twitter.storehaus.memcache.MemcacheStore) (wraps Twitter's [finagle-memcachedx](https://github.com/twitter/finagle/tree/master/finagle-memcachedx) library)
* [Storehaus-mysql](http://twitter.github.com/storehaus/#com.twitter.storehaus.mysql.MySqlStore) (wraps Twitter's [finagle-mysql](https://github.com/twitter/finagle/tree/master/finagle-mysql) library)
* [Storehaus-redis](http://twitter.github.com/storehaus/#com.twitter.storehaus.redis.RedisStore) (wraps Twitter's [finagle-redis](https://github.com/twitter/finagle/tree/master/finagle-redis) library)
* [Storehaus-hbase](http://twitter.github.com/storehaus/#com.twitter.storehaus.hbase.HBaseStore)
* [storehaus-dynamodb](https://github.com/twitter/storehaus/tree/develop/storehaus-dynamodb)
* [Storehaus-dynamodb](https://github.com/twitter/storehaus/tree/develop/storehaus-dynamodb)
* [Storehaus-leveldb](https://github.com/twitter/storehaus/tree/develop/storehaus-leveldb)

#### Planned Modules

Here's a list of modules we plan in implementing, with links to the github issues tracking progress on these modules:

* [storehaus-leveldb](https://github.com/twitter/storehaus/issues/51)
* [storehaus-berkeleydb](https://github.com/twitter/storehaus/issues/52)

## Community and Documentation

This, and all [github.com/twitter](https://github.com/twitter) projects, are under the [Twitter Open Source Code of Conduct](https://engineering.twitter.com/opensource/code-of-conduct). Additionally, see the [Typelevel Code of Conduct](http://typelevel.org/conduct) for specific examples of harassing behavior that are not tolerated.

To learn more and find links to tutorials and information around the web, check out the [Storehaus Wiki](https://github.com/twitter/storehaus/wiki).

The latest ScalaDocs are hosted on Storehaus's [Github Project Page](http://twitter.github.io/storehaus).
Expand All @@ -106,27 +108,37 @@ Discussion occurs primarily on the [Storehaus mailing list](https://groups.googl

## Maven

Storehaus modules are available on maven central. The current groupid and version for all modules is, respectively, `"com.twitter"` and `0.9.0`.
Storehaus modules are available on maven central. The current groupid and version for all modules is, respectively, `"com.twitter"` and `0.12.0`.

Current published artifacts are

* `storehaus-core_2.9.3`
* `storehaus-core_2.11`
* `storehaus-core_2.10`
* `storehaus-algebra_2.9.3`
* `storehaus-algebra_2.11`
* `storehaus-algebra_2.10`
* `storehaus-memcache_2.9.3`
* `storehaus-memcache_2.11`
* `storehaus-memcache_2.10`
* `storehaus-mysql_2.9.3`
* `storehaus-mysql_2.11`
* `storehaus-mysql_2.10`
* `storehaus-hbase_2.9.3`
* `storehaus-hbase_2.11`
* `storehaus-hbase_2.10`
* `storehaus-redis_2.9.3`
* `storehaus-redis_2.11`
* `storehaus-redis_2.10`
* `storehaus-dynamodb_2.9.3`
* `storehaus-dynamodb_2.11`
* `storehaus-dynamodb_2.10`
* `storehaus-cache_2.9.3`
* `storehaus-kafka-08_2.11`
* `storehaus-kafka-08_2.10`
* `storehaus-mongodb_2.11`
* `storehaus-mongodb_2.10`
* `storehaus-elasticsearch_2.11`
* `storehaus-elasticsearch_2.10`
* `storehaus-leveldb_2.11`
* `storehaus-leveldb_2.10`
* `storehaus-http_2.11`
* `storehaus-http_2.10`
* `storehaus-cache_2.11`
* `storehaus-cache_2.10`
* `storehaus-testing_2.9.3`
* `storehaus-testing_2.11`
* `storehaus-testing_2.10`

The suffix denotes the scala version.
Expand Down
101 changes: 54 additions & 47 deletions project/Build.scala
Original file line number Diff line number Diff line change
Expand Up @@ -28,15 +28,9 @@ import AssemblyKeys._
object StorehausBuild extends Build {
def withCross(dep: ModuleID) =
dep cross CrossVersion.binaryMapped {
case "2.9.3" => "2.9.2" // TODO: hack because twitter hasn't built things against 2.9.3
case version if version startsWith "2.10" => "2.10" // TODO: hack because sbt is broken
case x => x
}

def specs2Import(scalaVersion: String) = scalaVersion match {
case version if version startsWith "2.9" => "org.specs2" %% "specs2" % "1.12.4.1" % "test"
case version if version startsWith "2.10" => "org.specs2" %% "specs2" % "1.13" % "test"
}
val extraSettings =
Project.defaultSettings ++ Boilerplate.settings ++ assemblySettings ++ mimaDefaultSettings

Expand All @@ -57,20 +51,23 @@ object StorehausBuild extends Build {

val sharedSettings = extraSettings ++ ciSettings ++ Seq(
organization := "com.twitter",
scalaVersion := "2.9.3",
version := "0.9.1",
crossScalaVersions := Seq("2.9.3", "2.10.4"),
scalaVersion := "2.10.5",
crossScalaVersions := Seq("2.10.5", "2.11.7"),
javacOptions ++= Seq("-source", "1.6", "-target", "1.6"),
javacOptions in doc := Seq("-source", "1.6"),
libraryDependencies <+= scalaVersion(specs2Import(_)),
libraryDependencies += "org.scalatest" %% "scalatest" % scalatestVersion % "test",
resolvers ++= Seq(
Opts.resolver.sonatypeSnapshots,
Opts.resolver.sonatypeReleases,
"Twitter Maven" at "http://maven.twttr.com",
"Conjars Repository" at "http://conjars.org/repo"
),
parallelExecution in Test := true,
scalacOptions ++= Seq(Opts.compile.unchecked, Opts.compile.deprecation),
scalacOptions ++= Seq(
"-unchecked",
"-deprecation",
"-Xlint",
"-Yresolve-term-conflict:package"
),

// Publishing options:
publishMavenStyle := true,
Expand Down Expand Up @@ -117,13 +114,14 @@ object StorehausBuild extends Build {
def youngestForwardCompatible(subProj: String) =
Some(subProj)
.filterNot(unreleasedModules.contains(_))
.map { s => "com.twitter" % ("storehaus-" + s + "_2.9.3") % "0.9.0" }

val algebirdVersion = "0.7.0"
val bijectionVersion = "0.6.3"
val utilVersion = "6.11.0"
val scaldingVersion = "0.11.1"
.map { s => "com.twitter" % ("storehaus-" + s + "_2.10") % "0.12.0" }

val algebirdVersion = "0.11.0"
val bijectionVersion = "0.8.0"
val utilVersion = "6.26.0"
val scaldingVersion = "0.15.0"
val finagleVersion = "6.27.0"
val scalatestVersion = "2.2.4"
lazy val storehaus = Project(
id = "storehaus",
base = file("."),
Expand All @@ -141,10 +139,11 @@ object StorehausBuild extends Build {
storehausRedis,
storehausHBase,
storehausDynamoDB,
storehausKafka,
storehausLevelDB,
storehausKafka08,
storehausMongoDB,
storehausElastic,
storehausHttp,
storehausTesting
)

Expand Down Expand Up @@ -181,25 +180,29 @@ object StorehausBuild extends Build {
"com.twitter" %% "algebird-core" % algebirdVersion,
"com.twitter" %% "bijection-core" % bijectionVersion,
"com.twitter" %% "bijection-netty" % bijectionVersion,
Finagle.module("memcached")
"com.twitter" %% "finagle-memcachedx" % finagleVersion excludeAll(
// we don't use this and its not on maven central.
ExclusionRule("com.twitter.common.zookeeper"),
ExclusionRule("com.twitter.common")
)
)
).dependsOn(storehausAlgebra % "test->test;compile->compile")

lazy val storehausMySQL = module("mysql").settings(
libraryDependencies += Finagle.module("mysql")
libraryDependencies += "com.twitter" %% "finagle-mysql" % finagleVersion
).dependsOn(storehausAlgebra % "test->test;compile->compile")

lazy val storehausRedis = module("redis").settings(
libraryDependencies ++= Seq (
"com.twitter" %% "bijection-core" % bijectionVersion,
"com.twitter" %% "bijection-netty" % bijectionVersion,
Finagle.module("redis")
"com.twitter" %% "finagle-redis" % finagleVersion
),
// we don't want various tests clobbering each others keys
parallelExecution in Test := false
).dependsOn(storehausAlgebra % "test->test;compile->compile")

lazy val storehausHBase= module("hbase").settings(
lazy val storehausHBase = module("hbase").settings(
libraryDependencies ++= Seq(
"com.twitter" %% "algebird-core" % algebirdVersion,
"com.twitter" %% "bijection-core" % bijectionVersion,
Expand All @@ -213,7 +216,7 @@ object StorehausBuild extends Build {
parallelExecution in Test := false
).dependsOn(storehausAlgebra % "test->test;compile->compile")

lazy val storehausDynamoDB= module("dynamodb").settings(
lazy val storehausDynamoDB = module("dynamodb").settings(
libraryDependencies ++= Seq(
"com.twitter" %% "algebird-core" % algebirdVersion,
"com.twitter" %% "bijection-core" % bijectionVersion,
Expand All @@ -225,61 +228,58 @@ object StorehausBuild extends Build {
parallelExecution in Test := false
).dependsOn(storehausAlgebra % "test->test;compile->compile")

lazy val storehausKafka = module("kafka").settings(
libraryDependencies ++= Seq (
"com.twitter" %% "bijection-core" % bijectionVersion,
"com.twitter" %% "bijection-avro" % bijectionVersion,
"com.twitter"%"kafka_2.9.2"%"0.7.0" % "provided" excludeAll(
ExclusionRule("com.sun.jdmk","jmxtools"),
ExclusionRule( "com.sun.jmx","jmxri"),
ExclusionRule( "javax.jms","jms")
)
),
// we don't want various tests clobbering each others keys
parallelExecution in Test := false
).dependsOn(storehausAlgebra % "test->test;compile->compile")
lazy val storehausLevelDB = module("leveldb").settings(
libraryDependencies +=
"org.fusesource.leveldbjni" % "leveldbjni-all" % "1.8",
parallelExecution in Test := false,
// workaround because of how sbt handles native libraries
// http://stackoverflow.com/questions/19425613/unsatisfiedlinkerror-with-native-library-under-sbt
testOptions in Test := Seq(),
fork in Test := true
).dependsOn(storehausCore % "test->test;compile->compile")

lazy val storehausKafka08 = module("kafka-08").settings(
libraryDependencies ++= Seq (
"com.twitter" %% "bijection-core" % bijectionVersion,
"com.twitter" %% "bijection-avro" % bijectionVersion,
"org.apache.kafka" % "kafka_2.9.2" % "0.8.0" % "provided" excludeAll(
"org.apache.kafka" %% "kafka" % "0.8.2.1" % "provided" excludeAll(
ExclusionRule(organization = "com.sun.jdmk"),
ExclusionRule(organization = "com.sun.jmx"),
ExclusionRule(organization = "javax.jms"))
),
// we don't want various tests clobbering each others keys
parallelExecution in Test := false
).dependsOn(storehausCore,storehausAlgebra % "test->test;compile->compile")
).dependsOn(storehausCore, storehausAlgebra % "test->test;compile->compile")

lazy val storehausMongoDB= module("mongodb").settings(
lazy val storehausMongoDB = module("mongodb").settings(
libraryDependencies ++= Seq(
"com.twitter" %% "bijection-core" % bijectionVersion,
"org.mongodb" %% "casbah" % "2.6.4"
"org.mongodb" %% "casbah" % "2.8.2"
),
parallelExecution in Test := false
).dependsOn(storehausAlgebra % "test->test;compile->compile")

lazy val storehausElastic = module("elasticsearch").settings(
libraryDependencies ++= Seq (
"org.elasticsearch" % "elasticsearch" % "0.90.9",
"org.json4s" %% "json4s-native" % "3.2.6",
"org.json4s" %% "json4s-native" % "3.2.10",
"com.google.code.findbugs" % "jsr305" % "1.3.+",
"com.twitter" %% "bijection-json4s" % bijectionVersion
),
// we don't want various tests clobbering each others keys
parallelExecution in Test := false
).dependsOn(storehausAlgebra % "test->test;compile->compile")


val storehausTesting = Project(
id = "storehaus-testing",
base = file("storehaus-testing"),
settings = sharedSettings ++ Seq(
name := "storehaus-testing",
previousArtifact := youngestForwardCompatible("testing"),
libraryDependencies ++= Seq("org.scalacheck" %% "scalacheck" % "1.10.0" withSources(),
withCross("com.twitter" %% "util-core" % utilVersion))
libraryDependencies ++= Seq(
"org.scalacheck" %% "scalacheck" % "1.12.2" withSources(),
withCross("com.twitter" %% "util-core" % utilVersion)
)
)
)

Expand All @@ -288,8 +288,15 @@ object StorehausBuild extends Build {
"com.google.code.java-allocation-instrumenter" % "java-allocation-instrumenter" % "2.0",
"com.google.code.gson" % "gson" % "1.7.1",
"com.twitter" %% "bijection-core" % bijectionVersion,
"com.twitter" %% "algebird-core" % algebirdVersion),
javaOptions in run <++= (fullClasspath in Runtime) map { cp => Seq("-cp", sbt.Build.data(cp).mkString(":")) }
"com.twitter" %% "algebird-core" % algebirdVersion
),
javaOptions in run <++= (fullClasspath in Runtime) map { cp => Seq("-cp", sbt.Build.data(cp).mkString(":")) }
).dependsOn(storehausCore, storehausAlgebra, storehausCache)

lazy val storehausHttp = module("http").settings(
libraryDependencies ++= Seq(
"com.twitter" %% "finagle-http" % finagleVersion,
"com.twitter" %% "bijection-netty" % bijectionVersion
)
).dependsOn(storehausCore)
}
11 changes: 0 additions & 11 deletions project/Finagle.scala

This file was deleted.

2 changes: 1 addition & 1 deletion project/build.properties
Original file line number Diff line number Diff line change
@@ -1 +1 @@
sbt.version=0.13.0
sbt.version=0.13.8
4 changes: 2 additions & 2 deletions project/plugins.sbt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
resolvers ++= Seq(
"jgit-repo" at "http://download.eclipse.org/jgit/maven",
"sonatype-releases" at "http://oss.sonatype.org/content/repositories/releases"
"sonatype-releases" at "https://oss.sonatype.org/content/repositories/releases"
)

addSbtPlugin("com.typesafe.sbt" % "sbt-ghpages" % "0.5.1")
Expand All @@ -9,4 +9,4 @@ addSbtPlugin("com.typesafe" % "sbt-mima-plugin" % "0.1.6")

addSbtPlugin("io.spray" % "sbt-boilerplate" % "0.5.1")

addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.11.2")
addSbtPlugin("com.eed3si9n" % "sbt-assembly" % "0.11.2")
Loading

0 comments on commit 23b5b57

Please sign in to comment.