Contributing Guide
Thank you for your interest in contributing to Solana Insider Monitor! This guide will help you understand how to contribute to the project effectively.
Ways to Contribute
There are many ways to contribute to Solana Insider Monitor:
- 🐛 Reporting bugs - Help us identify issues
- 💡 Feature suggestions - Share your ideas for improvements
- 📝 Documentation improvements - Help us make the docs more clear and comprehensive
- 🔍 Code reviews - Review pull requests from other contributors
- 💻 Code contributions - Implement new features or fix bugs
Getting Started
Prerequisites
Before you begin, ensure you have the following:
- Go 1.19 or later
- Git
- Basic understanding of Solana blockchain (for certain features)
Setting Up Your Development Environment
- Fork the repository on GitHub
- Clone your fork:
- Add upstream remote:
- Install dependencies:
- Install pre-commit hooks:
Development Workflow
1. Branching Strategy
main
: Production-ready code- Feature branches:
feature/your-feature-name
- Bug fix branches:
fix/bug-description
- Hotfix branches:
hotfix/urgent-fix
2. Making Changes
- Sync your main branch:
- Create a new branch:
- Make your changes
- Run tests:
- Commit using conventional commit messages:
- Push your branch:
- Create a Pull Request on GitHub
Pull Request Guidelines
Creating Pull Requests
When creating a PR, please:
- Link related issues - Reference any issues your PR addresses
- Provide context - Explain what your changes do and why they're needed
- Include screenshots - For UI changes, include before/after screenshots
- Update documentation - Update relevant documentation if necessary
PR Review Process
- A maintainer will review your PR within a few days
- Address any feedback or requested changes
- Once approved, a maintainer will merge your PR
- Your contribution will be included in the next release
Code Standards
Go Code Guidelines
- Follow Go Code Review Comments
- Maintain Effective Go principles
- Use meaningful variable and function names
- Document all exported functions, types, and constants
- Run
golangci-lint
before committing:
Testing Guidelines
- Write tests for all new features and bug fixes
- Maintain test coverage (aim for at least 80% coverage)
- Ensure all tests pass before submitting your PR
Documentation Guidelines
When contributing to documentation:
- Use clear, concise language
- Follow the existing style and format
- Update table of contents when adding new sections
- Preview changes locally using
mkdocs serve
- Check for broken links and references
Release Process
Releases follow semantic versioning (MAJOR.MINOR.PATCH): - MAJOR: Breaking changes - MINOR: New features (backwards compatible) - PATCH: Bug fixes
Creating a Release
- Ensure all changes are merged to
main
- Create and push a new tag:
- GitHub Actions will automatically:
- Run tests
- Build binaries
- Create a GitHub release
- Upload artifacts
Community Guidelines
- Be respectful and inclusive in all interactions
- Focus on constructive feedback
- Help newcomers get started
- Acknowledge others' contributions
- Follow the Code of Conduct
Getting Help
If you need help with your contribution:
- Join our Discord community
- Open an issue with your question
- Reach out to the maintainers directly
Thank you for contributing to Solana Insider Monitor! Your efforts help make this project better for everyone.