diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..2409d98 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,33 @@ +--- +name: Bug report +about: Report a bug in this plugin +title: '[Bug] ' +labels: bug +assignees: '' +--- + +## Describe the bug + +A clear and concise description of what the bug is. + +## To reproduce + +Steps to reproduce the behavior: +1. Config used (redact any secrets) +2. Command run +3. Error output + +## Expected behavior + +What you expected to happen. + +## Environment + +- workflow engine version: +- plugin version: +- Go version: +- OS: + +## Additional context + +Add any other context or logs here. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000..bfcf5e9 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,27 @@ +--- +name: Feature request +about: Suggest a new capability for this plugin +title: '[Feature] ' +labels: enhancement +assignees: '' +--- + +## Summary + +A one-sentence description of the feature. + +## Motivation + +Why is this feature needed? What problem does it solve? + +## Proposed solution + +How would you like it to work? Include config schema changes if relevant. + +## Alternatives considered + +Any alternative approaches you considered and why you ruled them out. + +## Additional context + +Links, screenshots, or related issues. diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..a510115 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,20 @@ +## Summary + + + +## Motivation + + + +## Test plan + +- [ ] `go build ./...` passes +- [ ] `go vet ./...` passes +- [ ] `go test ./...` passes +- [ ] Manual smoke test (describe) + +## Checklist + +- [ ] CHANGELOG.md updated (Keep-a-Changelog format) +- [ ] No secrets or credentials included +- [ ] One feature or bugfix per PR diff --git a/CHANGELOG.md b/CHANGELOG.md index 93ff067..eba5014 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [Unreleased] + +### Added +- Verified banner in README — plugin confirmed used in production at buymywishlist. +- CONTRIBUTING.md with local dev instructions and PR checklist. +- `examples/minimal/config.yaml` — runnable `step.eventbus.publish` example using pgchannel provider without an external broker. + ## v0.3.4 — 2026-05-13 ### Fixed diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..cfad792 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,27 @@ +# Contributing to workflow-plugin-eventbus + +This plugin is part of the [GoCodeAlone/workflow](https://github.com/GoCodeAlone/workflow) ecosystem. + +## Before contributing + +Read the [upstream CONTRIBUTING.md](https://github.com/GoCodeAlone/workflow/blob/main/CONTRIBUTING.md) for general conventions, signing, and review expectations. + +## Local development + +```sh +git clone https://github.com/GoCodeAlone/workflow-plugin-eventbus.git +cd workflow-plugin-eventbus +go build ./... +go test ./... +``` + +## Pull requests + +- One feature or bugfix per PR. +- Update CHANGELOG.md with a Keep-a-Changelog entry. +- Add tests covering new behavior. +- Run `go vet ./...` before pushing. + +## Reporting issues + +See the issue templates under `.github/ISSUE_TEMPLATE/`. diff --git a/README.md b/README.md index 004b03f..f1689a7 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # workflow-plugin-eventbus +> ✅ **Verified** — used in production at **buymywishlist**. This plugin has been validated end-to-end in a merged main-branch wfctl.yaml of an active GoCodeAlone project. + A [workflow](https://github.com/GoCodeAlone/workflow) external plugin that provisions durable event-bus clusters and exposes typed pipeline steps for publish/consume operations. > **v0.2.0 module-type rename:** `infra.eventbus*` → `eventbus.*`. The `infra.` prefix is reserved for IaC modules; eventbus modules are runtime modules. If you're upgrading from v0.1.0, see [MIGRATION.md](MIGRATION.md). diff --git a/examples/minimal/config.yaml b/examples/minimal/config.yaml new file mode 100644 index 0000000..803cd49 --- /dev/null +++ b/examples/minimal/config.yaml @@ -0,0 +1,25 @@ +# examples/minimal/config.yaml — minimal workflow-plugin-eventbus example. +# Demonstrates publishing an event via step.eventbus.publish. +# Uses pgchannel provider which requires only a DATABASE_URL — no external broker needed. + +modules: + - name: my-events + type: eventbus.broker + config: + provider: pgchannel + broker_target: in_process + dsn: '{{config "database_url"}}' + +pipelines: + publish-example: + trigger: + type: http + config: + path: /events/publish + method: POST + steps: + - name: publish + type: step.eventbus.publish + config: + subject: events.created + payload: '{{toJson .body}}'