diff --git a/CHANGELOG.md b/CHANGELOG.md index 5a4fb6e3..2b838155 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/). +## [1.5.4] - 2016-11-17 +### Fixed +- #84: Hotfix - roaming fence deadlock + ## [1.5.3] - 2016-11-16 ### Added - #4: Official docker support diff --git a/README.md b/README.md index b41ba288..64416123 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@

Build Status -Version +Version

Tile38 is an open source (MIT licensed), in-memory geolocation data store, spatial index, and realtime geofence. It supports a variety of object types including lat/lon points, bounding boxes, XYZ tiles, Geohashes, and GeoJSON. @@ -26,7 +26,7 @@ Tile38 is an open source (MIT licensed), in-memory geolocation data store, spati - Spatial index with [search](#searching) methods such as Nearby, Within, and Intersects. - Realtime [geofencing](#geofencing) through persistent sockets or [webhooks](http://tile38.com/commands/sethook). - Object types of [lat/lon](#latlon-point), [bbox](#bounding-box), [Geohash](#geohash), [GeoJSON](#geojson), [QuadKey](#quadkey), and [XYZ tile](#xyz-tile). -- Support for lots of [Clients Libraries](#client-libraries) written in many different langauges. +- Support for lots of [Clients Libraries](#client-libraries) written in many different languages. - Variety of protocols, including [http](#http) (curl), [websockets](#websockets), [telnet](#telnet), and the [Redis RESP](http://redis.io/topics/protocol). - Server responses are [RESP](http://redis.io/topics/protocol) or [JSON](http://www.json.org). - Full [command line interface](#cli). @@ -203,7 +203,7 @@ The `detect` may be one of the following values. All object types except for XYZ Tiles and QuadKeys can be stored in a collection. XYZ Tiles and QuadKeys are reserved for the SEARCH keyword only. #### Lat/lon point -The most basic object type is a point that is composed of a latitude and a longitude. There is an optional `z` member that may be used for auxilary data such as elevation or a timestamp. +The most basic object type is a point that is composed of a latitude and a longitude. There is an optional `z` member that may be used for auxiliary data such as elevation or a timestamp. ``` set fleet truck1 point 33.5123 -112.2693 # plain lat/lon set fleet truck1 point 33.5123 -112.2693 225 # lat/lon with z member diff --git a/build.sh b/build.sh index 6cf8269c..2413f4b1 100755 --- a/build.sh +++ b/build.sh @@ -1,7 +1,7 @@ #!/bin/bash set -e -VERSION="1.5.3" +VERSION="1.5.4" PROTECTED_MODE="no" # Hardcode some values to the core package @@ -83,6 +83,8 @@ package(){ mv tile38-cli packages/$bdir fi cp README.md packages/$bdir + cp CHANGELOG.md packages/$bdir + cp LICENSE packages/$bdir cd packages if [ "$2" == "linux" ]; then tar -zcf $bdir.tar.gz $bdir diff --git a/client/README.md b/client/README.md index f0ec35a3..be9e861b 100644 --- a/client/README.md +++ b/client/README.md @@ -56,7 +56,7 @@ func main(){ }() time.Sleep(time.Second / 2) // wait a moment - // Retreive the point we just set. + // Retrieve the point we just set. go func() { conn, err := pool.Get() // get a conn from the pool if err != nil { @@ -71,4 +71,4 @@ func main(){ }() time.Sleep(time.Second / 2) // wait a moment } -``` \ No newline at end of file +```:q \ No newline at end of file diff --git a/controller/bing/ext.go b/controller/bing/ext.go index af2f02f5..b9e73555 100644 --- a/controller/bing/ext.go +++ b/controller/bing/ext.go @@ -48,7 +48,7 @@ func TileXYToBounds(tileX, tileY int64, levelOfDetail uint64) (minLat, minLon, m return } -// QuadKeyToBounds convers a quadkey to bounds +// QuadKeyToBounds converts a quadkey to bounds func QuadKeyToBounds(quadkey string) (minLat, minLon, maxLat, maxLon float64, err error) { for i := 0; i < len(quadkey); i++ { switch quadkey[i] { diff --git a/controller/fence.go b/controller/fence.go index 16bb48f7..dc1cad7f 100644 --- a/controller/fence.go +++ b/controller/fence.go @@ -190,8 +190,6 @@ func fenceMatchObject(fence *liveFenceSwitches, obj geojson.Object) bool { } func fenceMatchRoam(c *Controller, fence *liveFenceSwitches, tkey, tid string, obj geojson.Object) (keys, ids []string, meterss []float64) { - c.mu.RLock() - defer c.mu.RUnlock() col := c.getCol(fence.roam.key) if col == nil { return diff --git a/docker/Dockerfile b/docker/Dockerfile index 22a03700..2e5d47f8 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,6 +1,6 @@ FROM alpine:3.4 -ENV TILE38_VERSION 1.5.3 +ENV TILE38_VERSION 1.5.4 ENV TILE38_DOWNLOAD_URL https://github.com/tidwall/tile38/releases/download/$TILE38_VERSION/tile38-$TILE38_VERSION-linux-amd64.tar.gz RUN addgroup -S tile38 && adduser -S -G tile38 tile38 diff --git a/docker/README.md b/docker/README.md index 11e1062b..45159140 100644 --- a/docker/README.md +++ b/docker/README.md @@ -9,7 +9,7 @@ Tile38 is an open source (MIT licensed), in-memory geolocation data store, spati - Spatial index with [search](#searching) methods such as Nearby, Within, and Intersects. - Realtime [geofencing](#geofencing) through persistent sockets or [webhooks](http://tile38.com/commands/sethook). - Object types of [lat/lon](#latlon-point), [bbox](#bounding-box), [Geohash](#geohash), [GeoJSON](#geojson), [QuadKey](#quadkey), and [XYZ tile](#xyz-tile). -- Support for lots of [Clients Libraries](#client-libraries) written in many different langauges. +- Support for lots of [Clients Libraries](#client-libraries) written in many different languages. - Variety of protocols, including [http](#http) (curl), [websockets](#websockets), [telnet](#telnet), and the [Redis RESP](http://redis.io/topics/protocol). - Server responses are [RESP](http://redis.io/topics/protocol) or [JSON](http://www.json.org). - Full [command line interface](#cli). diff --git a/geojson/object.go b/geojson/object.go index 5f44c4b3..5a4dd384 100644 --- a/geojson/object.go +++ b/geojson/object.go @@ -77,7 +77,7 @@ type Object interface { CalculatedPoint() Position // JSON is the json representation of the object. This might not be exactly the same as the original. JSON() string - // String returns a string represenation of the object. This may be JSON or something else. + // String returns a string representation of the object. This may be JSON or something else. String() string // PositionCount return the number of coordinates. PositionCount() int diff --git a/index/rtree/rtreed.go b/index/rtree/rtreed.go index 218cec49..0cd8c704 100644 --- a/index/rtree/rtreed.go +++ b/index/rtree/rtreed.go @@ -320,7 +320,7 @@ func d3disconnectBranch(node *d3nodeT, index int) { } // Pick a branch. Pick the one that will need the smallest increase -// in area to accomodate the new rectangle. This will result in the +// in area to accommodate the new rectangle. This will result in the // least total area for the covering rectangles in the current node. // In case of a tie, pick the one which was smaller before, to get // the best resolution when searching.