docs: capture todo - make:plugin drops the vendor namespace
This commit is contained in:
@@ -0,0 +1,33 @@
|
|||||||
|
---
|
||||||
|
title: make:plugin drops the vendor and scaffolds plugins/<name> instead of plugins/<vendor>/<name>
|
||||||
|
date: 2026-10-28
|
||||||
|
created: 2026-10-28T17:24:01.309Z
|
||||||
|
area: summercms.go internal/build
|
||||||
|
severity: major
|
||||||
|
g15office: keu1ecio
|
||||||
|
files:
|
||||||
|
- internal/build/scaffold.go:70-90
|
||||||
|
- internal/build/scaffold.go:195
|
||||||
|
- internal/build/artifact.go:454
|
||||||
|
- internal/build/leaf.go:26
|
||||||
|
- internal/build/new.go:456-462
|
||||||
|
- cmd/summer/main.go:95-130
|
||||||
|
- docs/console/scaffolding.md:82
|
||||||
|
- docs/architecture/go-modules-and-workspaces.md:93
|
||||||
|
---
|
||||||
|
|
||||||
|
## Problem
|
||||||
|
|
||||||
|
`summer make:plugin pixelpixel.servers`, run in another application on 2026-10-28, created `plugins/servers` with module `<app>/plugins/servers`. The expected location was `plugins/pixelpixel/servers`. `makePlugin` in `internal/build/scaffold.go` joins `appDir/plugins/pluginName(id)`, which keeps only the part after the dot. As a result, two vendors' plugins with the same name (`acme.blog`, `pixelpixel.blog`) cannot live in one application.
|
||||||
|
|
||||||
|
The help text (`cmd/summer/main.go`, "Create plugins/blog with the ID acme.blog") and the docs (`docs/console/scaffolding.md`, `docs/architecture/go-modules-and-workspaces.md`) describe this layout as intended. Elsewhere, plugin paths include the vendor:
|
||||||
|
|
||||||
|
- Shared plugins are mounted as submodules at `plugins/<vendor>/<name>` (`.planning/notes/core-plugins-own-repos.md`).
|
||||||
|
- WinterCMS-style YAML paths have the form `~/plugins/<vendor>/<plugin>/...` (`docs/backend/relation-manager.md`).
|
||||||
|
|
||||||
|
## Solution
|
||||||
|
|
||||||
|
- Scaffold at `plugins/<vendor>/<name>` with module path `<app>/plugins/<vendor>/<name>`. Update the existing-directory hint (`plugin:add plugins/<vendor>/<name>`) and the help examples.
|
||||||
|
- `summer new`'s `addStarterPlugin` (`internal/build/new.go`) uses the same code; decide whether the starter moves to `plugins/golem15/<name>`.
|
||||||
|
- The other `make:*` commands find a plugin through the manifest's module first and then fall back to `plugins/<name>` (`internal/build/artifact.go:454`, and `leaf.go:26` for the models-leaf check). Add a `plugins/<vendor>/<name>` fallback and keep the old one, so existing applications keep working (no breaking change).
|
||||||
|
- Update the docs pages and the tests that pin `plugins/<name>`. Add an upgrading note for applications that already have `plugins/<name>`: moving one is optional, but needs `plugin:add` or a `go.mod`/`go.work` path update.
|
||||||
Reference in New Issue
Block a user