non/spire — pull request #60 by larsrh (2013-01-22 19:43:57+00:00)
Title: Rework project structure: Publish law checking

First of all, here's a summary of the changes:

* core sources of spire now live in their own subdirectory (`core/src`, previously just `src`)
* tweaking the build file, update SBT to 0.12.2
* new artifact: `spire-scalacheck-binding` (exports the law checking, depends on ScalaCheck and ScalaTest)

Everything should still work out of the box like it used to, except that a new artifact is being generated. The name of the `spire` artifact is unchanged.

The new "build workflow":

```bash
$ ./sbt compile # compiles core, scalacheck-binding and examples
$ ./sbt test # tests core and scalacheck-binding
$ ./sbt publish # publishes core and scalacheck-binding as
# 'spire' and 'spire-scalacheck-binding'
```

----

Now, here's why this pull request is so big:

Initially, I had the following concept: Have the ScalaCheck binding as a separate submodule which depends on the core, and the test of the core having the binding as a test dependency. Unfortunately, this doesn't seem to be supported (produced a stack overflow).

Then I made a new submodule for the core sources, but it turned out that it's rather ugly to have an aggregate project if the core sources live in the project root. Hence, I moved them to a dedicated subfolder.