Skip to content
This repository was archived by the owner on Oct 19, 2026. It is now read-only.

Commit 6255137

Browse files
committed
Separate template automation checks from managed applications
1 parent 8d845f9 commit 6255137

6 files changed

Lines changed: 35 additions & 4 deletions

File tree

‎.github/workflows/ci.yml‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,9 @@ jobs:
7878
working-directory: web
7979
run: npx playwright install --with-deps chromium
8080
- name: Check template
81-
run: make check
81+
run: |
82+
make check-template-repository
83+
make check
8284
8385
release:
8486
needs: check

‎.superverse/template.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"schemaVersion": 1,
33
"buildProfile": "go-react-v1",
4-
"templateVersion": "1.9.0",
4+
"templateVersion": "1.9.1",
55
"minimumSandboxImageContractRevision": 3,
66
"openapiSpec": "openapi/openapi.yaml",
77
"applicationManifest": "dex-app.yaml",

‎AGENTS.md‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,10 @@ minor or major version boundary unless the user explicitly requests it.
106106
and Dex CLI release updates. Keep their stable-release checks, fixed automation
107107
branch, template-version bump, contract updates, and explicit CI dispatch
108108
aligned. The updater creates or refreshes a pull request; it never merges one.
109+
`make check-template-repository` checks these template-owned workflows and is
110+
required by Template CI. Superverse exports applications without `.github/`;
111+
`make check-contracts` and `make check-static` still validate their complete
112+
application contracts, but must not require or recreate template release CI.
109113

110114
Every pull request advances `templateVersion` in
111115
`.superverse/template.json`. After Template CI passes on `main`, CI publishes

‎Makefile‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
SHELL := /usr/bin/env bash
22

3-
.PHONY: bootstrap generate check-fdg-v2 check-contracts superverse-release-artifacts test-integration test-e2e build dev check-static check
3+
.PHONY: bootstrap generate check-fdg-v2 check-contracts check-template-repository superverse-release-artifacts test-integration test-e2e build dev check-static check
44
bootstrap:
55
go mod download
66
go -C tools/openapi mod download
@@ -14,6 +14,8 @@ superverse-release-artifacts:
1414
python3 ./scripts/generate-release-artifacts.py --output-directory "$(SUPERVERSE_RELEASE_ARTIFACT_DIR)"
1515
check-contracts:
1616
go run ./tools/checkcontract
17+
check-template-repository:
18+
go run ./tools/checkcontract --repository-automation
1719
test-integration: generate check-contracts
1820
./scripts/with-dex.sh go test -count=1 -tags=integration ./...
1921
test-e2e: generate check-contracts

‎README.md‎

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,11 @@ Adding this official loader keeps Go `1.25.0` and Dex SDK `v0.13.1` unchanged.
116116

117117
## Verification
118118

119+
Template CI additionally runs `make check-template-repository` to validate its
120+
release and dependency-update workflows. Managed Superverse applications are
121+
exported without `.github/`; their `make check-contracts` and `make check-static`
122+
retain all application checks without requiring template publishing automation.
123+
119124
```bash
120125
make check-contracts
121126
make check-static
@@ -204,6 +209,10 @@ reviewed pull requests.
204209

205210
## Template 1.9 changes
206211

212+
Version 1.9.1 separates template-repository automation checks from exported
213+
application checks. Flow behavior, SDK pins, configuration loading and UI are
214+
unchanged. The template CI still requires both checks.
215+
207216
### Dex Flow Changes
208217

209218
None. `process.BasicProcessFlow`, its Steps, primitive keys, start and recovery

‎tools/checkcontract/main.go‎

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package main
22

33
import (
44
"encoding/json"
5+
"flag"
56
"fmt"
67
"go/ast"
78
"go/parser"
@@ -35,7 +36,7 @@ func checkTemplateContract() {
3536
if err := json.Unmarshal(manifestBytes, &contract); err != nil {
3637
failf("decode manifest: %v", err)
3738
}
38-
if contract.SchemaVersion != 1 || contract.BuildProfile != "go-react-v1" || contract.TemplateVersion != "1.9.0" || contract.MinimumSandboxImageContractRevision != 3 {
39+
if contract.SchemaVersion != 1 || contract.BuildProfile != "go-react-v1" || contract.TemplateVersion != "1.9.1" || contract.MinimumSandboxImageContractRevision != 3 {
3940
failf("unexpected template identity: %+v", contract)
4041
}
4142
if baseline := strings.TrimSpace(readFile(filepath.Join(root, "DEX_SERVER_BASELINE"))); baseline != "server/v0.14.1" {
@@ -164,6 +165,11 @@ func checkTemplateContract() {
164165
failf("Dex dependency updater does not mention %q", required)
165166
}
166167
}
168+
}
169+
170+
// Template publishing automation belongs to the template repository, not exported apps.
171+
func checkTemplateRepositoryAutomation() {
172+
root := "."
167173
updateWorkflow := readFile(filepath.Join(root, ".github", "workflows", "update-dex-dependencies.yml"))
168174
for _, required := range []string{
169175
"schedule:",
@@ -287,9 +293,17 @@ func readFile(path string) string {
287293

288294
// Static repository validation is separate from API integration tests.
289295
func main() {
296+
repositoryAutomation := flag.Bool("repository-automation", false, "also validate template-owned release/update workflows")
297+
flag.Parse()
298+
if flag.NArg() != 0 {
299+
failf("unexpected positional arguments")
300+
}
290301
checkTemplateContract()
291302
checkGoNamesDescribeConcreteResponsibilities()
292303
checkTestPolicy()
304+
if *repositoryAutomation {
305+
checkTemplateRepositoryAutomation()
306+
}
293307
fmt.Println("Template contract, Go names, and integration-only test policy are valid.")
294308
}
295309

0 commit comments

Comments
 (0)