Skip to content

chore: retire bundled plugins from core; point docs at per-plugin repos#15

Merged
directedbits merged 3 commits into
mainfrom
chore/retire-plugins-from-core
Jul 12, 2026
Merged

chore: retire bundled plugins from core; point docs at per-plugin repos#15
directedbits merged 3 commits into
mainfrom
chore/retire-plugins-from-core

Conversation

@directedbits

@directedbits directedbits commented Jul 12, 2026

Copy link
Copy Markdown
Owner

Summary

Completes the plugin split: the 7 first-party plugins now live in their own repositories (github.com/directedbits/recur-{timer,calendar,devicemonitor,docker,fileevents,mqtt,webhook}), so this removes them from core and repoints all documentation.

The plugin system is unchanged — recur still installs, discovers, and runs plugins, and pkg/plugin-sdk (added in #14, v0.3.0) is the API those repos build against. Only the bundled plugin sources leave the tree.

  • Are new tests required?
  • Does documentation need to be updated? (done here)
  • Contains breaking changes?
  • Touches plugin contract, manifest format, or recurfile YAML schema?
  • Changes daemon config keys or plugin options?
  • Affects daemon startup/shutdown behavior?
  • Changes CLI flags or command signatures?

Changes

chore: retire bundled plugins from core

  • Delete plugins/; remove plugin entries from go.work (only the root module remains, so go.work/go.work.sum go entirely — core is a single module again).
  • CI/build: drop plugin build/test/vet/lint steps from ci, lint, audit, release, binary-size; remove per-plugin build tasks, test:plugins, and plugin lint args from the Taskfile; stop docs triggering on plugins/*/README.md; drop plugin README mirroring from sync-docs.sh.
  • e2e: drop the fileevents-backed trigger tests + the fileevents build plumbing in helpers (the remaining plugin/register e2e tests use a manifest-only fake plugin — unaffected).
  • Move the per-plugin manual test cases into their new repos (kept daemon/secrets).

docs: point plugin docs at the new per-plugin repos

  • README plugins table → repo links; add install note (recur install <release-url> + allowed_hosts); restore the Official documentation link (https://directedbits.github.io/recur/).
  • Replace the 7 stale docs/plugins/*.md pages with a catalog _index.md.
  • Fix broken plugins/<name>/ links and "ships in-repo" claims across getting-started/developer/configuration docs, CONTRIBUTING, the PR template, and ARCHITECTURE.

Test plan

  • go build ./..., go test ./src/... ./pkg/..., and go vet ./test/e2e/ pass (single module, no workspace)
  • golangci-lint run ./src/... ./pkg/... → 0 issues
  • No remaining broken plugins/<name>/ doc links (runtime ~/.config/recur/plugins references intentionally kept)

Checklist

  • Small, buildable commits — retire (code/CI) then docs, each self-contained
  • No breaking changes to the plugin runtime contract

Breaking changes

None to the plugin runtime. Operationally, the core release no longer bundles plugin binaries — users install plugins from each plugin repo's releases. Documented in the README and plugins catalog.

Directedbits and others added 2 commits July 12, 2026 13:54
The 7 first-party plugins now live in their own repositories
(github.com/directedbits/recur-<plugin>), so remove them from core:

- Delete plugins/ and drop the plugin entries from go.work (only the root
  module remains, so go.work/go.work.sum are removed entirely).
- CI/build: drop plugin build/test/vet/lint steps from ci, lint, audit,
  release, and binary-size workflows; remove per-plugin build tasks,
  test:plugins, and plugin lint args from the Taskfile; stop the docs
  workflow from triggering on plugins/*/README.md.
- e2e: drop the fileevents-backed trigger tests and the fileevents build
  plumbing from helpers (the remaining plugin/register e2e tests use a
  manifest-only fake plugin and are unaffected).
- Move the per-plugin manual test cases to their new repos; keep
  daemon/secrets cases. Drop plugin README mirroring from sync-docs.sh.

The plugin SYSTEM (install/discovery/run, SDK, protocol) is unchanged;
only the bundled plugin sources leave the tree.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Follow-up to retiring bundled plugins from core:

- README: plugins table links to github.com/directedbits/recur-<plugin>;
  add an install note (recur plugin install <release-url> + allowed_hosts);
  restore the Official documentation link (https://directedbits.github.io/recur/).
- docs/plugins: replace the 7 stale per-plugin pages (previously synced from
  plugin READMEs) with a catalog _index.md linking to each repo, plus install
  instructions.
- Fix now-broken plugins/<name>/ links and 'ships in-repo' claims across the
  getting-started, developer, and configuration docs; update CONTRIBUTING,
  the PR template, and ARCHITECTURE to describe plugins as separate repos.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

Binary Size Report

Binary Base PR Delta
recur 20MiB 20MiB -16B
recurd 17MiB 17MiB +24B

The CLI command is the top-level 'recur install <path|url>', not
'recur plugin install'. Fix the command in the README, plugins catalog,
installation, and writing-a-plugin docs, and use the real v0.1.0 example
version. Verified end-to-end: 'recur install <release-url>' installs a
plugin from its GitHub release archive.
@directedbits
directedbits merged commit 0bfd40f into main Jul 12, 2026
6 checks passed
@directedbits
directedbits deleted the chore/retire-plugins-from-core branch July 12, 2026 21:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant