From 64971031eb37a1f70ecdcc5a0811b44b5c64e533 Mon Sep 17 00:00:00 2001 From: SirLouen Date: Tue, 13 Oct 2026 11:44:20 +0200 Subject: [PATCH 1/5] feat(themehost): serve themes built on kit 0.15.1 --- internal/server/content_test.go | 4 ++-- internal/themehost/kit.go | 2 +- internal/themehost/kit_test.go | 10 +++++----- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/internal/server/content_test.go b/internal/server/content_test.go index ec98f019..27f99cab 100644 --- a/internal/server/content_test.go +++ b/internal/server/content_test.go @@ -72,7 +72,7 @@ func TestContentAPIAnswersTheHandshakeWithoutASession(t *testing.T) { if !strings.Contains(body, `"api":0`) { t.Errorf("body = %q, want the api generation", body) } - if !strings.Contains(body, `"kit":["0.9.0","0.10.0","0.11.0","0.12.0","0.13.0","0.14.0","0.15.0"]`) { + if !strings.Contains(body, `"kit":["0.9.0","0.10.0","0.11.0","0.12.0","0.13.0","0.14.0","0.15.0","0.15.1"]`) { t.Errorf("body = %q, want the kit versions served", body) } if !strings.Contains(body, `"gophenberg"`) { @@ -358,7 +358,7 @@ func TestContentAPIAdvertisesTheTypesItServes(t *testing.T) { if handshake.API != 0 { t.Errorf("api = %d, want 0", handshake.API) } - if !slices.Equal(handshake.Kit, []string{"0.9.0", "0.10.0", "0.11.0", "0.12.0", "0.13.0", "0.14.0", "0.15.0"}) { + if !slices.Equal(handshake.Kit, []string{"0.9.0", "0.10.0", "0.11.0", "0.12.0", "0.13.0", "0.14.0", "0.15.0", "0.15.1"}) { t.Errorf("kit = %v, want the kit versions this release serves", handshake.Kit) } if len(handshake.Types) != 1 { diff --git a/internal/themehost/kit.go b/internal/themehost/kit.go index a2a93319..b77af3af 100644 --- a/internal/themehost/kit.go +++ b/internal/themehost/kit.go @@ -9,7 +9,7 @@ import ( ) // servedKits names the theme kit versions this release serves, oldest first. -var servedKits = []string{"0.9.0", "0.10.0", "0.11.0", "0.12.0", "0.13.0", "0.14.0", "0.15.0"} +var servedKits = []string{"0.9.0", "0.10.0", "0.11.0", "0.12.0", "0.13.0", "0.14.0", "0.15.0", "0.15.1"} // ServedKits returns the theme kit versions this release serves. func ServedKits() []string { diff --git a/internal/themehost/kit_test.go b/internal/themehost/kit_test.go index 99c7d1d5..3a1b11e5 100644 --- a/internal/themehost/kit_test.go +++ b/internal/themehost/kit_test.go @@ -17,10 +17,10 @@ func TestServedKitsNamesWhatThisReleaseServes(t *testing.T) { served := themehost.ServedKits() - if !slices.Equal(served, []string{"0.9.0", "0.10.0", "0.11.0", "0.12.0", "0.13.0", "0.14.0", "0.15.0"}) { + if !slices.Equal(served, []string{"0.9.0", "0.10.0", "0.11.0", "0.12.0", "0.13.0", "0.14.0", "0.15.0", "0.15.1"}) { t.Errorf("ServedKits() = %v, want the kit versions this release serves", served) } - if themehost.NewestKit() != "0.15.0" { + if themehost.NewestKit() != "0.15.1" { t.Errorf("NewestKit() = %q, want the newest of them", themehost.NewestKit()) } } @@ -28,12 +28,12 @@ func TestServedKitsNamesWhatThisReleaseServes(t *testing.T) { func TestAThemeOnEitherServedKitIsAccepted(t *testing.T) { t.Parallel() - for _, declared := range []string{"0.9.0", "0.10.0", "0.11.0", "0.12.0", "0.13.0", "0.14.0", "0.15.0"} { + for _, declared := range []string{"0.9.0", "0.10.0", "0.11.0", "0.12.0", "0.13.0", "0.14.0", "0.15.0", "0.15.1"} { if !themehost.ServesKit(declared) { t.Errorf("ServesKit(%q) = false, want a theme on a served kit accepted", declared) } } - for _, declared := range []string{"0.8.0", "0.10.3"} { + for _, declared := range []string{"0.8.0", "0.10.3", "0.15.2"} { if themehost.ServesKit(declared) { t.Errorf("ServesKit(%q) = true, want a kit this release cannot serve turned away", declared) } @@ -45,7 +45,7 @@ func TestServedKitsCannotBeChangedByACaller(t *testing.T) { themehost.ServedKits()[0] = "9.9.9" - if themehost.NewestKit() != "0.15.0" { + if themehost.NewestKit() != "0.15.1" { t.Errorf("NewestKit() = %q after a caller wrote to the returned slice", themehost.NewestKit()) } } From 951ba82a5e392be0098fa15fb155f4902e5f94fe Mon Sep 17 00:00:00 2001 From: SirLouen Date: Tue, 13 Oct 2026 11:44:21 +0200 Subject: [PATCH 2/5] docs(astro): point theme authors at the compatibility page --- sdk/astro/README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sdk/astro/README.md b/sdk/astro/README.md index 1568dc1f..ea665c39 100644 --- a/sdk/astro/README.md +++ b/sdk/astro/README.md @@ -18,6 +18,10 @@ pnpm add @gophenberg/astro Astro 7 is a peer dependency. +A site runs a theme only when its Gophenberg release serves the kit +version the theme was built on. See +[Theme compatibility](https://docs.gophenberg.org/themes/compatibility/). + ## Use Two files make an Astro project a theme. From dc93379889c0d637ec3f0631dc40119a21aed99f Mon Sep 17 00:00:00 2001 From: SirLouen Date: Tue, 13 Oct 2026 11:44:22 +0200 Subject: [PATCH 3/5] chore(astro): release the kit at 0.15.1 --- sdk/astro/CHANGELOG.md | 3 ++- sdk/astro/package.json | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/sdk/astro/CHANGELOG.md b/sdk/astro/CHANGELOG.md index fc6ec227..eaa1d438 100644 --- a/sdk/astro/CHANGELOG.md +++ b/sdk/astro/CHANGELOG.md @@ -11,10 +11,11 @@ npm-style tag stays invisible to the Go toolchain, unlike a `sdk/astro/vX.Y.Z` tag naming the directory as a module. Versions through 0.8.0 shipped in step with Gophenberg under its `vX.Y.Z` tags. -## Unreleased +## [0.15.1] - 2026-10-12 ### Changed +- A theme built on 0.15.1 needs Gophenberg 0.18.2 or newer. - The kit parses blocks with `@wordpress/block-serialization-default-parser` 5.57.0. ### Fixed diff --git a/sdk/astro/package.json b/sdk/astro/package.json index 7944c688..881be15e 100644 --- a/sdk/astro/package.json +++ b/sdk/astro/package.json @@ -1,6 +1,6 @@ { "name": "@gophenberg/astro", - "version": "0.15.0", + "version": "0.15.1", "type": "module", "license": "Apache-2.0", "description": "Build a Gophenberg theme in Astro: routes, block rendering, and the theme contract.", From a4b40ba6a58cfa1954b22fe87020292df2fb5a17 Mon Sep 17 00:00:00 2001 From: SirLouen Date: Tue, 13 Oct 2026 12:24:34 +0200 Subject: [PATCH 4/5] test(server): name the expected kit list to fit the line limit --- internal/server/content_test.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/internal/server/content_test.go b/internal/server/content_test.go index 27f99cab..a4a0e89f 100644 --- a/internal/server/content_test.go +++ b/internal/server/content_test.go @@ -358,7 +358,8 @@ func TestContentAPIAdvertisesTheTypesItServes(t *testing.T) { if handshake.API != 0 { t.Errorf("api = %d, want 0", handshake.API) } - if !slices.Equal(handshake.Kit, []string{"0.9.0", "0.10.0", "0.11.0", "0.12.0", "0.13.0", "0.14.0", "0.15.0", "0.15.1"}) { + want := []string{"0.9.0", "0.10.0", "0.11.0", "0.12.0", "0.13.0", "0.14.0", "0.15.0", "0.15.1"} + if !slices.Equal(handshake.Kit, want) { t.Errorf("kit = %v, want the kit versions this release serves", handshake.Kit) } if len(handshake.Types) != 1 { From dd3fdf137681bedd6537916c19a55cf01371f33b Mon Sep 17 00:00:00 2001 From: SirLouen Date: Tue, 13 Oct 2026 22:01:46 +0200 Subject: [PATCH 5/5] docs(astro): date the 0.15.1 release --- sdk/astro/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/astro/CHANGELOG.md b/sdk/astro/CHANGELOG.md index eaa1d438..9386894c 100644 --- a/sdk/astro/CHANGELOG.md +++ b/sdk/astro/CHANGELOG.md @@ -11,7 +11,7 @@ npm-style tag stays invisible to the Go toolchain, unlike a `sdk/astro/vX.Y.Z` tag naming the directory as a module. Versions through 0.8.0 shipped in step with Gophenberg under its `vX.Y.Z` tags. -## [0.15.1] - 2026-10-12 +## [0.15.1] - 2026-10-13 ### Changed