feat(build): bake plugin metadata and the framework version into plugins.gen.go
- party.Info, party.Installed, party.Describe (additive; Plugin and Activate unchanged) - summer build resolves plugin dirs with one go list, reads plugin.yaml, versions per D-07 (module version, git describe without --dirty, none for in-app plugins) - build.EffectiveFramework: newest tag of a locally replaced or used framework checkout, else the go.mod require - generated main calls party.Describe(app, PluginInfo, FrameworkVersion) before Activate; metadata failures warn and fall back to IDs - summer new goldens and examples/hello regenerated
This commit is contained in:
@@ -34,6 +34,9 @@ func run(args []string, out io.Writer) int {
|
||||
return bonfire.Fail(os.Stderr, "hello", err, g)
|
||||
}
|
||||
app := backpack.New(cfg)
|
||||
if err := party.Describe(app, PluginInfo, FrameworkVersion); err != nil {
|
||||
return bonfire.Fail(os.Stderr, "hello", err, g)
|
||||
}
|
||||
plugins, err := party.Activate(app, PluginIDs)
|
||||
if err != nil {
|
||||
return bonfire.Fail(os.Stderr, "hello", err, g)
|
||||
|
||||
@@ -6,6 +6,8 @@ import (
|
||||
_ "git.golem15.com/golem15/summercms/examples/hello/plugins/base"
|
||||
_ "git.golem15.com/golem15/summercms/examples/hello/plugins/greeter"
|
||||
_ "git.golem15.com/golem15/summercms/examples/hello/plugins/optional"
|
||||
|
||||
"git.golem15.com/golem15/summercms/modules/party"
|
||||
)
|
||||
|
||||
// PluginIDs is the ordered plugin list from summer.yaml.
|
||||
@@ -14,3 +16,14 @@ var PluginIDs = []string{
|
||||
"golem15.greeter",
|
||||
"golem15.optional",
|
||||
}
|
||||
|
||||
// PluginInfo is each plugin's metadata in summer.yaml order: name and
|
||||
// description from its plugin.yaml, version and source from summer build.
|
||||
var PluginInfo = []party.Info{
|
||||
{ID: "golem15.hello", Module: "git.golem15.com/golem15/summercms/examples/hello/plugins/base", Package: "git.golem15.com/golem15/summercms/examples/hello/plugins/base", Source: party.SourceLocal},
|
||||
{ID: "golem15.greeter", Module: "git.golem15.com/golem15/summercms/examples/hello/plugins/greeter", Package: "git.golem15.com/golem15/summercms/examples/hello/plugins/greeter", Source: party.SourceLocal},
|
||||
{ID: "golem15.optional", Module: "git.golem15.com/golem15/summercms/examples/hello/plugins/optional", Package: "git.golem15.com/golem15/summercms/examples/hello/plugins/optional", Source: party.SourceLocal},
|
||||
}
|
||||
|
||||
// FrameworkVersion is the framework version the app was built against.
|
||||
const FrameworkVersion = "v0.5.3"
|
||||
|
||||
Reference in New Issue
Block a user