Current section
Files
Jump to
Current section
Files
oban_sentinel
CONTRIBUTING.md
CONTRIBUTING.md
# Contributing to ObanSentinel
Thanks for helping make Oban operations safer. Contributions should preserve
the library's core promise: telemetry handlers must never synchronously perform
network I/O, database work, or blocking queue control.
## Development setup
Install a supported Elixir and OTP release, then run:
```sh
mix deps.get
mix format --check-formatted
mix test
```
Run the full suite before opening a pull request. New behavior should include a
success path and an error or boundary case.
## Design rules
- Keep state owned by OTP processes; do not expose Sentinel ETS tables.
- Do not create atoms from Oban worker or queue strings.
- Treat queue pauses and resumes as fallible side effects.
- Keep public APIs documented with specs and return structured errors.
- Do not add mandatory hosted services, telemetry collection, or credentials.
- Never put webhook URLs, tokens, or production job payloads in tests, commits,
issues, or logs.
## Pull requests
Keep changes focused and describe the operational impact: failure mode,
telemetry emitted, retry behavior, and recovery behavior. Changes that alter
circuit defaults, guards, or queue control require release-note entries in
`CHANGELOG.md`.
## Reporting security issues
Do not disclose credentials, job payloads, or exploitable details in public
issues. Report security-sensitive behavior privately to the repository
maintainers.