Contributing¶
We welcome contributions to Marten!
Getting Started¶
Guidelines¶
Code Style¶
- Follow standard Go conventions
- Run
go fmtbefore committing - Keep functions small and focused
- Add comments for exported types and functions
Pull Requests¶
- Fork the repository
- Create a feature branch
- Write tests for new functionality
- Ensure all tests pass
- Submit a pull request
Commit Messages¶
Use clear, descriptive commit messages:
feat: add rate limiting middleware
fix: handle empty request body in Bind
docs: update routing examples
test: add edge cases for router
Testing¶
# Run all tests
cd tests
go test -v ./...
# Run benchmarks
go test -bench=. -benchmem
# Check coverage
go test -coverprofile=coverage.out
go tool cover -html=coverage.out
What We're Looking For¶
- Bug fixes
- Performance improvements
- Documentation improvements
- New middleware (if it fits the philosophy)
- Test coverage improvements
What We're Not Looking For¶
- Features that add external dependencies
- Breaking changes to the API
- Features that duplicate standard library functionality
Questions?¶
Open an issue for discussion before starting major work.