Thank you for your interest in contributing to StarTower Orb! This document provides guidelines for contributing to the project.
-
Prerequisites
- Go 1.24 or later
- RabbitMQ server (for testing)
- Git
-
Clone the repository
git clone https://github.com/startower-observability/orb.git cd orb -
Install dependencies
go mod download
-
Run tests
go test ./...
- Follow Effective Go guidelines
- Use
gofmtto format your code - Run
go vetto check for common errors - Add comments to all exported functions and types
- Keep functions small and focused
- Write unit tests for all new functionality
- Ensure all tests pass before submitting a PR
- Add integration tests for complex features
- Use table-driven tests where appropriate
For integration tests, you'll need a running RabbitMQ instance:
# Using Docker
docker run -d --name rabbitmq-test -p 5672:5672 rabbitmq:3
# Run tests
go test -tags=integration ./...
# Cleanup
docker stop rabbitmq-test && docker rm rabbitmq-test- Fork the repository and create your branch from
main - Make your changes following the code style guidelines
- Add tests for your changes
- Update documentation if needed
- Ensure all tests pass
- Submit a pull request
- Use a clear and descriptive title
- Describe what your changes do and why
- Reference any related issues
- Keep PRs focused on a single feature or fix
- Update the README if you're adding new functionality
When reporting issues, please include:
- Go version
- RabbitMQ version
- Operating system
- Steps to reproduce the issue
- Expected vs actual behavior
- Any relevant logs or error messages
We welcome feature requests! Please:
- Check if the feature already exists or is planned
- Describe the use case and benefits
- Provide examples of how it would be used
- Consider contributing the implementation
- Be respectful and inclusive
- Focus on constructive feedback
- Help others learn and grow
- Maintain a professional tone
If you have questions about contributing, feel free to:
- Open an issue for discussion
- Check existing issues and PRs
- Review the documentation
Thank you for contributing to StarTower Orb!