This commit simplifies Fragment by replacing the request/response channels
with a `sync.Mutex` to restrict access. This also simplifies the
`FragmentContainer` code which can largely be removed now since most of
the methods are simply wrappers around `GetFragment()` and `Fragment`.
This commit moves dependency management to use godep and the
new experimental vendoring support in Go 1.5.
NOTE: You must set `GO15VENDOREXPERIMENT` in your bash environment
for vendoring to work properly! See the updated `README` for details.
This commit moves the index package to the root. Because pilosa
is an index at its core, it's redundant to have an index
subpackage. It also provides better naming such as `pilosa.Bitmap`
instead of `index.Bitmap`.
This commit refactors the query package tests to use the
standard library testing package instead of goconvey. Goconvey
is now completely removed from the repository.
This commit converts the goconvey tests to use the
standard library testing format. The query pkg has
not be converted yet because it is more difficult
to convert.
This commit refactors the config into a `main.Config` object instead
of a global singleton. The `core.Service` is also refactored into
the `main` package and individual pieces of the service are wired
together by the `pilosa` binary.
These two changes are required to begin to decouple packages from
one another and allow them to be individually unit tested. Previously
most top-level objects in the system could access any other top-level
object through the `core.Service` which effectively made `Service` a
singleton in the system. Each top-level object now has inline interfaces
for their dependencies so that can be set at runtime by the `main`
package or can be mocked by a test package.
This commit updates the import path from:
```
pilosa/*
```
to:
```
github.com/umbel/pilosa/*
```
This follows standard Go convention and makes the project "go gettable".
The README was also updated to reflect the changes.