felt/geo_postgis
64.5
Adequate · 3 October 2026
789
lines of production code
Elixir
primary language
2
measurements over time
What this system is
This system is an Elixir library that integrates the Geo and PostGIS ecosystems with Ecto, enabling robust spatial data handling within database schemas. It provides macros for PostGIS geometry operations and distance calculations, while supporting binary WKB encoding and multi-dimensional coordinate variants (Z/M). The library manages the casting and persistence of various geometry types, ensuring compatibility with modern Elixir and database driver versions.
Features
New PostGIS geometry and distance macros
This update adds several new PostGIS functions to the Ecto query interface, including \st\_distance\_in\_meters\ for accurate metric distance calculations, \st\_dwithin\ and \st\_dwithin\_in\_meters\ for proximity checks with optional spheroid support, and geometry manipulation macros like \st\_geometric\_median\, \st\_expand\, \st\_concave\_hull\, and \st\_collect\. It also corrects a typo in the \st\_crosses\ fragment (fixing 'ST\_Crosess' to 'ST\_Crosses') and updates the module documentation links.
lib · high confidence
Behavioural changes
Migrate configuration system to Elixir 1.11+ and update test environment
The application configuration has been migrated from the deprecated \Mix.Config\ module to the modern \import Config\ syntax, requiring a minimum Elixir version of 1.11. In the test environment, the repository configuration has been updated to use \Geo.PostGIS.Test.Repo\ instead of \Geo.Ecto.Test.Repo\, and the logger level has been adjusted from \:warn\ to \:warning\ to align with current Elixir standards.
config · high confidence
PostGIS extension now uses binary WKB format and supports Z/M coordinate variants
The Postgrex extension for PostGIS has been updated to use the binary format (WKB) instead of text (WKT) for encoding and decoding geometry data, which changes the underlying storage and transmission method. This update also adds support for geometry types with Z (elevation) and M (measure) coordinates, including PointZ, PointM, PointZM, LineStringZ, LineStringM, LineStringZM, MultiLineStringZ, MultiLineStringM, MultiLineStringZM, and PolygonZ. Additionally, the extension now defaults to copying binary data during decoding rather than referencing it, and includes a new configuration module to allow users to specify a custom JSON library for GeoJSON casting.
_lib/geo\postgis · high confidence
Release v3.7.1 with Geo v4.0.0 support and modernized project configuration
This release adds support for the newly released \geo\ v4.0.0 while maintaining compatibility with v3.6.x and v3.7.x. It also introduces a \.formatter.exs\ file to standardize code formatting via \mix format\, updates the CI configuration to use GitHub Actions (replacing Travis CI) with Elixir 1.11+ and OTP 22.3, and refreshes the README to reflect current installation and usage patterns.
(repo-wide) · high confidence
Test coverage
Expanded test coverage for PostGIS geometry types and Ecto integration
Added comprehensive tests for the \Geo.PostGIS.Geometry\ cast function, verifying support for both string-keyed and atom-keyed maps for Points and GeometryCollections. The Ecto integration tests were updated to use the unified \Geo.PostGIS.Geometry\ type across all schema fields (replacing specific types like \Geo.MultiPolygon\ or \Geo.Point\) and now include explicit PostGIS extension setup. New tests were added to verify round-trip insertion and retrieval for 3D and 4D geometry types, including \PointZ\, \LineStringZ\, and \LineStringZM\, alongside existing 2D geometries.
test · high confidence
Dependencies
Major dependency upgrade and Elixir 1.11 minimum requirement
This release upgrades core dependencies to their latest major versions, including Ecto 3.13, Postgrex 0.21, Geo 4.1, and Jason 1.4, while also updating documentation tooling to ex\_doc 0.40. To support these changes, the minimum required Elixir version has been raised from 1.4 to 1.11. Users should ensure their environment meets this requirement before upgrading.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 64 → 65 (+0.6)
- Rubric changed (rubric-2026.09.15 → rubric-2026.10.1) — scores are not directly comparable.
Lenses
- Code Health 100 → 100 (+0.0)
- Architecture 69 → 69 (+0.0)
- Maturity 59 → 57 (-2.0)
- Readiness 66 → 68 (+1.7)
- Security 64 → 70 (+6.0)
Resolved (2)
- Documentation: no architecture or design documentation (README.md)
- Documentation: no usage examples (README.md)
New (1)
- Orphaned files with no living knowledge
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
felt/geo_postgis was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 3 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit cfa62078616374d6e00d0d996efa321df83cdb4b — the exact code this score is about.
- Scored under rubric-2026.10.1 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-24c657e50118.