fix(build): scaffold plugins under plugins/<vendor>/<name> (quick-261028-pq8)
- make:plugin writes plugins/<vendor>/<name> with module <app>/plugins/<vendor>/<name>; the package name stays <name> - make:* and the models-leaf check look in summer.yaml, then plugins/<vendor>/<name>, then the older plugins/<name> - summer new puts its starter plugin at plugins/golem15/<name> - refuse a vendor directory that is a legacy plugin module and a second copy of a plugin that already sits in plugins/<name> - help text and docs, with an upgrading note: moving is optional
This commit is contained in:
@@ -12,7 +12,7 @@ Plugins are the foundation of every SummerCMS application. A plugin adds models,
|
||||
|
||||
Every plugin has an ID in `vendor.plugin` form: two lower-case parts, each starting with a letter and containing only letters and digits, such as `acme.blog`. The ID is how the manifest lists the plugin, how other plugins require it and how its configuration is namespaced (`acme.blog.posts_per_page`). WinterCMS writes the same identifier as `Acme.Blog`; in SummerCMS it is always lower case.
|
||||
|
||||
The scaffolder derives the package and directory name from the second part, so `summer make:plugin acme.blog` creates `plugins/blog` with `package blog`.
|
||||
The scaffolder puts the plugin in a directory per vendor and names the package after the second part, so `summer make:plugin acme.blog` creates `plugins/acme/blog` with `package blog`, and `acme.blog` and `pixelpixel.blog` can sit side by side.
|
||||
|
||||
## The plugin type
|
||||
|
||||
@@ -104,7 +104,7 @@ Configuration defaults, translations and mail templates ship inside the binary t
|
||||
`summer make:plugin acme.blog` writes a plugin that compiles and follows the WinterCMS directory layout, with each directory as a Go subpackage:
|
||||
|
||||
```text
|
||||
plugins/blog/
|
||||
plugins/acme/blog/
|
||||
├── go.mod the plugin module, requiring the framework
|
||||
├── plugin.go the Plugin type, its capabilities and init registration
|
||||
├── routes.go the Routes method
|
||||
|
||||
@@ -23,7 +23,7 @@ Tests that need Docker, such as database tests, skip themselves in short mode. U
|
||||
go test -short ./...
|
||||
```
|
||||
|
||||
In an application with local plugins in a `go.work` workspace, run the tests of one plugin by its directory, for example `go test ./plugins/blog/...`.
|
||||
In an application with local plugins in a `go.work` workspace, run the tests of one plugin by its directory, for example `go test ./plugins/acme/blog/...`.
|
||||
|
||||
## Unit tests without a database
|
||||
|
||||
|
||||
Reference in New Issue
Block a user