docs(34): roll out plugin.yaml to sm-presentations-plugin
This commit is contained in:
@@ -244,17 +244,17 @@ None beyond the plan's threat model. T-34-07 and T-34-08 are mitigated by the ge
|
||||
|
||||
## Gap closure: SC-1 remaining repos
|
||||
|
||||
34-VERIFICATION.md found four more public plugin repositories on git.golem15.com without plugin.yaml. Jakub chose to roll them out now (2026-10-29). They were cloned next to the framework (`git@git.golem15.com:golem15/sm-<name>-plugin.git`) and given the same treatment as the 20 above: framework require v0.6.0, `go mod tidy`, `summer plugin:manifest` with `--name` (each README H1 is the ID), and `manifest_test.go` calling `kiosk.CheckT(t, ".")`. Each got one commit with the subject `feat: plugin.yaml manifest for the SummerCMS marketplace`, containing plugin.yaml, manifest_test.go, go.mod and go.sum. None was pushed or tagged.
|
||||
34-VERIFICATION.md found four more public plugin repositories on git.golem15.com without plugin.yaml. Jakub chose to roll them out now (2026-10-29). They were cloned next to the framework (`git@git.golem15.com:golem15/sm-<name>-plugin.git`) and given the same treatment as the 20 above: framework require v0.6.0, `go mod tidy`, `summer plugin:manifest` (with `--name` for golem, feedback and quizzes, whose README H1 is the ID), and `manifest_test.go` calling `kiosk.CheckT(t, ".")`. Each got one manifest commit (presentations after a separate `docs: README` commit) with the subject `feat: plugin.yaml manifest for the SummerCMS marketplace`, containing plugin.yaml, manifest_test.go, go.mod and go.sum. None was pushed or tagged.
|
||||
|
||||
| Repository | Branch | Commit | Plugin ID | Name (source) | requires | Framework | Tag now -> planned |
|
||||
|---|---|---|---|---|---|---|---|
|
||||
| sm-golem-plugin | master | 89fd90a6d21c78501499c18e4eea5a4853e9519d | golem15.golem | Golem AI (override) | - | v0.6.0 (was v0.4.0) | v0.1.1 -> v0.1.2 |
|
||||
| sm-feedback-plugin | master | dd78bd275ccf533ae3d07d6dfb415f2a1b44b2f7 | golem15.feedback | Feedback (override) | golem15.user v0.1.0 | v0.6.0 (was v0.4.0) | v0.1.1 -> v0.1.2 |
|
||||
| sm-quizzes-plugin | master | 67a83dba321f1c97471bc7ba704c2218c21dc4f8 | golem15.quizzes | Quizzes (override) | golem15.user v0.1.0 | v0.6.0 (was v0.1.9) | v0.1.0 -> v0.1.1 |
|
||||
| sm-presentations-plugin | master | - (skipped) | golem15.presentations | - | - | v0.5.0 (unchanged) | v0.1.1, no new tag |
|
||||
| sm-presentations-plugin | master | b6247aa0343a7027c02bca4751cf99cf53a16419 (after README bb81f4d72108bdaf31d15044fdd95bc5ace0884f) | golem15.presentations | Presentations (README) | golem15.user v0.1.0 | v0.6.0 (was v0.5.0) | v0.1.1 -> v0.1.2 |
|
||||
|
||||
- **sm-presentations-plugin skipped:** it has no README.md. kiosk needs one even when `--name` and `--description` are given ("the plugin needs a README.md whose H1 is the plugin name"), and adding a README falls outside the rollout's file set. It builds and tests green against the framework; it needs a README (H1 name plus a summary paragraph) before it can get a plugin.yaml.
|
||||
- **sm-presentations-plugin:** at first skipped because it had no README.md (kiosk refuses to derive without one, even with `--name` and `--description`). Jakub asked for it to be included, so a README was written from the code (H1 "Presentations", summary, Overview, Features, Usage, Configuration, API reference, CLI commands, Dependencies, Testing) and committed on its own as `docs: README` (bb81f4d). The manifest commit follows, with no name override. Its planned v0.1.2 also releases the 10 commits after v0.1.1.
|
||||
- **Framework fix 87921c2, `fix(kiosk)`:** these repositories are developed inside applications. Their go.mod replaces point at an application mount (`../../../../summercms.go`, and `sm-user-plugin => ../user`). kiosk resolves required plugins with `GOWORK=off`. Next to the framework, `../user` does not exist, so feedback and quizzes derived `golem15.user: ""`, while inside sm-demo-app they derived `v0.1.0`. TestPluginManifest could not pass in both layouts. kiosk now fetches a required module whose local replace directory is missing at the version go.mod requires, so both layouts give `v0.1.0`. The fix has a regression test (TestDeriveMissingReplace, offline file:// proxy), and the 21 existing manifests stayed fresh.
|
||||
- **Local build setup:** each clone has an untracked `go.work` listed in `.git/info/exclude`. It uses `.`, replaces the framework with `../summercms.go`, and, where the plugin requires the user plugin, replaces it with `../sm-demo-app/plugins/golem15/user`. The committed go.mod replaces are unchanged, and tidy ran with them pointed at those paths only temporarily.
|
||||
- **Checks:** for golem, feedback and quizzes, TestPluginManifest, `go vet ./...`, `go test -short ./...` (green before and after the change), `summer plugin:manifest --check` and anonymous `git ls-remote` over HTTPS all pass. The drift guard was demonstrated on feedback. `go mod tidy` removed the fang leftovers (note 3) and added framework v0.6.0's indirect requires. No direct require was removed or downgraded.
|
||||
- **Mounted in apps:** sm-demo-app mounts golem, feedback, quizzes and presentations. sm-bm-app mounts quizzes and presentations. fonoteka.go mounts golem and feedback. The six pointer bumps are in 34-release-log.md. Every target sits directly on the commit the app points at today.
|
||||
- **Checks:** for golem, feedback, quizzes and presentations, TestPluginManifest, `go vet ./...`, `go test -short ./...` (green before and after the change), `summer plugin:manifest --check` and anonymous `git ls-remote` over HTTPS all pass. The drift guard was demonstrated on feedback and presentations. `go mod tidy` removed the fang leftovers (note 3) and added framework v0.6.0's indirect requires. No direct require was removed or downgraded.
|
||||
- **Mounted in apps:** sm-demo-app mounts golem, feedback, quizzes and presentations. sm-bm-app mounts quizzes and presentations. fonoteka.go mounts golem and feedback. The eight pointer bumps are in 34-release-log.md. All are fast-forwards: golem, feedback and quizzes sit one commit on top of the app's pointer, and presentations is 12 commits after sm-demo-app's v0.1.1 and 2 after sm-bm-app's 30a47ac.
|
||||
|
||||
@@ -4,7 +4,7 @@ The user-gated release of the plugin marketplace: framework `v0.6.0`, a new tag
|
||||
|
||||
Decisions this ledger follows:
|
||||
|
||||
- **Plugin tags (Jakub, 2026-10-29):** every plugin that got a `plugin.yaml` commit in this phase (the 20 `sm-*-plugin` repositories of 34-02 and the 3 of its SC-1 gap closure: golem, feedback, quizzes) and `sm-summercmsio-plugin` get a new release tag: the next patch after the newest existing tag, `v0.1.0` for a repository without one.
|
||||
- **Plugin tags (Jakub, 2026-10-29):** every plugin that got a `plugin.yaml` commit in this phase (the 20 `sm-*-plugin` repositories of 34-02 and the 4 of its SC-1 gap closure: golem, feedback, quizzes, presentations) and `sm-summercmsio-plugin` get a new release tag: the next patch after the newest existing tag, `v0.1.0` for a repository without one.
|
||||
- **Changelog (Jakub, 2026-10-29):** only the framework `v0.6.0` tag gets a post on https://summercms.io/changelog. The plugin tags get **no** `/changelog/plugins` posts; the framework post and the tag message list the plugin bumps instead.
|
||||
- **App pointer bumps:** deferred in 34-02 ("defer"); they move here and target the tagged plugin commits.
|
||||
- Memory rules: tag only at phase completion after full verification, tags only on the default branch, every tag contains the earlier tags.
|
||||
@@ -68,10 +68,11 @@ Each repository's new commit is the 34-02 manifest commit (`feat: plugin.yaml ma
|
||||
| 21 | sm-golem-plugin | master | 89fd90a | 1 | v0.1.1 | **v0.1.2** | - |
|
||||
| 22 | sm-feedback-plugin | master | dd78bd2 | 1 | v0.1.1 | **v0.1.2** | - |
|
||||
| 23 | sm-quizzes-plugin | master | 67a83db | 1 | v0.1.0 | **v0.1.1** | - |
|
||||
| 24 | sm-presentations-plugin | master | b6247aa | 12 (10 unreleased feature/test commits, README, manifest) | v0.1.1 | **v0.1.2** | - |
|
||||
|
||||
Rows 21-23 are the SC-1 gap closure (34-02-SUMMARY, "Gap closure: SC-1 remaining repos"); fresh clones, 1 ahead and 0 behind origin/master. Their go.mod replaces point at an application mount (`../../../../summercms.go`, `../user`); next to the framework they build through an untracked, git-excluded `go.work` (framework `../summercms.go`, user `../sm-demo-app/plugins/golem15/user`), so the `GOWORK=off go build` in step 3 does not apply to them: use `go build ./...`. Their manifests need framework commit 87921c2 (in v0.6.0). **sm-presentations-plugin is not in this release:** it has no README.md, so `summer plugin:manifest` cannot derive a name and description and it has no `plugin.yaml`; it keeps its current tag (v0.1.1) until a README is added.
|
||||
Rows 21-24 are the SC-1 gap closure (34-02-SUMMARY, "Gap closure: SC-1 remaining repos"); fresh clones, 0 behind origin/master (golem, feedback and quizzes 1 ahead; presentations 2 ahead: `docs: README` bb81f4d, then the manifest commit). Their go.mod replaces point at an application mount (`../../../../summercms.go`, `../user`); next to the framework they build through an untracked, git-excluded `go.work` (framework `../summercms.go`, user `../sm-demo-app/plugins/golem15/user`), so the `GOWORK=off go build` in step 3 does not apply to them: use `go build ./...`. Their manifests need framework commit 87921c2 (in v0.6.0). sm-presentations-plugin had no README.md, so a README was added first (bb81f4d `docs: README`, H1 "Presentations"); its manifest needs no name override. Its v0.1.2 also carries the 10 commits since v0.1.1 (deck image, revision and deck tools over MCP, signed one-time image uploads), which sm-bm-app already runs.
|
||||
|
||||
Requirements inside the set (from the manifests): journal and faq need translate; chat, mfa, oauthserver, sociallogin, paymentgateway, forum and userfriends need user; chatvideo needs chat; chatchannels and chatbots need chat and user; paymentgatewaysubscriptions needs paymentgateway and user; pgstripe needs paymentgateway, and its `subscriptions/` plugin needs paymentgatewaysubscriptions; feedback and quizzes need user; golem needs none.
|
||||
Requirements inside the set (from the manifests): journal and faq need translate; chat, mfa, oauthserver, sociallogin, paymentgateway, forum and userfriends need user; chatvideo needs chat; chatchannels and chatbots need chat and user; paymentgatewaysubscriptions needs paymentgateway and user; pgstripe needs paymentgateway, and its `subscriptions/` plugin needs paymentgatewaysubscriptions; feedback, quizzes and presentations need user; golem needs none.
|
||||
|
||||
### summercms.io repositories
|
||||
|
||||
@@ -117,7 +118,7 @@ The notes reuse the tag message below (`## Highlights` / `## Added` / `## Change
|
||||
|
||||
### 3. Plugins, in dependency order
|
||||
|
||||
For each repository in the table order (translate, user, chat, faq, menu, seo, sitemap, mfa, oauthserver, sociallogin, paymentgateway, paymentgatewaysubscriptions, pgstripe, journal, chatvideo, forum, herald, userfriends, then chatchannels and chatbots, then golem, feedback and quizzes):
|
||||
For each repository in the table order (translate, user, chat, faq, menu, seo, sitemap, mfa, oauthserver, sociallogin, paymentgateway, paymentgatewaysubscriptions, pgstripe, journal, chatvideo, forum, herald, userfriends, then chatchannels and chatbots, then golem, feedback, quizzes and presentations):
|
||||
|
||||
```sh
|
||||
cd ../sm-<name>-plugin
|
||||
@@ -202,8 +203,10 @@ Pending gitlinks (from 34-02 and 34-03; "tag" is the tagged commit):
|
||||
| sm-bm-app | plugins/golem15/quizzes | 362dc02 | v0.1.1 (67a83db) |
|
||||
| fonoteka.go | plugins/golem15/golem | 37748ae | v0.1.2 (89fd90a) |
|
||||
| fonoteka.go | plugins/golem15/feedback | ce4b43e | v0.1.2 (dd78bd2) |
|
||||
| sm-demo-app | plugins/golem15/presentations | 5bcbaaf | v0.1.2 (b6247aa) |
|
||||
| sm-bm-app | plugins/golem15/presentations | 30a47ac | v0.1.2 (b6247aa) |
|
||||
|
||||
38 plugin gitlinks plus the vue app link (the last six rows come from the SC-1 gap closure). Every non-chat bump is a fast-forward (checked in 34-02; the six gap-closure targets sit directly on the commit each app points at today). sm-demo-app and sm-bm-app also mount sm-presentations-plugin, which gets no bump in this release. No application mounts chatvideo, forum, herald or userfriends: those need only their tag. sm-grzybyfunkcjonalne-app (1) and fonoteka.go (39) already carry unpushed commits of their own; sm-summercmsio-app's working tree already shows its two gitlinks modified (left uncommitted by 34-03 and 34-06 on purpose).
|
||||
40 plugin gitlinks plus the vue app link (the last eight rows come from the SC-1 gap closure). Every non-chat bump is a fast-forward (checked in 34-02; the gap-closure targets are fast-forwards of the commit each app points at today: golem, feedback and quizzes one commit on top, presentations 12 commits after sm-demo-app's v0.1.1 and 2 after sm-bm-app's 30a47ac). No application mounts chatvideo, forum, herald or userfriends: those need only their tag. sm-grzybyfunkcjonalne-app (1) and fonoteka.go (39) already carry unpushed commits of their own; sm-summercmsio-app's working tree already shows its two gitlinks modified (left uncommitted by 34-03 and 34-06 on purpose).
|
||||
|
||||
For sm-summercmsio-app the framework bump is already committed (97c0c08 `chore: require summercms v0.6.0`); `scripts/build.sh dev` regenerates `main.go` and `plugins.gen.go`, which 34-03 restored to the committed versions: commit the regeneration in step 3.
|
||||
|
||||
@@ -235,7 +238,7 @@ From `../sm-summercmsio-app/DEPLOY.md`, "Plugin marketplace (the release that br
|
||||
https://git.golem15.com/golem15/sm-user-plugin.git
|
||||
```
|
||||
|
||||
`sudo -u summercms ./bin/summercms-io summercms:registry-add <the fourteen URLs>` then `summercms:registry-ingest` (first ingest, one line per repository). Only tags carrying a `plugin.yaml` are listed, so each repository publishes from its new tag; older tags are noted and skipped. The six repositories tagged for the first time here (chatchannels, chatvideo, forum, herald, userfriends, chatbots) can be added the same way when Jakub wants them listed, and so can the three of the SC-1 gap closure (`https://git.golem15.com/golem15/sm-golem-plugin.git`, `sm-feedback-plugin.git`, `sm-quizzes-plugin.git`), which already had releases.
|
||||
`sudo -u summercms ./bin/summercms-io summercms:registry-add <the fourteen URLs>` then `summercms:registry-ingest` (first ingest, one line per repository). Only tags carrying a `plugin.yaml` are listed, so each repository publishes from its new tag; older tags are noted and skipped. The six repositories tagged for the first time here (chatchannels, chatvideo, forum, herald, userfriends, chatbots) can be added the same way when Jakub wants them listed, and so can the three of the SC-1 gap closure (`https://git.golem15.com/golem15/sm-golem-plugin.git`, `sm-feedback-plugin.git`, `sm-quizzes-plugin.git`, `sm-presentations-plugin.git`), which already had releases.
|
||||
7. Curl the API:
|
||||
|
||||
```sh
|
||||
@@ -336,6 +339,7 @@ Every public plugin now ships a plugin.yaml and requires SummerCMS v0.6.0:
|
||||
- sm-golem-plugin v0.1.2
|
||||
- sm-feedback-plugin v0.1.2
|
||||
- sm-quizzes-plugin v0.1.1
|
||||
- sm-presentations-plugin v0.1.2
|
||||
```
|
||||
|
||||
If a rebase or a check changes a plugin's version before tagging, update this list and the table above together.
|
||||
|
||||
Reference in New Issue
Block a user