Skip to content

Releases: GO-VIRTUAL-bv/tile38.go

Release list

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 18 Aug 09:21
739b879

Fields and other reply data the client was silently dropping, and the commands, output formats, options and search areas it did not speak yet. Every addition was verified against the tile38/tile38:edge digest pinned in .version.

Breaking changes

Permitted pre-1.0, and deliberate. Most code keeps compiling:

  • SearchObject.Fields is now the named type Fields (still map[string]string underneath), shared with NearbyResult.Fields and FenceEvent.Fields. It stays assignable in both directions, so passing it to a map[string]string parameter still works — but reflect.DeepEqual against a plain map now returns false, and a type switch or assertion on it breaks.
  • NearbyResult gained Z and Fields, and FenceEvent gained Meta, Fields and Distance. Unkeyed struct literals of either type no longer compile; keyed literals are unaffected.

Fixes

  • Object fields are decoded on Points(), PointsWithDistance() and geofence events. Objects() already did; the other paths read past the fields array the server sends, so every field a caller asked for was discarded.
  • The z ordinate is kept on POINTS output and GET … POINT. Tile38 appends it only when non-zero, so both coordinate lengths arrive in one reply.
  • Nearby() on a hook or channel could not emit a command the server accepts: NEARBY reads POINT lat lon meters and rejects CIRCLE, and only Bounds/Circle/Object/Get were exposed. Both now take Point + Radius.
  • HOOKS/CHANS keep the META descriptor, which a listing needs to tell two hooks on the same key apart.

Added

  • Reading fields in one round trip: Get(...).WithFields() plus Fields(), on every output format.
  • Output formats: Rects (BOUNDS), Hashes, A5Cells on all four search verbs.
  • Options: Buffer, Asc/Desc, WhereEval/WhereEvalSha, and Distance on fences, surfaced as FenceEvent.Distance.
  • Search areas: Sector, Hash, QuadKey.
  • Commands: Search, Test, FExists, Stats, ConfigGet/ConfigSet/ConfigRewrite, GC, Healthz, AOFShrink, ReadOnly, Follow/FollowNone, Timeout.
  • Writing a third ordinate: SetCmd.PointZ / PipelineSetCmd.PointZ.

Known upstream issue

NEARBY key BUFFER n … POINT … panics the Tile38 servercmdNearby asserts the area to *geojson.Circle and BUFFER yields a GeometryCollection (internal/server/search.go:569). Buffer is therefore exposed on WithinCmd and IntersectsCmd only, and deliberately not on NearbyCmd.


What's Changed

  • docs: add badges to the README by @XanderD99 in #2
  • ci: note that Codecov is not enabled for now by @XanderD99 in #3
  • chore(deps): bump github.com/testcontainers/testcontainers-go from 0.43.0 to 0.44.0 in the testcontainers group by @dependabot[bot] in #1
  • chore(claude): add licence and workflow guards, release skill, API compat agent, gopls MCP by @XanderD99 in #4
  • fix: return the reply data the client was dropping by @XanderD99 in #5
  • feat: close the remaining Tile38 capability gaps by @XanderD99 in #7
  • ci: pin the golangci-lint version instead of tracking latest by @XanderD99 in #8

New Contributors

Full Changelog: v0.1.0...v0.2.0

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 18 Aug 07:24