[SCM] postgis.net branch website updated. clarity-final-204-gff13b5c

git at osgeo.org git at osgeo.org
Fri Jul 24 09:59:07 PDT 2026


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "postgis.net".

The branch, website has been updated
       via  ff13b5c9a17b469dc58b8f0db4ea3b4dcd1db382 (commit)
       via  df2394a16b4e6c6aa56939a0445d245bbbe0b8fb (commit)
      from  f732f363caeef015aaaca1e07e9dc734ef549fe2 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit ff13b5c9a17b469dc58b8f0db4ea3b4dcd1db382
Merge: f732f36 df2394a
Author: Darafei Praliaskouski <komzpa at gmail.com>
Date:   Fri Jul 24 09:59:06 2026 -0700

    Merge pull request 'build: publish website output atomically' (!12) from Komzpa/postgis.net:ci/atomic-public-publish-20260724 into website
    
    Reviewed-on: https://gitea.osgeo.org/postgis/postgis.net/pulls/12


commit df2394a16b4e6c6aa56939a0445d245bbbe0b8fb
Author: Darafei Praliaskouski <me at komzpa.net>
Date:   Fri Jul 24 19:38:01 2026 +0400

    build: publish website output atomically

diff --git a/.gitignore b/.gitignore
index 0e4a390..5cc7e96 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,6 @@
 public
+.public-releases/
+.public.next
 /content/development/docs/
 .hugo_build.lock
 resources
diff --git a/Makefile b/Makefile
index 9241317..b111b72 100644
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,11 @@
 .DEFAULT_GOAL := help
 
+# Keep workflows in short make targets: do not replace them with one-off shell
+# scripts, and split a target before its recipe grows into a screenful of shell.
+
 POSTGIS ?= ../postgis
 DOCS := content/development/docs
+PUBLIC ?= $(CURDIR)/public
 
 .PHONY: help check check-releases publish site docs ci
 
@@ -14,11 +18,15 @@ check: check-releases ## Run all tests
 check-releases: ## Check release checksums
 	utils/check_releases_md5.sh
 
-publish: site ci ## Build the site and CI status in parallel
-	chown -R www-data:www-data public
+publish: ## Build the site and CI status, then atomically switch public
+	release="$(CURDIR)/.public-releases/public.$$(date -u +%Y%m%dT%H%M%SZ).$$$$"; \
+		$(MAKE) site ci PUBLIC="$$release" && \
+		chown -R www-data:www-data "$$release" && \
+		ln -sfn "$$release" "$(PUBLIC).next" && \
+		mv -Tf "$(PUBLIC).next" "$(PUBLIC)"
 
 site: docs ## Build the Hugo site with developer docs
-	hugo -D
+	hugo -D --destination "$(PUBLIC)"
 
 docs: ## Copy developer docs from the PostGIS checkout
 	rm -rf "$(DOCS)"
@@ -30,4 +38,4 @@ ci: ## Generate the CI status page
 	cd "$(POSTGIS)" && python3 utils/ci-status.py \
 		--config utils/ci-status.json \
 		--format html \
-		--output-dir "$(CURDIR)/public/ci"
+		--output-dir "$(PUBLIC)/ci"
diff --git a/README.md b/README.md
index d2af5f6..b47d62c 100644
--- a/README.md
+++ b/README.md
@@ -46,9 +46,11 @@ Run `make check` after changes, before push
 ## Production publishing
 
 The build reads developer documentation and the CI-status generator from a
-sibling checkout of `postgis/postgis`. Generated files stay in `public/` and
-are not committed to this repository. `make -j publish` runs the Hugo and CI
-branches in parallel, then restores the ownership expected by nginx.
+sibling checkout of `postgis/postgis`. Generated files stay under
+`.public-releases/`, and the live `public` path is a symbolic link to the
+latest complete release. `make -j publish` builds Hugo and CI status into a new
+release directory, then switches the `public` symlink after both outputs are
+ready.
 
 Create the source checkout once on Debbie:
 
@@ -65,7 +67,7 @@ Replace the current root cron entry:
 with:
 
 ```cron
-*/5 * * * * cd /var/www/postgis_website && git clean -fdx && git pull --ff-only && git -C ../postgis pull --ff-only && make -j publish
+*/5 * * * * cd /var/www/postgis_website && git pull --ff-only && git -C ../postgis pull --ff-only && make -j publish
 ```
 
 This also refreshes `/development/docs/` and `/ci/` when only the PostGIS

-----------------------------------------------------------------------

Summary of changes:
 .gitignore |  2 ++
 Makefile   | 16 ++++++++++++----
 README.md  | 10 ++++++----
 3 files changed, 20 insertions(+), 8 deletions(-)


hooks/post-receive
-- 
postgis.net


More information about the postgis-tickets mailing list