Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

# sbt specific
target/
# local sbt caching
Expand Down
5 changes: 2 additions & 3 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
language: scala
scala:
- 2.11.5
- 2.10.4
- 2.11.8
- 2.12.1
jdk:
- oraclejdk7
- oraclejdk8
sudo: false
cache:
Expand Down
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
[![Build Status](https://travis-ci.org/dwhjames/datomisca.svg?branch=master)](https://travis-ci.org/dwhjames/datomisca) [![Download](https://api.bintray.com/packages/dwhjames/maven/datomisca/images/download.svg) ](https://bintray.com/dwhjames/maven/datomisca/_latestVersion)
[![Build Status](https://travis-ci.org/dwhjames/datomisca.svg?branch=master)](https://travis-ci.org/dwhjames/datomisca) [ ![Download](https://api.bintray.com/packages/thyming/maven/datomisca/images/download.svg) ](https://bintray.com/dwhjames/maven/datomisca/_latestVersion)

### NOTE: This is a fork of the official, seemingly abandoned repo modified to support scala 2.12. Most of this work was done by https://github.com/flyingwalrusllc/datomisca but this finishes that and publishes it publicly to bintray.

# [Datomisca](https://dwhjames.github.io/datomisca), embrace Datomic the Scala way

Expand Down
221 changes: 132 additions & 89 deletions build.sbt
Original file line number Diff line number Diff line change
@@ -1,103 +1,146 @@
import sbtunidoc.Plugin.UnidocKeys._
import ReleaseTransformations._
import com.typesafe.sbt.SbtGhPages.GhPagesKeys._

organization in ThisBuild := "com.github.dwhjames"

organization in ThisBuild := "llc.flyingwalrus"
licenses in ThisBuild += ("Apache-2.0", url("http://www.apache.org/licenses/LICENSE-2.0"))

version in ThisBuild := "0.7.0"


scalaVersion in ThisBuild := "2.11.6"

crossScalaVersions in ThisBuild := Seq("2.10.4", "2.11.6")

scalacOptions in ThisBuild ++= Seq(
"-deprecation",
"-encoding", "UTF-8",
"-feature",
"-unchecked",
"-Xfatal-warnings",
"-Xfuture",
"-Xlint",
"-Yno-adapted-args",
"-Ywarn-dead-code",
"-Ywarn-numeric-widen",
"-Ywarn-value-discard"
)

scalacOptions in ThisBuild ++= (
if (scalaVersion.value.startsWith("2.10")) Nil
else List("-Ywarn-unused-import")
)

scalaVersion in ThisBuild := "2.12.2"
crossScalaVersions in ThisBuild := Seq("2.11.8", "2.12.2")

val compilerOptions = Seq(
"-deprecation",
"-encoding", "UTF-8",
"-feature",
"-unchecked",
"-Xfatal-warnings",
"-Xfuture",
"-Xlint",
"-Yno-adapted-args",
"-Ywarn-dead-code",
"-Ywarn-numeric-widen",
"-Ywarn-value-discard"
)

resolvers in ThisBuild ++= Seq(
Resolver.sonatypeRepo("releases"),
Resolver.typesafeRepo("releases"),
"clojars" at "https://clojars.org/repo",
"couchbase" at "http://files.couchbase.com/maven2"
)


shellPrompt in ThisBuild := CustomShellPrompt.customPrompt


// configure publishing to bintray
bintray.Plugin.bintraySettings

"clojars" at "https://clojars.org/repo"
)

lazy val datomisca = project.
in(file(".")).
aggregate(macros, core, tests, integrationTests)

// needed for aggregated build
MacroSettings.settings

libraryDependencies += Dependencies.Compile.datomic

// disable some aggregation tasks for subprojects
aggregate in doc := false

aggregate in Keys.`package` := false

aggregate in packageBin := false

aggregate in packageDoc := false

aggregate in packageSrc := false

aggregate in publish := false

aggregate in publishLocal := false

aggregate in PgpKeys.publishSigned := false

aggregate in PgpKeys.publishLocalSigned := false


lazy val macros = project in file("macros")

// map macros project classes and sources into root project
mappings in (Compile, packageBin) <++= mappings in (macros, Compile, packageBin)

mappings in (Compile, packageSrc) <++= mappings in (macros, Compile, packageSrc)
lazy val tests = project.in(file("tests")).
settings(noPublishSettings).
settings(
name := "datomisca-tests",
libraryDependencies ++= Seq(
datomic,
specs2
),
fork in Test := true,
publishArtifact := false
).
dependsOn(macros, core)

lazy val integrationTests = project.in(file("integration")).
settings(noPublishSettings).
settings(Defaults.itSettings).
settings(
name := "datomisca-tests",
libraryDependencies ++= Seq(
datomic,
scalatest,
xmlModule
),
fork in IntegrationTest := true,
publishArtifact := false
).
dependsOn(macros, core).
configs(IntegrationTest)

lazy val core = project.
in(file("core")).
lazy val core = project.in(file("core")).
settings(noPublishSettings).
settings(
name := "datomisca-core",
libraryDependencies += datomic,
(sourceGenerators in Compile) += ((sourceManaged in Compile) map Boilerplate.genCore).taskValue
).
dependsOn(macros)

// map core project classes and sources into root project
mappings in (Compile, packageBin) <++= mappings in (core, Compile, packageBin)

mappings in (Compile, packageSrc) <++= mappings in (core, Compile, packageSrc)


lazy val tests = project.
in(file("tests")).
dependsOn(macros, core)

lazy val macros = project.in(file("macros")).
settings(noPublishSettings).
settings(
name := "datomisca-macros",
addCompilerPlugin(paradise),
libraryDependencies ++= Seq(
datomic,
reflect(scalaVersion.value)
)
)

lazy val integrationTests = project.
in(file("integration")).
dependsOn(macros, core).
configs(IntegrationTest)
lazy val docs = project.in(file("docs")).
settings(
name := "Datomisca Docs",
moduleName := "datomisca-docs"
).
settings(docSettings).
settings(noPublishSettings).
settings(addCompilerPlugin(paradise)).
dependsOn(core, macros).
enablePlugins(MicrositesPlugin)

val baseSettings = Seq(
scalacOptions ++= compilerOptions
)

val docSettings = baseSettings ++ Seq(
micrositeName := "Datomisca",
micrositeDescription := "Scala API for Datomic",
micrositeAuthor := "Daniel James",
micrositeHighlightTheme := "atom-one-light",
micrositeHomepage := "https://xxx",
micrositeBaseUrl := "datomisca",
micrositeDocumentationUrl := "api",
micrositeGithubOwner := "flyingwalrusllc",
micrositeGithubRepo := "datomisca",
micrositePalette := Map(
"brand-primary" -> "#5B5988",
"brand-secondary" -> "#292E53",
"brand-tertiary" -> "#222749",
"gray-dark" -> "#49494B",
"gray" -> "#7B7B7E",
"gray-light" -> "#E5E5E6",
"gray-lighter" -> "#F4F3F4",
"white-color" -> "#FFFFFF"
),
// addMappingsToSiteDir(mappings in (ScalaUnidoc, packageDoc), micrositeDocumentationUrl),
ghpagesNoJekyll := false,
scalacOptions in (ScalaUnidoc, unidoc) ++= Seq(
"-groups",
"-implicits",
"-doc-source-url", scmInfo.value.get.browseUrl + "/tree/master€{FILE_PATH}.scala",
"-sourcepath", baseDirectory.in(LocalRootProject).value.getAbsolutePath,
"-doc-root-content", (resourceDirectory.in(Compile).value / "rootdoc.txt").getAbsolutePath
),
git.remoteRepo := "git@github.com:flyingwalrusllc/datomisca.git",
includeFilter in makeSite := "*.html" | "*.css" | "*.png" | "*.jpg" | "*.gif" | "*.svg" | "*.js" | "*.swf" | "*.yml" | "*.md"
)

mappings in (Compile, packageBin) ++= (mappings in (macros, Compile, packageBin)).value
mappings in (Compile, packageSrc) ++= (mappings in (macros, Compile, packageSrc)).value

mappings in (Compile, packageBin) ++= (mappings in (core, Compile, packageBin)).value
mappings in (Compile, packageSrc) ++= (mappings in (core, Compile, packageSrc)).value

val noPublishSettings = Seq(
publish := (),
publishLocal := (),
publishArtifact := false
)

def datomic = "com.datomic" % "datomic-free" % "0.9.5561" % Provided
def specs2 = "org.specs2" %% "specs2-core" % "3.8.8" % Test
def scalatest = "org.scalatest" %% "scalatest" % "3.0.1" % "it"
def xmlModule = "org.scala-lang.modules" %% "scala-xml" % "1.0.6"
def paradise = "org.scalamacros" % "paradise" % "2.1.0" cross CrossVersion.full
def reflect(vers: String) = "org.scala-lang" % "scala-reflect" % vers
17 changes: 0 additions & 17 deletions core/build.sbt

This file was deleted.

3 changes: 0 additions & 3 deletions core/src/main/scala/datomisca/Attribute.scala
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,6 @@

package datomisca

import scala.language.reflectiveCalls


/** The representation of Datomic attributes
*
* @constructor construct an attribute out of an ident, valueType,
Expand Down
2 changes: 0 additions & 2 deletions core/src/main/scala/datomisca/DId.scala
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,6 @@

package datomisca

import scala.language.existentials

import datomic.Util

sealed trait DId extends Any {
Expand Down
5 changes: 1 addition & 4 deletions core/src/main/scala/datomisca/Datomic.scala
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,7 @@
package datomisca

import scala.collection.JavaConverters._
import scala.util.{Try, Success, Failure}

import clojure.{lang => clj}

import scala.util.Try

/** Main object containing:
* - all Datomic basic functions (Peer, Transactor)
Expand Down
2 changes: 0 additions & 2 deletions core/src/main/scala/datomisca/DatomicMapping.scala
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,6 @@ package datomisca

import functional.CombinatorImplicits

import scala.language.implicitConversions

object DatomicMapping
extends CombinatorImplicits
{
Expand Down
3 changes: 0 additions & 3 deletions core/src/main/scala/datomisca/Fact.scala
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,6 @@

package datomisca

import scala.language.reflectiveCalls


object Fact {
/** Creates a single assertion about the given entity id `id`.
*
Expand Down
2 changes: 0 additions & 2 deletions core/src/main/scala/datomisca/Log.scala
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,6 @@

package datomisca

import java.util.{Date => JDate}

/** Datomic's database log is a recording of all transaction data in historic
* order, organized for efficient access by transaction.
*
Expand Down
1 change: 0 additions & 1 deletion core/src/main/scala/datomisca/excision.scala
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@

package datomisca

import scala.language.reflectiveCalls
import scala.collection.JavaConverters._

import java.util.Date
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,9 @@

package datomisca.executioncontext

import java.util.concurrent.{ LinkedBlockingQueue, Callable, Executor, ExecutorService, Executors, ThreadFactory, TimeUnit, ThreadPoolExecutor }
import java.util.Collection
import java.util.concurrent.{ LinkedBlockingQueue, Executor, ExecutorService, ThreadFactory, TimeUnit, ThreadPoolExecutor }
import scala.concurrent.forkjoin._
import scala.concurrent.{ BlockContext, ExecutionContext, Awaitable, CanAwait, ExecutionContextExecutor, ExecutionContextExecutorService }
import scala.concurrent.duration.Duration
import scala.concurrent.{ BlockContext, CanAwait, ExecutionContextExecutor }
import scala.util.control.NonFatal


Expand Down
2 changes: 0 additions & 2 deletions core/src/main/scala/datomisca/schemaManagement.scala
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,6 @@

package datomisca

import scala.language.reflectiveCalls

import scala.concurrent.{ ExecutionContext, Future }
import scala.util.Try

Expand Down
3 changes: 0 additions & 3 deletions core/src/main/scala/datomisca/toAndFromDatomic.scala
Original file line number Diff line number Diff line change
Expand Up @@ -114,9 +114,6 @@ import java.{util => ju}
import java.util.{Date, UUID}
import java.net.URI

import clojure.{lang => clj}


/**
* Think of FromDatomicInj[DD, T] as a type-level function: DD => T
* The implicits here construct a multi-parameter type class,
Expand Down
3 changes: 0 additions & 3 deletions core/src/main/scala/datomisca/txdata.scala
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,6 @@

package datomisca

import scala.language.reflectiveCalls


trait TxData {
def toTxData: AnyRef
}
Expand Down
Loading