diff --git a/.planning/phases/10.2-nest-framework-packages-under-modules-and-write-run-docs/10.2-01-PLAN.md b/.planning/phases/10.2-nest-framework-packages-under-modules-and-write-run-docs/10.2-01-PLAN.md index 8a42789..ce678cf 100644 --- a/.planning/phases/10.2-nest-framework-packages-under-modules-and-write-run-docs/10.2-01-PLAN.md +++ b/.planning/phases/10.2-nest-framework-packages-under-modules-and-write-run-docs/10.2-01-PLAN.md @@ -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. - test -d modules/festival && test ! -d festival && go test ./modules/festival -count=1 && go test ./backpack -run '^TestEventBusesAreAppScoped$' -count=1 && (cd ../fonoteka.go && go test ./plugins/golem15/user -run '^TestGetApiArrayEventMerge$' -count=1) - 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" + test -d modules/festival && test ! -d festival && go test ./modules/festival -count=1 && go test ./backpack -run '^TestEventBusesAreAppScoped$' -count=1 && go test -run '^$' ./examples/hello/... ./examples/hello/plugins/base/... ./examples/hello/plugins/greeter/... ./examples/hello/plugins/optional/... && (cd ../fonoteka.go && go test ./plugins/golem15/user -run '^TestGetApiArrayEventMerge$' -count=1) + 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 - `test -d modules/festival && 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). - 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. + 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. @@ -198,17 +199,18 @@ Do not remap names onto Winter system/backend/cms (D-06). Do not rebuild admin d Task 3: go vet and go test both repositories including fonoteka plugin modules modules/**, ../fonoteka.go/plugins/** .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 - 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. + 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. - go vet ./... && go test ./... && (cd ../fonoteka.go && go vet ./... ./plugins/golem15/fonoteka/... ./plugins/golem15/user/... && go test ./... ./plugins/golem15/fonoteka/... ./plugins/golem15/user/...) + go vet ./... && go test ./... && go vet ./examples/hello/... ./examples/hello/plugins/base/... ./examples/hello/plugins/greeter/... ./examples/hello/plugins/optional/... && go test -run '^$' ./examples/hello/... ./examples/hello/plugins/base/... ./examples/hello/plugins/greeter/... ./examples/hello/plugins/optional/... && (cd ../fonoteka.go && go vet ./... ./plugins/golem15/fonoteka/... ./plugins/golem15/user/... && go test ./... ./plugins/golem15/fonoteka/... ./plugins/golem15/user/...) non-zero exit; any package FAIL; output contains "build failed" or "no required module provides package" for a beach import - 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 && 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. - Both repos vet and test green on the nested import paths, including fonoteka plugin modules. + Both repos vet and test green on the nested import paths, every examples/hello module vets and compiles, and fonoteka plugin modules are included. @@ -235,13 +237,13 @@ Do not remap names onto Winter system/backend/cms (D-06). Do not rebuild admin d -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. - `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/.