From dd6d9b7891476b360beaa4bdc1eeb249c3d5634b Mon Sep 17 00:00:00 2001 From: Deluan Date: Sat, 5 Sep 2026 14:40:35 -0400 Subject: [PATCH] ci: treat the plugin manifest schema as a Go change plugins/manifest.go:37 declares manifest-schema.json as the input to a real go:generate directive producing manifest_gen.go, so a schema-only edit skipped the very check that catches a forgotten regeneration. Verified by adding a property to the schema and re-running go generate, which changed the output. All nine commits that ever touched the schema were already caught, but that is the check working rather than evidence it is unnecessary: an author who forgets to regenerate cannot reach merged history while the check runs. This is the only gap of its kind. The repo has two go:generate directives, and wire's inputs are all Go source. --- .github/workflows/detect-changes.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/detect-changes.sh b/.github/workflows/detect-changes.sh index 30987013d..c70c0c0c0 100755 --- a/.github/workflows/detect-changes.sh +++ b/.github/workflows/detect-changes.sh @@ -3,7 +3,8 @@ # Emits per-area change flags to $GITHUB_OUTPUT so the pipeline can skip work a # pull request cannot affect: # -# go - Go sources, module files, linter config, embedded resources +# go - Go sources, module files, linter config, embedded resources and +# the go:generate inputs whose generated output CI verifies # js - anything under ui/ # i18n - translation files and their validation script # build - anything that ends up in a binary, image or package (i.e. every @@ -23,7 +24,7 @@ set -uo pipefail export LC_ALL=C -GO_RE='(\.go$|(^|/)go\.(mod|sum)$|^Makefile$|^\.golangci\.yml$|^resources/|^db/migrations/|^tests/|^\.github/workflows/(pipeline\.yml|detect-changes\.sh)$)' +GO_RE='(\.go$|(^|/)go\.(mod|sum)$|^Makefile$|^\.golangci\.yml$|^resources/|^db/migrations/|^tests/|^plugins/manifest-schema\.json$|^\.github/workflows/(pipeline\.yml|detect-changes\.sh)$)' JS_RE='(^ui/|^\.github/workflows/(pipeline\.yml|detect-changes\.sh)$)' I18N_RE='(^resources/i18n/|^ui/src/i18n/en\.json$|^\.github/workflows/validate-translations\.sh$|^\.github/workflows/(pipeline\.yml|detect-changes\.sh)$)' DOC_ONLY_RE='(\.md$|^LICENSE$|^\.git-blame-ignore-revs$|^\.gitignore$|^\.devcontainer/)'