Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
178 commits
Select commit Hold shift + click to select a range
f0be38e
chore: bump version 0.3.0 → 0.4.0 across project
May 27, 2026
e80b7aa
test(pmtiles): add failing encoder tests
May 27, 2026
06be53f
feat(gridx): add Quadbin cell-math helper + unit tests
May 27, 2026
555a321
feat(pmtiles): add v3 spec encoder + hilbert index
May 27, 2026
d902d41
feat(pmtiles): add PMTilesAcc UDAF buffer
May 27, 2026
bd233df
feat(gridx): add 9 quadbin grid-math expressions
May 27, 2026
a9e1a8f
feat(pmtiles): add gbx_pmtiles_agg UDAF + registration + e2e tests
May 27, 2026
91ae1c9
feat(gridx): quadbin functions.scala — registration + Scala API
May 27, 2026
8bced3c
test(gridx): end-to-end tests for all 9 quadbin functions
May 27, 2026
7b99e31
test(vectorx): add failing ST_AsMvt single-point encoding test
May 27, 2026
a35f817
feat(vectorx): add MvtAcc aggregation buffer
May 27, 2026
721561a
feat(vectorx): add MvtWriter — GDAL OGR MVT driver wrapper
May 27, 2026
3541a45
feat(vectorx): add ST_AsMvt TypedImperativeAggregate
May 27, 2026
71c1b63
feat(vectorx): add top-level functions.scala — Scala API + registration
May 27, 2026
d6afb21
test(vectorx): expand ST_AsMvt coverage — multi-feature + empty-group
May 27, 2026
c3e3f77
feat(vectorx): add Python bindings — st_asmvt + register
May 27, 2026
bb58c37
feat(gridx): quadbin Python bindings + tests
May 27, 2026
7aed373
test(vectorx): add Python tests for gbx_st_asmvt
May 27, 2026
8ead446
fix(gridx): accept Long resolution / k in quadbin eval methods
May 27, 2026
fe07438
feat(pmtiles): DataSource writer + write-commit protocol
May 27, 2026
4ce3aff
docs(gridx): SQL examples + canonical names for 9 quadbin functions
May 27, 2026
1462dd7
fix(vectorx): MvtWriter loads libgdalalljni.so before OGR call
May 27, 2026
d4134b0
docs(vectorx): register gbx_st_asmvt in canonical function list
May 27, 2026
136b3c7
docs(vectorx): add SQL example for gbx_st_asmvt + regen function-info
May 27, 2026
390d6fd
docs(vectorx): document gbx_st_asmvt + add v0.4.0 release-notes bullet
May 27, 2026
e6cfb44
style(vectorx): apply black formatting to Python sources
May 27, 2026
bc9aa8f
docs(gridx): document quadbin functions + add release-notes bullet
May 27, 2026
2b3ef93
feat(pmtiles): Python bindings + register_ds wiring + tests
May 27, 2026
ebd314a
Merge Wave 3: quadbin grid math (gridx/quadbin subpackage)
May 27, 2026
ac190cd
docs(pmtiles): SQL examples + registered_functions + user docs + rele…
May 27, 2026
2e1a42d
fix(docker): worktree-aware container mount in gbx:docker:start
May 27, 2026
5d3f6f9
style(pmtiles): scalastyle clean + correct spec offsets in tests
May 27, 2026
7ad7ff5
test(vectorx): cover branches for >=85% coverage; harden MvtWriter ag…
May 27, 2026
6480459
chore(commands): add pmtiles to gbx:coverage:scala-package mapping
May 27, 2026
1b33b24
style(pmtiles): apply black formatting to test_pmtiles.py
May 27, 2026
989575d
Merge Wave 1: VectorX foundation + ST_AsMVT (first VectorX expression)
May 27, 2026
3a22117
Merge Wave 6: PMTiles encoder UDAF + DataSource writer
May 27, 2026
8cd1f24
feat(rasterx): add RST_Quadbin_RasterToGrid shared helper
May 27, 2026
45eb2b7
feat(rasterx): 5 raster->quadbin aggregator expressions
May 27, 2026
0e6673f
feat(rasterx): register 5 raster->quadbin aggregator SQL names
May 27, 2026
420eeb4
test(rasterx): end-to-end tests for raster->quadbin aggregators
May 27, 2026
55b3dda
feat(rasterx): Python bindings + tests for 5 raster->quadbin aggregators
May 27, 2026
1516212
docs(rasterx): SQL examples + canonical names for 5 raster->quadbin a…
May 27, 2026
91e6378
docs(rasterx): document raster->quadbin aggregators + release notes b…
May 27, 2026
4f2ac42
Merge Wave 4: raster→quadbin aggregators (5 functions)
May 28, 2026
9ae5a78
test(streamline): trim redundant tests in Waves 1, 3, 4 (-149 lines)
May 28, 2026
5d341b8
test(streamline): consolidate redundant test variants in Wave 6 (-57 …
May 28, 2026
4b7160b
feat(rasterx): add TileMath — web-mercator XYZ tile bbox math + tests
May 28, 2026
f3b6c63
feat(rasterx): add RST_ToWebMercator — Warp to EPSG:3857
May 28, 2026
6f5d102
feat(rasterx): add RST_TileXYZ — single (z,x,y) tile to PNG/JPG bytes
May 28, 2026
a4a2e7b
feat(rasterx): add RST_XYZPyramid generator expression
May 28, 2026
3b4c051
feat(rasterx): register 3 web-mercator tile functions + end-to-end tests
May 28, 2026
4a71b91
feat(rasterx): Python bindings + tests for web-mercator tile functions
May 28, 2026
d38617f
docs(rasterx): document web-mercator tile output + register canonical…
May 28, 2026
16832bb
style(rasterx): black-format Wave 5 Python bindings + tests
May 28, 2026
95f3a76
Merge Wave 5: web-mercator XYZ tile generation (3 functions)
May 28, 2026
2136c2b
feat(rasterx): add VectorRasterBridge util — OGR layer + raster builders
May 28, 2026
863e4c4
feat(rasterx): add RST_Rasterize expression + test
May 28, 2026
3e085f7
feat(rasterx): add RST_Polygonize expression + test
May 28, 2026
f51f7bc
feat(rasterx): register gbx_rst_rasterize and gbx_rst_polygonize
May 28, 2026
02b287c
feat(rasterx): Python bindings + round-trip test for rasterize/polygo…
May 28, 2026
a90b133
docs(rasterx): SQL examples + canonical names for rasterize/polygonize
May 28, 2026
91355d9
Merge Wave 2: vector↔raster bridge (rasterize + polygonize)
May 28, 2026
5b3b387
feat(vectorx): add MvtPyramidBuilder helper + unit test
May 28, 2026
c6773fb
feat(vectorx): add ST_AsMvtPyramid generator + register gbx_st_asmvt_…
May 28, 2026
2faa1f3
feat(vectorx): Python wrapper + docs + release notes for gbx_st_asmvt…
May 28, 2026
8c81461
Merge Wave 7: vector tile pyramid (gbx_st_asmvt_pyramid)
May 28, 2026
022d4b7
feat(rasterx): add RST_DEMProcessingHelper - shared gdal.DEMProcessin…
May 28, 2026
4b04558
feat(rasterx): add 7 DEM processing expressions
May 28, 2026
2480277
feat(rasterx): register 7 terrain expressions + Scala Column API
May 28, 2026
b1d44ad
test(rasterx): direct-execute coverage for 7 DEM expressions + helper
May 28, 2026
3d19fc0
feat(rasterx): Python bindings + parameterized round-trip for 7 DEM e…
May 28, 2026
5c409cb
docs(rasterx): SQL doc examples + registered_functions list for 7 DEM…
May 28, 2026
96308d9
docs(rasterx): Terrain analysis section in rasterx.mdx + v0.4.0 relea…
May 28, 2026
735fc2f
style(rasterx): black formatting for Wave 8a Python wrappers + test
May 28, 2026
6ad957e
Merge Wave 8a: RasterX terrain analysis (7 GDAL DEMProcessing wrappers)
May 28, 2026
c3148ab
docs: scrub "Wave N" from user-facing docs + new convention rule
May 28, 2026
587fbce
feat(rasterx): add 5 spectral-index expressions (EVI, SAVI, NDWI, NBR…
May 28, 2026
13af6f6
feat(rasterx): register 5 spectral-index expressions + Scala Column API
May 28, 2026
a7a71ad
test(rasterx): direct-execute coverage for 5 spectral-index expressions
May 28, 2026
6b373cd
feat(rasterx): Python bindings + parameterized round-trip for 5 spect…
May 28, 2026
a79d415
docs(rasterx): SQL doc examples + registered_functions list for 5 spe…
May 28, 2026
24ac237
docs(rasterx): Spectral indices section in rasterx.mdx + v0.4.0 relea…
May 28, 2026
1f53c51
Merge Wave 8b: RasterX spectral indices (5 functions)
May 28, 2026
01f3295
docs(rasterx): scrub remaining "Wave 8b" reference from spectral indi…
May 28, 2026
99d9204
docs(api): backfill 0.4.0 function reference pages
May 28, 2026
89ce811
Merge docs backfill: API reference + PMTiles writer page (0.4.0)
May 28, 2026
26a43b7
feat(rasterx): add 3 resample expressions + shared helper (Wave 8c)
May 28, 2026
20af56b
feat(rasterx): IDW interpolation - gbx_rst_gridfrompoints + UDAF (Wav…
May 28, 2026
1b2b0c3
feat(rasterx): register 5 resample / IDW expressions + Scala Column A…
May 28, 2026
65e288a
feat(rasterx): Python bindings + roundtrip tests for resample / IDW (…
May 28, 2026
35bc356
docs(rasterx): SQL doc examples + registered_functions list for resam…
May 28, 2026
68ef111
docs(rasterx): "Resample and IDW interpolation" section + v0.4.0 rele…
May 28, 2026
fe8b91f
Merge Wave 8c: resample + IDW (5 functions)
May 28, 2026
6496707
feat(rasterx): 7 pixel-ops + extraction expressions (Wave 8d)
May 28, 2026
5125b41
feat(rasterx): Python bindings + parametrized round-trip for pixel op…
May 28, 2026
cf01488
docs(rasterx): SQL examples + canonical names for 7 pixel-ops functions
May 28, 2026
f82086a
docs(rasterx): api reference + release-notes bullet for pixel-ops fun…
May 28, 2026
249ad7d
Merge Wave 8d: RasterX pixel ops + extraction (7 functions)
May 28, 2026
d8558b8
docs: regen function-info.json with 7 pixel-ops entries
May 28, 2026
2e4ae74
docs(packages): refresh overview + per-package intros to reflect 0.4.0
May 28, 2026
b420792
fix(ci): replace shapely import in test_resample_idw with stdlib stru…
May 28, 2026
d7011f6
feat(rasterx): 4 analysis expressions (Wave 8e)
May 28, 2026
7a0abb4
feat(rasterx): Python bindings + parameterized roundtrip for analysis…
May 28, 2026
c533532
docs(rasterx): SQL doc examples + canonical names for 4 analysis func…
May 28, 2026
53889ad
docs(rasterx): Analysis section + API reference + release-notes bulle…
May 28, 2026
dce6227
docs: regen function-info.json with 4 analysis entries (Wave 8e)
May 28, 2026
133d718
Merge Wave 8e: COG / proximity / contour / viewshed (4 functions)
May 28, 2026
f36a8a4
docs(images): regenerate v0.4.0 pill PNGs
May 28, 2026
0d95bd9
docs(sidebar): add pmtiles entries to Packages, Writers, API navigation
May 28, 2026
a604b96
refactor(meta): consolidate agent instructions into CLAUDE.md
May 28, 2026
b2b2918
refactor(meta): move .cursor/commands → scripts/commands
May 28, 2026
f80ad26
chore(meta): delete .cursorrules; fold progress-feedback rule into CL…
May 28, 2026
1ec1927
fix(docker): resolve start_docker mount from git toplevel, not $PWD
May 28, 2026
ac87373
fix(commands): reliable tee logging + stale-JAR warning
May 28, 2026
f28cc98
feat(commands): enforce function binding parity in qc-judge
May 28, 2026
f9b2902
docs(spec): design for wiring up gbx_rst_dtmfromgeoms (+ _agg)
May 28, 2026
ac64f6d
docs(plan): implementation plan for gbx_rst_dtmfromgeoms (+ _agg)
May 28, 2026
a634752
feat(rasterx): bbox grid + non-throwing interpolation in InterpolateE…
May 28, 2026
0e6fbda
feat(rasterx): shared RST_DTMFromGeoms.execute with direct-fill raste…
May 28, 2026
f692bbf
feat(rasterx): modern bbox+pixels signature, Int/Long eval, safeEval …
May 28, 2026
e561810
feat(rasterx): streaming RST_DTMFromGeomsAgg aggregator (agg == non-agg)
May 28, 2026
0e99b5e
feat(rasterx): register rst_dtmfromgeoms + _agg; drop scoverage exclu…
May 28, 2026
1e74c73
docs(rasterx): register rst_dtmfromgeoms(+_agg) in function-info + ex…
May 29, 2026
7d1825d
feat(python): rst_dtmfromgeoms + rst_dtmfromgeoms_agg bindings + tests
May 29, 2026
67115bf
style(rasterx): use ASCII hyphen in rst_dtmfromgeoms_agg error message
May 29, 2026
e3bc601
docs(plan): three _agg streaming variants (quadbin_cellunion, rst_ras…
May 29, 2026
452e08e
feat(gridx): streaming gbx_quadbin_cellunion_agg (agg == non-agg)
May 29, 2026
d82c510
feat(rasterx): streaming gbx_rst_rasterize_agg (burns many features p…
May 29, 2026
70c0eee
feat(rasterx): streaming gbx_rst_frombands_agg (band_index-ordered ba…
May 29, 2026
dd75a4b
feat: register quadbin_cellunion_agg, rst_rasterize_agg, rst_fromband…
May 29, 2026
b96de08
docs: function-info examples for quadbin_cellunion_agg, rst_rasterize…
May 29, 2026
aa3be5f
feat(python): bindings + tests for quadbin_cellunion_agg, rst_rasteri…
May 29, 2026
8fb4d82
fix(rasterx): rst_frombands_agg accepts LONG band_index (PySpark); dr…
May 29, 2026
a692a83
docs(plan): st_triangulate + st_interpolateelevation{bbox,geom} Vecto…
May 29, 2026
efcd488
refactor(vectorx): move TIN math to vectorx.jts; optional split_point…
May 29, 2026
0abc823
feat(vectorx): gbx_st_triangulate generator (TIN triangles as polygons)
May 29, 2026
cef7961
feat(vectorx): gbx_st_interpolateelevationbbox generator (bbox+pixels…
May 29, 2026
991d0a2
feat(vectorx): gbx_st_interpolateelevationgeom generator (origin+cell…
May 29, 2026
bbc3aa7
fix(vectorx): TIN generator review fixes (Int/Long tolerance, breakli…
May 29, 2026
47369b0
feat(vectorx): register st_triangulate + st_interpolateelevation{bbox…
May 29, 2026
10847f5
docs: function-info examples for st_triangulate + st_interpolateeleva…
May 29, 2026
5e537fa
feat(python): bindings + tests for st_triangulate + st_interpolateele…
May 29, 2026
89c10f5
style(python): isort + black formatting to fix CI python lint
May 29, 2026
2056c03
fix(commands): gbx:lint:python --check installs flake8-pyproject to m…
May 29, 2026
d9373d9
test(rasterx): WKB-array regression tests for rst_dtmfromgeoms(+_agg)
May 29, 2026
63c4b21
docs(plan): custom grid (gbx_custom_*) cell-index system
May 29, 2026
370eee4
feat(gridx): enable CustomGridSystem core (uncomment GridConf + Custo…
May 29, 2026
5a25f87
feat(gridx): gbx_custom_grid grid-spec constructor + shared decoder
May 29, 2026
5f50786
feat(gridx): custom-grid cell-identity ops (pointascell, cellaswkb, c…
May 29, 2026
94adf5f
test(rasterx): build WKB-Z via struct.pack (drop shapely) in dtmfromg…
May 29, 2026
59f787f
feat(gridx): custom-grid coverage ops (polyfill centroid-containment,…
May 29, 2026
9807aec
style(gridx): ASCII hyphens in custom-grid comments (clear scalastyle…
May 29, 2026
d92641a
feat(gridx): register gbx_custom_* functions
May 29, 2026
fddd6e4
docs: function-info examples for gbx_custom_* grid functions
May 29, 2026
5839bc7
feat(python): gbx_custom_* grid bindings + tests
May 29, 2026
48e7c79
docs: drop shipped items from limitations (dtmfromgeoms, st_triangula…
May 29, 2026
1a3ca6a
docs(plan): consolidate Packages into Functions + backfill + QC guards
May 29, 2026
30c9ffc
docs(functions): merge RasterX package concepts into rasterx-functions
May 29, 2026
439e6d3
docs(functions): merge GridX package concepts into gridx-functions
May 29, 2026
95ad959
docs(functions): merge VectorX package concepts into vectorx-functions
May 29, 2026
17f68ce
docs(functions): merge PMTiles package concepts into pmtiles-functions
May 29, 2026
9481d9f
docs(functions): merge packages overview into Functions overview
May 29, 2026
b656369
docs: retire Packages section (merged into Functions); rename sidebar…
May 29, 2026
fe46068
docs(rasterx): move Function Categories up to right after Key Features
May 29, 2026
5282ce7
docs(functions): document rst_dtmfromgeoms(+agg), rst_rasterize_agg, …
May 29, 2026
40f92f0
docs(functions): document gbx_custom_* + quadbin_cellunion_agg with r…
May 29, 2026
cbd6d48
docs(functions): document st_triangulate + st_interpolateelevation{bb…
May 29, 2026
c6ee176
docs(images): refresh rasterx function-categories diagram for current…
May 29, 2026
f21a93d
docs(release-notes): note dtmfromgeoms(+agg), streaming aggregators, …
May 29, 2026
316688a
feat(qc): doc-coverage check — every registered function documented +…
May 29, 2026
5e2f074
docs(functions): full RasterX coverage -- sections for resample/gridf…
May 29, 2026
a3403ac
feat(qc): rasterx diagram-coverage check -- diagram pills + count mus…
May 29, 2026
12b94e6
feat(qc): deterministic release-notes-functions check; disable flaky …
May 29, 2026
9a3548e
docs(images): add landscape 3-column rasterx function-categories diag…
May 29, 2026
e6d012a
docs(functions): show tile-struct in example outputs for tile-returni…
May 29, 2026
b5be5da
docs(functions): align example-output ASCII tables to struct cells; s…
May 29, 2026
028309f
feat(qc): type-aware doc-coverage -- tile-returning fns must render t…
May 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
52 changes: 52 additions & 0 deletions .claude/qc-judge/config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
{
"release_notes_path": "docs/docs/beta-release-notes.mdx",
"internals_extra_patterns": [
"wave\\s*\\d+",
"@databricks\\.com",
"GBX-\\d+"
],
"checks": {
"release-notes-current": {
"enabled": false
},
"release-notes-functions": {
"name": "Every newly-registered function mentioned in release notes",
"type": "command",
"severity": "warn",
"enabled": true,
"cmd": "[ -f docs/scripts/check-release-notes-functions.py ] || { echo 'absent; skip'; exit 0; }; python3 docs/scripts/check-release-notes-functions.py",
"expect_exit": 0,
"timeout_seconds": 30
},
"docs-match-code": {
"prompt": "You are checking whether new public symbols in the GeoBrix codebase have documentation.\n\n# Full diff\n{input_0}\n\n# All current docs files\n{input_1}\n\n# Task\n1. From the diff, identify new public symbols. Project conventions:\n - Scala: `def`/`object`/`class` in `src/main/scala/.../{rasterx,gridx,vectorx}/`\n - Python: top-level `def`/`class` in `python/geobrix/src/databricks/labs/gbx/`\n - SQL: new `gbx_rst_*`, `gbx_bng_*`, `gbx_st_*` UDFs visible in registration files\n2. For each new symbol, check whether `docs/` references it (case-sensitive substring or close match).\n3. Flag symbols with no apparent doc entry.\n\nReply with exactly one line (tab-separated):\nPASS|FAIL|REVIEW\thigh|low\tone-line reason — if FAIL, list up to 3 undocumented symbols"
},
"binding-parity": {
"name": "Every registered function exists in all bindings",
"type": "command",
"severity": "warn",
"enabled": true,
"cmd": "[ -f docs/scripts/check-binding-parity.py ] || { echo 'parity script absent; skip'; exit 0; }; python3 docs/scripts/check-binding-parity.py",
"expect_exit": 0,
"timeout_seconds": 30
},
"doc-coverage": {
"name": "Every registered function documented + no placeholder example outputs",
"type": "command",
"severity": "warn",
"enabled": true,
"cmd": "[ -f docs/scripts/check-doc-coverage.py ] || { echo 'absent; skip'; exit 0; }; python3 docs/scripts/check-doc-coverage.py",
"expect_exit": 0,
"timeout_seconds": 30
},
"diagram-coverage": {
"name": "RasterX diagram pills and count match the registered rst_ set",
"type": "command",
"severity": "warn",
"enabled": true,
"cmd": "[ -f docs/scripts/check-diagram-coverage.py ] || { echo 'absent; skip'; exit 0; }; python3 docs/scripts/check-diagram-coverage.py",
"expect_exit": 0,
"timeout_seconds": 30
}
}
}
Loading
Loading