Skip to content

Release 0.0.17 - #38

Merged
eldonm merged 1 commit into
mainfrom
release/0.0.17
Aug 7, 2026
Merged

Release 0.0.17#38
eldonm merged 1 commit into
mainfrom
release/0.0.17

Conversation

@eldonm

@eldonm eldonm commented Aug 5, 2026

Copy link
Copy Markdown
Member

Summary

Release PR for 0.0.17, per RELEASING.md: bumps jvspatial/version.py (what the publish workflow reads) and dates the [Unreleased] block.

Ships the DatabaseConfig field-name fix from #37 — worth releasing promptly, since it means app.yaml-supplied DynamoDB settings have never taken effect and Postgres inherited the same problem in 0.0.16.

Version choice: patch

One ### Fixed entry, no new API — RELEASING.md §3 routes that to a patch. The behavior change is that values passed by field name now take effect, which restores the documented contract rather than adding to it.

Also in this PR: a changelog repair

main has been describing a released version as unreleased. My changelog edit in cb22d19 (merged via #37) anchored on the ## [0.0.16] heading and failed to put it back, so 0.0.16's entries silently collapsed into [Unreleased]. My mistake, caught while cutting this release.

Restored here. The [0.0.16] section is byte-identical to its state at 3bed558 (verified by diffing the extracted block) — only the heading was missing, no entries were lost or reworded.

Structure is now:

## [Unreleased]
## [0.0.17] - 2026-08-05     <- this release
## [0.0.16] - 2026-08-04     <- restored
## [0.0.15] - 2026-07-31

Worth noting the failure mode: nothing catches a missing release heading. A CI check asserting version.py has a matching dated ## [X.Y.Z] heading would have caught it at PR time — happy to add that separately if useful.

Release notes

[0.0.17] - 2026-08-05

Fixed

  • DatabaseConfig ignored values passed by field name (jvspatial/api/config_groups.py).
    Its aliased fields (dynamodb_*, postgres_*) carry a validation_alias, and a
    pydantic v2 model accepts an aliased field only by its alias unless it opts into
    populate_by_name — which AuthConfig does and DatabaseConfig did not. So every
    such value passed by field name was silently discarded: both
    server_config_overrides_from_env(), which keys its database group by field name,
    and embedding hosts constructing a DatabaseConfig directly. Nothing raised,
    because the adapters then read the same settings from env themselves — the
    configuration object was simply never the source of truth it appeared to be.
    DynamoDB was affected the whole time; Postgres inherited it in 0.0.16. Coverage:
    tests/api/test_database_config_population.py.

Pre-merge checklist (RELEASING.md §2)

After merge

The publish workflow tags v0.0.17 and uploads to PyPI via Trusted Publishing; §8 (cut the GitHub release from the tag) is still manual.

Downstream, jvagent has a branch waiting on this to thread its Postgres settings through ServerConfig — that work is written and tested but inert until this ships.

Bump version.py, which the publish workflow reads, and date the
[Unreleased] block as 0.0.17.

Also restores the [0.0.16] heading. My changelog edit in cb22d19 anchored
on that heading and did not put it back, so 0.0.16's entries silently
collapsed into [Unreleased] -- main has been describing a released version
as unreleased since #37 merged. The 0.0.16 section here is byte-identical
to its state at 3bed558; only the heading was missing.

Patch rather than minor: one Fixed entry, no new API. The behavior change
is that DatabaseConfig values passed by field name now take effect, which
is the documented contract rather than a new one.
@github-actions

github-actions Bot commented Aug 5, 2026

Copy link
Copy Markdown

Benchmark comparison

Threshold: ±25% (informational, does not block merge)

benchmark baseline (s) current (s) delta status
tests/benchmarks/test_deferred_save_benchmarks.py::test_bench_deferred_save_batched_100 0.038324 0.046776 +22.1% OK
tests/benchmarks/test_deferred_save_benchmarks.py::test_bench_immediate_save_100 0.037020 0.045930 +24.1% OK
tests/benchmarks/test_jsondb_benchmarks.py::test_bench_jsondb_batched_saves_500 0.411395 0.449098 +9.2% OK
tests/benchmarks/test_jsondb_benchmarks.py::test_bench_jsondb_count_empty_query 0.846883 0.972887 +14.9% OK
tests/benchmarks/test_jsondb_benchmarks.py::test_bench_jsondb_count_filtered 1.012687 1.077511 +6.4% OK
tests/benchmarks/test_jsondb_benchmarks.py::test_bench_jsondb_find_filtered 0.758830 0.831176 +9.5% OK
tests/benchmarks/test_jsondb_benchmarks.py::test_bench_jsondb_save_throughput 0.001582 0.001611 +1.8% OK
tests/benchmarks/test_sqlite_benchmarks.py::test_bench_sqlite_count_empty 0.246569 0.317243 +28.7% REGRESSION (+28.7%)
tests/benchmarks/test_sqlite_benchmarks.py::test_bench_sqlite_count_fallback_via_regex 0.282146 0.359316 +27.4% REGRESSION (+27.4%)
tests/benchmarks/test_sqlite_benchmarks.py::test_bench_sqlite_count_pushdown 0.287517 0.328074 +14.1% OK
tests/benchmarks/test_sqlite_benchmarks.py::test_bench_sqlite_find_fallback_via_regex 0.282463 0.355943 +26.0% REGRESSION (+26.0%)
tests/benchmarks/test_sqlite_benchmarks.py::test_bench_sqlite_find_pushdown 0.239367 0.335863 +40.3% REGRESSION (+40.3%)
tests/benchmarks/test_sqlite_benchmarks.py::test_bench_sqlite_sort_limit_pushdown 0.281429 0.381406 +35.5% REGRESSION (+35.5%)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant