fix(10.2): revise plans based on checker feedback

This commit is contained in:
Jakub Zych
2026-09-28 01:56:53 +02:00
parent 039cfeddfd
commit a9a7bbef73

View File

@@ -54,9 +54,9 @@ must_haves:
- path: internal/build/stubs/plugin.tmpl
provides: generated plugin imports under the modules/ prefix
key_links:
- from: backpack/app.go
- from: modules/backpack/app.go
to: modules/festival
via: tracer importer rewritten to git.golem15.com/golem15/summercms/modules/festival before the remaining 17 move
via: backpack's final post-migration location imports festival through git.golem15.com/golem15/summercms/modules/festival
pattern: modules/festival
- from: scripts/check-admin-openapi.sh
to: modules/cabana
@@ -149,16 +149,17 @@ Rewrite only festival importers to git.golem15.com/golem15/summercms/modules/fes
Do not expand to the other 17 packages in this task.</action>
<verify>
<automated>test -d modules/festival &amp;&amp; test ! -d festival &amp;&amp; go test ./modules/festival -count=1 &amp;&amp; go test ./backpack -run '^TestEventBusesAreAppScoped$' -count=1 &amp;&amp; (cd ../fonoteka.go &amp;&amp; go test ./plugins/golem15/user -run '^TestGetApiArrayEventMerge$' -count=1)</automated>
<fails_when>non-zero exit; festival still exists at repo root; modules/festival missing; any go test line shows FAIL, "no tests to run", or lacks "--- PASS: TestFireRunsAllListenersAndJoinsErrors" / "--- PASS: TestEventBusesAreAppScoped" / "--- PASS: TestGetApiArrayEventMerge"</fails_when>
<automated>test -d modules/festival &amp;&amp; test ! -d festival &amp;&amp; go test ./modules/festival -count=1 &amp;&amp; go test ./backpack -run '^TestEventBusesAreAppScoped$' -count=1 &amp;&amp; go test -run '^$' ./examples/hello/... ./examples/hello/plugins/base/... ./examples/hello/plugins/greeter/... ./examples/hello/plugins/optional/... &amp;&amp; (cd ../fonoteka.go &amp;&amp; go test ./plugins/golem15/user -run '^TestGetApiArrayEventMerge$' -count=1)</automated>
<fails_when>non-zero exit; festival still exists at repo root; modules/festival missing; a named-test command shows FAIL or lacks its requested test; the compile-only examples command fails to build any workspace module</fails_when>
</verify>
<acceptance_criteria>
- `test -d modules/festival &amp;&amp; test ! -d festival` succeeds.
- `go test ./modules/festival -count=1` prints PASS including TestFireRunsAllListenersAndJoinsErrors.
- `go test -run '^$' ./examples/hello/... ./examples/hello/plugins/base/... ./examples/hello/plugins/greeter/... ./examples/hello/plugins/optional/...` exits 0, compiling the greeter importer in its nested module context without depending on unrelated example runtime tests.
- `grep -F 'git.golem15.com/golem15/summercms/modules/festival' backpack/app.go examples/hello/plugins/greeter/plugin.go ../fonoteka.go/plugins/golem15/user/classes/events_test.go` prints a hit in each of those three files.
- A search of tracked `*.go` for a festival import that is not under `/modules/` prints no production importer (the three files above use the modules/ form).
</acceptance_criteria>
<done>festival lives at modules/festival, its three importers compile against the new path, and the moved package plus one importer in each repo pass named tests.</done>
<done>festival lives at modules/festival, its three importers compile against the new path in the framework, examples workspace, and fonoteka contexts, and the moved package plus named importer tests pass.</done>
</task>
<task type="auto">
@@ -198,17 +199,18 @@ Do not remap names onto Winter system/backend/cms (D-06). Do not rebuild admin d
<name>Task 3: go vet and go test both repositories including fonoteka plugin modules</name>
<files>modules/**, ../fonoteka.go/plugins/**</files>
<read_first>.planning/todos/pending/nest-framework-packages-under-modules.md; go.mod; ../fonoteka.go/go.mod; ../fonoteka.go/plugins/golem15/fonoteka/go.mod; ../fonoteka.go/plugins/golem15/user/go.mod</read_first>
<action>Per D-05, from summercms.go run go vet ./... and go test ./.... From ../fonoteka.go run go vet ./... ./plugins/golem15/fonoteka/... ./plugins/golem15/user/... and go test ./... ./plugins/golem15/fonoteka/... ./plugins/golem15/user/... (same plugin-module set scripts/check-phase10.sh already uses). Do not treat a skipped PostgreSQL test as a pass for a required package that should run. Do not add dependencies. If either repo fails on an old import or a stale script path, fix the leftover from Task 2 and re-run; do not weaken tests.</action>
<action>Per D-05, from summercms.go run go vet ./... and go test ./.... Explicitly vet the examples/hello root plus base, greeter, and optional nested modules, then compile all four module contexts with go test -run '^$'; the root module wildcard does not traverse nested Go modules, and the compile-only run verifies import resolution without coupling this migration to unrelated example runtime assertions. From ../fonoteka.go run go vet ./... ./plugins/golem15/fonoteka/... ./plugins/golem15/user/... and go test ./... ./plugins/golem15/fonoteka/... ./plugins/golem15/user/... (same plugin-module set scripts/check-phase10.sh already uses). Do not treat a skipped PostgreSQL test as a pass for a required package that should run. Do not add dependencies. If either repo fails on an old import or a stale script path, fix the leftover from Task 2 and re-run; do not weaken tests.</action>
<verify>
<automated>go vet ./... &amp;&amp; go test ./... &amp;&amp; (cd ../fonoteka.go &amp;&amp; go vet ./... ./plugins/golem15/fonoteka/... ./plugins/golem15/user/... &amp;&amp; go test ./... ./plugins/golem15/fonoteka/... ./plugins/golem15/user/...)</automated>
<automated>go vet ./... &amp;&amp; go test ./... &amp;&amp; go vet ./examples/hello/... ./examples/hello/plugins/base/... ./examples/hello/plugins/greeter/... ./examples/hello/plugins/optional/... &amp;&amp; go test -run '^$' ./examples/hello/... ./examples/hello/plugins/base/... ./examples/hello/plugins/greeter/... ./examples/hello/plugins/optional/... &amp;&amp; (cd ../fonoteka.go &amp;&amp; go vet ./... ./plugins/golem15/fonoteka/... ./plugins/golem15/user/... &amp;&amp; go test ./... ./plugins/golem15/fonoteka/... ./plugins/golem15/user/...)</automated>
<fails_when>non-zero exit; any package FAIL; output contains "build failed" or "no required module provides package" for a beach import</fails_when>
</verify>
<acceptance_criteria>
- Both repository commands exit 0.
- The examples/hello root and base, greeter, and optional nested modules all exit 0 under `go vet` and compile-only `go test -run '^$'`.
- `test ! -d compass &amp;&amp; test -d modules/compass` succeeds (spot-check a non-tracer package).
- A `git grep` of tracked `*.go` `*.tmpl` `*.sh` in both repos (exclude `.planning/`) for `git.golem15.com/golem15/summercms/` followed immediately by a beach name with no `modules/` segment prints nothing.
</acceptance_criteria>
<done>Both repos vet and test green on the nested import paths, including fonoteka plugin modules.</done>
<done>Both repos vet and test green on the nested import paths, every examples/hello module vets and compiles, and fonoteka plugin modules are included.</done>
</task>
</tasks>
@@ -235,13 +237,13 @@ Do not remap names onto Winter system/backend/cms (D-06). Do not rebuild admin d
</threat_model>
<verification>
After Task 1, the festival slice is green. After Task 2, root ls has no beach dirs and the listed scripts contain the nested path literals. After Task 3, `go vet ./... && go test ./...` in summercms.go and the matching pair plus plugin modules in ../fonoteka.go exit 0.
After Task 1, the festival slice is green in the framework, examples/hello greeter module, and fonoteka importer contexts. After Task 2, root ls has no beach dirs and the listed scripts contain the nested path literals. After Task 3, `go vet ./... && go test ./...` in summercms.go, explicit vet plus compile-only test across every examples/hello workspace module, and the matching pair plus plugin modules in ../fonoteka.go exit 0.
</verification>
<success_criteria>
- `ls` at summercms.go root shows modules/, cmd/, admin/, examples/, internal/, scripts/ and none of the 18 beach directories.
- No tracked .go/.tmpl/.sh importer still uses the root-form beach import.
- Both repos test green. Scripts that later gates run now point at modules/.
- Both repos test green, and every examples/hello module vets and compiles. Scripts that later gates run now point at modules/.
</success_criteria>
<output>