Contributing
Thank you for your interest in contributing to Oak Chain!
Ways to Contribute
📝 Documentation
Found a typo? Want to clarify something?
- Click "Edit this page" at the bottom of any doc
- Make your changes
- Submit a pull request
🐛 Bug Reports
Found a bug? Open an issue with:
- Clear description of the problem
- Steps to reproduce
- Expected vs actual behavior
- Environment details (OS, Docker version, etc.)
💡 Feature Requests
Have an idea? Open an issue with:
- Use case description
- Proposed solution
- Alternatives considered
🔧 Code Contributions
Want to contribute code?
- Fork the repository
- Create a feature branch
- Make your changes
- Write/update tests
- Submit a pull request
Development Setup
Documentation Site
bash
# Clone the docs repo
git clone https://github.com/somarc/oak-chain-docs.git
cd oak-chain-docs
# Install dependencies
npm install
# Start dev server
npm run dev
# Build for production
npm run buildValidator Node
bash
# Clone the infrastructure repo
git clone https://github.com/somarc/oak-chain-infra.git
git clone https://github.com/somarc/jackrabbit-oak.git
cd oak-chain-infra
# Start the current local workflow
./modes/mock/validators/lifecycle/start-cluster.sh --build --fresh
# View logs
tail -f ~/oak-chain/logs/mock/validator-0.logCode Style
Java (Validator)
- Follow existing Oak/Jackrabbit conventions
- Use meaningful variable names
- Add Javadoc for public APIs
- Write unit tests for new code
JavaScript (Docs/SDK)
- ESLint with default rules
- Prettier for formatting
- TypeScript preferred
Markdown (Documentation)
- One sentence per line (easier diffs)
- Use ATX headers (
#,##,###) - Code blocks with language tags
- Mermaid for diagrams
Pull Request Process
- Branch naming:
feature/descriptionorfix/description - Commit messages: Clear, command form ("Add feature" not "Added feature")
- Description: Explain what and why
- Tests: Include if applicable
- Review: Wait for maintainer review
PR Template
markdown
## Description
Brief description of changes.
## Type of Change
- [ ] Bug fix
- [ ] New feature
- [ ] Documentation
- [ ] Refactoring
## Testing
How was this tested?
## Checklist
- [ ] Code follows style guidelines
- [ ] Self-reviewed
- [ ] Documentation updated
- [ ] Tests passCommunity Guidelines
Be Respectful
- Assume good intentions
- Be constructive in feedback
- Welcome newcomers
Be Collaborative
- Share knowledge
- Help others learn
- Credit contributors
Be Professional
- Stay on topic
- No spam or self-promotion
- Follow the code of conduct
Recognition
Contributors are recognized in:
- Release notes
- Contributors list
- Community highlights
Questions?
- GitHub Issues: For bugs and features
- Discussions: For questions and ideas
- Documentation: For how-to guides
License
By contributing, you agree that your contributions will be licensed under the Apache 2.0 License.
Thank you for helping make Oak Chain better! 🌳⛓️