Contributing
Contributing
How to contribute to Bingsan
Contributing to Bingsan
Thank you for your interest in contributing to Bingsan! This guide will help you get started.
Getting Started
- Fork the repository on GitHub
- Clone your fork locally
- Set up the development environment
- Create a feature branch
- Make your changes
- Submit a pull request
Development Setup
# Clone the repository
git clone https://github.com/YOUR_USERNAME/bingsan.git
cd bingsan
# Install dependencies
go mod download
# Install development tools
make install-tools
# Copy configuration
cp config.example.yaml config.yaml
# Start dependencies
make docker-up
# Run the server
make devProject Structure
bingsan/
├── cmd/iceberg-catalog/ # Application entry point
├── internal/
│ ├── api/ # HTTP handlers and middleware
│ ├── db/ # Database layer and migrations
│ ├── events/ # Event streaming
│ ├── pool/ # Object pooling
│ ├── config/ # Configuration
│ └── metrics/ # Prometheus metrics
├── tests/ # Test suites
├── deployments/ # Docker and K8s configs
└── docs/ # DocumentationContribution Types
Bug Reports
- Search existing issues first
- Include reproduction steps
- Provide environment details
- Attach relevant logs
Feature Requests
- Check the roadmap and existing issues
- Describe the use case
- Propose a solution if possible
Code Contributions
- Follow the code style guide
- Write tests for new functionality
- Update documentation as needed
- Keep commits focused and well-described
Pull Request Process
- Update the README or docs if needed
- Ensure all tests pass
- Update the CHANGELOG if applicable
- Request review from maintainers
- Address review feedback promptly
Communication
- GitHub Issues for bugs and features
- GitHub Discussions for questions
- Pull Request comments for code review