Thank you for your interest in contributing to VRFCall! This document provides guidelines and instructions for contributing to this project.
We welcome contributions of all kinds, including:
- 🐛 Bug reports
- 💡 Feature requests
- 📝 Documentation improvements
- 🔧 Code contributions
- 🧪 Test cases
- 📖 Examples and tutorials
- Go 1.22 or higher
- Access to a VRFChain node (local or remote)
- Basic understanding of Cosmos SDK and blockchain concepts
-
Fork the repository on GitHub
-
Clone your fork:
git clone https://github.com/your-username/vrfcall.git cd vrfcall -
Add the upstream remote:
git remote add upstream https://github.com/aakash4dev/vrfcall.git
-
Install dependencies:
go mod download
-
Ensure VRFChain is running:
- Make sure VRFChain is running on
http://localhost:26657(Tendermint RPC) - REST API should be available at
http://localhost:1317
- Make sure VRFChain is running on
-
Update your main branch:
git checkout main git pull upstream main
-
Create a feature branch:
git checkout -b feature/your-feature-name # or git checkout -b fix/your-bug-fix
- Write clear, readable code following Go conventions
- Add comments for complex logic
- Ensure your code compiles without errors
- Test your changes locally
Follow these guidelines for commit messages:
- Use clear, descriptive messages
- Start with a verb in imperative mood (e.g., "Add", "Fix", "Update")
- Keep the first line under 72 characters
- Add more details in the body if needed
Examples:
Add support for custom RPC endpoints
Fix balance check logic for zero balance accounts
Update README with API endpoint documentation
Before submitting a pull request:
-
Run the application:
go run main.go
-
Test your changes with a local VRFChain instance
-
Check for linting errors:
go vet ./...
-
Push your branch to your fork:
git push origin feature/your-feature-name
-
Create a Pull Request on GitHub:
- Provide a clear title and description
- Reference any related issues
- Include screenshots or examples if applicable
-
Wait for review:
- Maintainers will review your PR
- Address any feedback or requested changes
- Be patient and responsive to comments
- Code follows Go style guidelines
- Changes are tested locally
- Documentation is updated (if needed)
- Commit messages are clear and descriptive
- No unnecessary files are included
- PR description explains the changes and motivation
When reporting bugs, please include:
- Description: Clear description of the bug
- Steps to Reproduce: Detailed steps to reproduce the issue
- Expected Behavior: What you expected to happen
- Actual Behavior: What actually happened
- Environment:
- Go version
- Operating system
- VRFChain version (if applicable)
- Logs/Errors: Any error messages or logs
- Screenshots: If applicable
Create an issue using the Bug Report template.
Feature suggestions are welcome! When proposing a feature:
- Check existing issues to avoid duplicates
- Describe the use case and why it would be valuable
- Provide examples of how it would be used
- Consider implementation details if possible
Create an issue using the Feature Request template.
- Follow standard Go formatting (
go fmt) - Use
gofmtorgoimportsfor imports - Keep functions focused and small
- Use meaningful variable and function names
- Add comments for exported functions and types
- Keep related code in appropriate packages
- Chain-related operations in
chain/package - Configuration in
config/package - Main application logic in
main.go
If you discover a security vulnerability, please do not open a public issue. Instead:
- Email the maintainer directly
- Provide details about the vulnerability
- Allow time for the issue to be addressed before disclosure
If you have questions about contributing:
- Open an issue with the
questionlabel - Check existing issues and discussions
- Reach out to the maintainer
Contributors will be recognized in:
- The project's README (if applicable)
- Release notes for significant contributions
- GitHub contributors page
Thank you for contributing to VRFCall! 🎉