• v0.6.0 76288cd9e8

    SummerCMS v0.6.0: plugin marketplace

    jakub released this 2026-10-30 13:32:24 +00:00 | 126 commits to master since this release

    Plugins now describe themselves in a generated plugin.yaml, applications
    install and update them with one summer command, and the admin shows what
    an application was built with. summercms.io lists the plugins in its new
    marketplace.

    • plugin.yaml: every plugin carries a manifest generated from its own
      sources (ID and required plugins from plugin.go, module and version
      minimums from go.mod, name and description from the README). It is
      committed next to plugin.go and never edited by hand.

    • summer plugin:install <vendor.name> adds a plugin from the registry: the
      newest release your framework version allows, with the plugins it
      requires, after printing the plan and asking (or --yes). --source and git
      URLs install it as a git submodule instead.

    • summer plugin:update moves one or all installed plugins to their newest
      compatible release.

    • The admin has a Plugins screen (Settings -> System -> Plugins): installed
      plugins with versions and sources, update badges and a marketplace search,
      each with the summer command to copy.

    • New module kiosk: the plugin.yaml format (Manifest, Marshal, Parse,
      Validate), Derive/Generate/Write/Check, CheckT for a one-line go test
      guard in plugin repositories, the registry API v1 wire types, version
      rules (ValidVersion, CompareVersions, BaseVersion, Satisfies,
      NewestCompatible) and the registry client (kiosk.Client, NewClient,
      RegistryURL).

    • summer plugin:manifest [dir] with --check, --pretend, --name and
      --description. Plugin IDs and requirements may be literals or constants
      of the same package, another package or another module; nothing is run.

    • summer plugin:install and summer plugin:update, with --yes and
      --offline; plugin:install also takes vendor.name@vX.Y.Z and --source.

    • summer build bakes PluginInfo (name, description, module, package,
      version and source of each plugin) and FrameworkVersion into
      plugins.gen.go; the generated main publishes them with party.Describe,
      and party.Installed exposes them to plugins.

    • Config key plugins.registry_url (default https://summercms.io;
      SUMMER_PLUGINS__REGISTRY_URL overrides it; an empty value disables every
      registry call).

    • Permission backend.view_plugins (cabana.PermissionViewPlugins) for the
      Plugins screen; superusers always have it. Admin API GET /plugins and
      GET /plugins/marketplace; settings entries may open an admin route
      (SettingsEntry.Path).

    • summer plugin:add reads constant plugin IDs, and plugin:add and
      plugin:install append to summer.yaml in place: comments, blank lines and
      the item layout stay as they were.

    • Every application's main.go and plugins.gen.go change on the first
      summer build with v0.6.0; commit the regeneration with the upgrade.

    Every public plugin now ships a plugin.yaml and requires SummerCMS v0.6.0:

    • sm-translate-plugin v0.1.3
    • sm-user-plugin v0.1.19
    • sm-chat-plugin v0.1.4
    • sm-faq-plugin v0.1.2
    • sm-menu-plugin v0.1.2
    • sm-seo-plugin v0.1.1
    • sm-sitemap-plugin v0.1.2
    • sm-mfa-plugin v0.1.3
    • sm-oauthserver-plugin v0.1.6
    • sm-sociallogin-plugin v0.1.6
    • sm-paymentgateway-plugin v0.1.2
    • sm-paymentgatewaysubscriptions-plugin v0.1.3
    • sm-pgstripe-plugin v0.1.4
    • sm-journal-plugin v0.2.6
    • sm-chatvideo-plugin v0.1.0 (first release)
    • sm-forum-plugin v0.1.0 (first release)
    • sm-herald-plugin v0.1.0 (first release)
    • sm-userfriends-plugin v0.1.0 (first release)
    • sm-chatchannels-plugin v0.1.0 (first release)
    • sm-chatbots-plugin v0.1.0 (first release)
    • sm-golem-plugin v0.1.2
    • sm-feedback-plugin v0.1.2
    • sm-quizzes-plugin v0.1.1
    • sm-presentations-plugin v0.1.2
    Downloads