Thank you for your interest in contributing to InboundParse – your ideas, code, and feedback help make the project better for everyone! This guide will help you get set up, understand the workflow, and make your contribution count.
We appreciate all kinds of contributions:
- Reporting bugs
- Suggesting features and improvements
- Submitting pull requests (PRs) for code, documentation, or examples
- Improving tests or infrastructure
- Sharing your use case or feedback
-
Fork the repository on GitHub.
-
Clone your fork:
git clone https://github.com/YOUR_USERNAME/inboundparse.git cd inboundparse -
Add the upstream remote for updates:
git remote add upstream https://github.com/baker/inboundparse.git
- Ensure you have a Go toolchain that matches
go.mod(currently Go 1.26.x). - Install dependencies:
make deps
- Build the project:
make build
Key Dependencies:
github.com/failsafe-go/failsafe-go- Webhook resilience patterns (retry, rate limiting, circuit breaker)github.com/rs/zerolog- High-performance structured logginggithub.com/getsentry/sentry-go- Error tracking and performance monitoringgithub.com/prometheus/client_golang- Metrics collection
- To run all tests:
make test - For coverage summary:
make coverage
-
Keep your branch up to date:
Rebase or mergeupstream/mainregularly to minimize conflicts. -
Format your code:
make format
-
Lint your code:
make lint
We also have make fl which does both.
-
Include tests:
Add or update tests for new features and bug fixes. -
Update documentation:
Update the README or other docs if you add/change features. -
Describe your changes:
Use clear commit messages and fill out the PR template thoroughly.
- Small, focused PRs are easier to review.
- Reference related issues in your PR description (
Fixes #123). - Discuss big changes or refactors with maintainers before starting.
- Write clean, idiomatic Go (see
make fl). - Prefer clarity over cleverness.
- Use descriptive variable and function names.
- Keep functions short and focused.
- Leverage existing patterns in the codebase.
- Follow the Go style guide.
| Command | Purpose |
|---|---|
make deps |
Install dependencies |
make build |
Build binaries |
make run-dev |
Run with development settings |
make test |
Run tests |
make coverage |
Run tests with coverage report |
make format |
Format code |
make lint |
Run linter and vulnerability scan |
make vet |
Vet the code |
make fl |
Format, lint, and vet code |
make check |
Run deps, linters, and vulncheck |
make clean |
Clean build artifacts |
make up |
Start dev stack (Docker) |
make down |
Stop dev stack |
make dev |
Restart dev stack |
make status |
Show service status |
make verify-deps |
Verify dependency status |
make docker-build |
Build Docker image |
make ci |
Run CI workflow |
- File an issue or start a discussion if you have questions, ideas, or need guidance.
- For security issues, please report privately.
Thank you for improving InboundParse!