2026-08-24  Regina Obe <lr@pcorp.us>

	* NEWS, README.postgis: Stamp date

2026-08-24  Regina Obe <lr@pcorp.us>

	* NEWS, README.postgis, Version.config,
	doc/reference_processing.xml, extensions/upgradeable_versions.mk,
	postgis/postgis.sql.in: Prep for 3.7.0rc1 release

2026-08-24  Teramoto Ikuhiro <yellow@affrc.go.jp>

	* doc/po/ja/postgis-manual.po: Translated PostGIS Manual using
	Weblate (Japanese) Currently translated at 98.0% (5922 of 6037 strings) Translation: postgis/PostGIS Manual Translate-URL:
	https://weblate.osgeo.org/projects/postgis/postgis-manual/ja/

2026-08-22  Darafei Praliaskouski <komzpa@gmail.com>

	* : Merge pull request 'ci: cache GitHub rate-limit results with
	revisions' (!767) from Komzpa/postgis:ci/github-rate-cache-20260823
	into master ## Summary - reuse an exact-branch-head cached GitHub Actions result when the
	GitHub API returns a rate-limit `403` - preserve the cached workflow status and commit revision instead of
	falling back to a revisionless badge - keep ordinary `403` responses on the existing badge fallback This prevents anonymous API rate exhaustion from turning a current
	CI row into a revisionless or misleading badge result. Cache reuse
	still requires the same branch, check, provider, required flag, and
	freshly resolved canonical branch head.  ## Validation - `python3 utils/docs/tests/test_ci_status.py` (41 tests) - `git diff --check upstream/master...HEAD` Reviewed-on: https://gitea.osgeo.org/postgis/postgis/pulls/767

2026-08-22  Darafei Praliaskouski <komzpa@gmail.com>

	* : Merge pull request 'ci: do not report old running revisions as
	current' (!766) from
	Komzpa/postgis:fix/ci-current-running-revision-20260822 into master ## Summary - Mark an in-progress CI run from an older revision as `unknown`,
	rather than current running coverage.  - Keep the revision-distance diagnostic and leave a current-head
	running job unchanged.  ## Rationale A provider can still be executing an older checkout after the target
	branch advances. That run cannot establish the status of the current
	branch head.  ## Tests - `python3 -m unittest utils.docs.tests.test_ci_status` Reviewed-on: https://gitea.osgeo.org/postgis/postgis/pulls/766

2026-08-22  Darafei Praliaskouski <me@komzpa.net>

	* utils/docs/ci_status/report.py,
	utils/docs/tests/test_ci_status.py: Normalize canonical running SHA
	checks

2026-08-22  Darafei Praliaskouski <me@komzpa.net>

	* utils/docs/ci_status/report.py,
	utils/docs/tests/test_ci_status.py: Use canonical heads for running
	CI rows

2026-08-22  Darafei Praliaskouski <me@komzpa.net>

	* utils/docs/ci_status/report.py,
	utils/docs/tests/test_ci_status.py: Fix stale running CI revision
	handling

2026-08-22  Darafei Praliaskouski <komzpa@gmail.com>

	* : Merge pull request 'Guard NULL dereferences in lwgeom_wrapx and
	raster cleanup' (!765) from
	Komzpa/postgis:combine/github-1172-1174-news-20260822 into master This combines the three single-commit GitHub mirror pull requests
	from Maksim Korotkov and adds a top NEWS entry for the release
	notes.  Closes https://github.com/postgis/postgis/pull/1172 Closes
	https://github.com/postgis/postgis/pull/1173 Closes
	https://github.com/postgis/postgis/pull/1174 Reviewed-on: https://gitea.osgeo.org/postgis/postgis/pulls/765

2026-08-22  Darafei Praliaskouski <me@komzpa.net>

	* liblwgeom/lwgeom_wrapx.c, raster/rt_core/rt_mapalgebra.c: Apply
	clang-format to NULL dereference fixes

2026-08-22  Maksim Korotkov <m.korotkov@postgrespro.ru>

	* raster/loader/raster2pgsql.c: Prevent NULL deref when shrinking
	raster file list fails When rtrealloc fails on the in-memory raster file list,
	config->rt_file becomes NULL while config->rt_file_count is left
	non-zero. The subsequent rtdealloc_config() then iterates count..0
	dereferencing config->rt_file[i] on a NULL array, crashing in the
	OOM cleanup path.  Reset rt_file_count to 0 before running the error cleanup so the
	partial state is not dereferenced. Applies to both the append path (grow) and the schema.table-parse path (shrink).  Fixes: 8b8ce38f5dd2b30f8d8bac3a09bc60213688f48d Signed-off-by: Maksim Korotkov <m.korotkov@postgrespro.ru>

2026-08-22  Maksim Korotkov <m.korotkov@postgrespro.ru>

	* raster/rt_core/rt_mapalgebra.c: Fix NULL deref in raster colormap
	arg cleanup __rti_colormap_arg_destroy dereferenced arg->expr[i] without first
	checking that the array itself was allocated. When rtalloc fails
	(arg->expr == NULL) the destroy path reads from a NULL array and
	crashes. Guard the loop on arg->expr != NULL and stop at the first
	NULL element, which also avoids freeing uninitialized entries when a
	partial allocation (rtalloc of individual expressions) fails.  Fixes: 46a76d3b39bb36c2b896e2a67dc88dac13be1fce Found by
	PostgresPro.  Signed-off-by: Maksim Korotkov <m.korotkov@postgrespro.ru>

2026-08-22  Maksim Korotkov <m.korotkov@postgrespro.ru>

	* liblwgeom/lwgeom_wrapx.c: Guard against NULL in lwgeom_wrapx point
	clone lwgeom_clone_deep can return NULL when the underlying allocator
	(default_allocator -> malloc) fails, which propagates through
	lwgeom_as_lwpoint and is dereferenced at pt->point. Add a NULL check
	before the dereference.  Found by PostgresPro Signed-off-by: Maksim Korotkov <m.korotkov@postgrespro.ru>

2026-08-21  Darafei Praliaskouski <komzpa@gmail.com>

	* : Merge pull request 'ci: refresh GitHub workflow runs per
	collection' (!764) from
	postgis/postgis:fix/ci-status-stale-success-unknown-20260821 into
	master GitHub Actions history was cached indefinitely by a reused dashboard
	process, causing all workflow rows to report a month-old SHA. Query
	each configured workflow directly for its current push runs and
	remove the process-global cache, so every collection reads provider
	state anew.  Regression coverage verifies per-workflow requests, workflow
	isolation, and fresh results across two collections.  Reviewed-on: https://gitea.osgeo.org/postgis/postgis/pulls/764

2026-08-21  Darafei Praliaskouski <komzpa@gmail.com>

	* : Merge pull request 'winnie: allow absent packaging notes' (!758)
	from
	Komzpa/postgis:fix/winnie-optional-packaging-notes-20260821-master
	into master Winnie packaging may not have a `packaging_notes` directory. The
	current unconditional copy then fails after the build itself has
	completed.  Copy that directory only when it exists. When present, copy its
	contents, including dotfiles.  Reviewed-on: https://gitea.osgeo.org/postgis/postgis/pulls/758

2026-08-21  Darafei Praliaskouski <me@komzpa.net>

	* ci/winnie/package_postgis.sh: winnie: allow absent packaging notes

2026-08-21  Darafei Praliaskouski <me@komzpa.net>

	* utils/docs/ci_status/report.py,
	utils/docs/tests/test_ci_status.py: ci: link Jenkins failures to
	leaf consoles

2026-08-21  Darafei Praliaskouski <komzpa@gmail.com>

	* : Merge pull request 'regress: tolerate geometry_columns CI
	scheduling jitter' (!756) from
	Komzpa/postgis:fix/geometry-columns-ci-tolerance-20260821 into
	master The current master PG16 extension-upgrade run correctly returned
	2,002 geometry_columns rows but measured 278 ms against the recently
	tightened 250 ms threshold. Keep the performance regression bounded
	at 500 ms, scaled by test.executor_slow_factor, to tolerate
	scheduler jitter on shared CI runners.  The run also passed regress/core/interrupt_relate, so this is
	separate from the repair merged in GT-754.  Reviewed-on: https://gitea.osgeo.org/postgis/postgis/pulls/756

2026-08-21  Darafei Praliaskouski <komzpa@gmail.com>

	* : Merge pull request 'regress: use bounded interrupt timing
	checks' (!754) from

	Komzpa/postgis:fix/interrupt-relation-timeout-master-tolerance-20260821 into masterKeep the interrupt test bounded while preserving its timeout
	assertion, and rename the newly introduced NURBS bbox `numer` local
	to `numerator` so the current master codespell gate can run.  Validation: Woodpecker pipeline 7138 passed 30/30 on the pre-rebase
	head; the updated head is queued for the same matrix.  Reviewed-on: https://gitea.osgeo.org/postgis/postgis/pulls/754

2026-08-21  Darafei Praliaskouski <me@komzpa.net>

	* regress/core/interrupt_relate.sql: regress: use bounded interrupt
	timing checks

2026-08-21  Darafei Praliaskouski <komzpa@gmail.com>

	* : Merge pull request 'liblwgeom: stream NURBS bbox Bezier
	extraction' (!755) from
	Komzpa/postgis:fix/nurbs-gbox-work-budget-547330051 into master ## Summary - Replace whole-curve NURBS knot insertion in bbox calculation with
	streaming local Bezier extraction.  - Preserve per-span bbox calculation while avoiding repeated
	full-array copies for large valid curves.  - Add bbox regressions for rational Z/M, unclamped knots, and
	high-degree implicit-knot NURBS.  Closes https://issues.oss-fuzz.com/issues/547330051 ## Tests - `make -C liblwgeom` - `make -C liblwgeom/cunit check` (`376` tests, `5940` asserts) - targeted `gserialized_from_bytea_fuzzer` dummy runner: exact
	56-byte testcase, 100 iterations, `elapsed=1.49 exit=0` - baseline dummy runner on the same testcase/loop timed out at 20 s
	(`exit=124`) - `git clang-format --extensions c,h upstream/master --diff` Reviewed-on: https://gitea.osgeo.org/postgis/postgis/pulls/755

2026-08-21  Darafei Praliaskouski <me@komzpa.net>

	* NEWS: NEWS: document NURBS bbox extraction fix

2026-08-21  Darafei Praliaskouski <me@komzpa.net>

	* liblwgeom/cunit/cu_gserialized1.c, liblwgeom/gbox.c: liblwgeom:
	stream NURBS bbox Bezier extraction Replace whole-curve NURBS knot insertion for bbox calculation with a
	streaming Bezier decomposition that only keeps the current and next
	local control nets. This preserves the exact span bbox contract
	while avoiding repeated full-array copies for large valid curves.  Credit to OSS-Fuzz.  OSS-Fuzz: https://issues.oss-fuzz.com/issues/547330051

2026-08-21  Darafei Praliaskouski <komzpa@gmail.com>

	* : Merge pull request 'regress: bound interrupt relate assertions'
	(!753) from
	Komzpa/postgis:fix/interrupt-relation-timeout-master-20260821 into
	master The current master regression run stalls in `interrupt_relate` after
	`interrupt` completes because each local baseline invokes the
	pathological predicate without a statement timeout.  Keep the eight existing 100 ms interruption checks and their timing
	assertions, but remove the unbounded baseline calls so the
	regression reaches the intended assertion on every CI worker.  Reviewed-on: https://gitea.osgeo.org/postgis/postgis/pulls/753

2026-08-21  Teramoto Ikuhiro <yellow@affrc.go.jp>

	* doc/po/ja/postgis-manual.po: Translated PostGIS Manual using
	Weblate (Japanese) Currently translated at 98.0% (5920 of 6037 strings) Translation: postgis/PostGIS Manual Translate-URL:
	https://weblate.osgeo.org/projects/postgis/postgis-manual/ja/

2026-08-21  Darafei Praliaskouski <komzpa@gmail.com>

	* : Merge pull request 'ci: decouple localized HTML workflow steps'
	(!750) from Komzpa/postgis:fix/docs-ja-pruned-dependency-20260821
	into master Localized HTML jobs are path-pruned independently, so serial
	dependencies between locales can reference a step Woodpecker removed
	from the workflow graph. Each locale now depends only on its own XML
	check.  Validated: YAML parsing, no sibling html-* dependency remains, and
	git diff --check.  Reviewed-on: https://gitea.osgeo.org/postgis/postgis/pulls/750

2026-08-21  Teramoto Ikuhiro <yellow@affrc.go.jp>

	* doc/po/ja/postgis-manual.po: Translated PostGIS Manual using
	Weblate (Japanese) Currently translated at 98.0% (5918 of 6037 strings) Translation: postgis/PostGIS Manual Translate-URL:
	https://weblate.osgeo.org/projects/postgis/postgis-manual/ja/

2026-08-21  Teramoto Ikuhiro <yellow@affrc.go.jp>

	* doc/po/ja/postgis-manual.po: Translated PostGIS Manual using
	Weblate (Japanese) Currently translated at 98.0% (5917 of 6037 strings) Translation: postgis/PostGIS Manual Translate-URL:
	https://weblate.osgeo.org/projects/postgis/postgis-manual/ja/

2026-08-21  Teramoto Ikuhiro <yellow@affrc.go.jp>

	* doc/po/ja/postgis-manual.po: Translated PostGIS Manual using
	Weblate (Japanese) Currently translated at 97.8% (5910 of 6037 strings) Translation: postgis/PostGIS Manual Translate-URL:
	https://weblate.osgeo.org/projects/postgis/postgis-manual/ja/

2026-08-20  Darafei Praliaskouski <komzpa@gmail.com>

	* : Merge pull request 'ci: gate Woodpecker CodeQL on push changes'
	(!749) from Komzpa/postgis:ci/woodie-codeql-push-gate-20260820 into
	master Woodpecker runs CodeQL on every push, including documentation-only
	translations. Use the push predecessor SHA for changed-surface
	gating so irrelevant pushes skip the expensive analyzer and avoid
	runner OOM; ambiguous or initial pushes still fail open.  Reviewed-on: https://gitea.osgeo.org/postgis/postgis/pulls/749

2026-08-20  Teramoto Ikuhiro <yellow@affrc.go.jp>

	* Translated PostGIS Manual using Weblate (Japanese) Currently translated at 97.7% (5903 of 6037 strings) Translation: postgis/PostGIS Manual Translate-URL:
	https://weblate.osgeo.org/projects/postgis/postgis-manual/ja/

