Thank you for your interest in contributing to the NumKeys Protocol! We welcome contributions from the community.
Please note that NumKeys is currently in alpha. APIs and features may change significantly. We appreciate your patience and feedback during this early stage.
- Check if the issue already exists in our issue tracker
- Include detailed steps to reproduce the problem
- Provide your environment details (OS, Rust version, etc.)
- For security vulnerabilities, please see SECURITY.md
- Open an issue with the "enhancement" label
- Clearly describe the use case and benefits
- Be open to discussion and feedback
-
Fork the repository
git clone https://github.com/bitnob/numkeys.git cd NumKeys -
Create a feature branch
git checkout -b feature/your-feature-name
-
Make your changes
- Follow existing code style and conventions
- Add tests for new functionality
- Update documentation as needed
- Ensure all tests pass:
cargo test
-
Commit your changes
git commit -m "feat: add new feature"Commit message format:
feat:for new featuresfix:for bug fixesdocs:for documentation changestest:for test additions/changesrefactor:for code refactoring
-
Push and create a Pull Request
git push origin feature/your-feature-name
- Run
cargo fmtbefore committing - Run
cargo clippyand address any warnings - Follow Rust naming conventions
- Add documentation comments for public APIs
- Write unit tests for new functions
- Add integration tests for new features
- Ensure all tests pass before submitting PR
- Include test cases for error conditions
# Install Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Clone repository
git clone https://github.com/bitnob/numkeys.git
cd NumKeys
# Build all components
cargo build --workspace
# Run tests
cargo test --workspace
# Run a specific crate
cargo run -p issuer-node- Update relevant
.mdfiles in/docs - Add inline documentation for new code
- Include examples where helpful
- Keep documentation concise and clear
- All PRs require at least one review
- CI tests must pass
- Documentation must be updated
- Code must follow project conventions
- Be respectful and constructive
- Help others in issues and discussions
- Share your use cases and feedback
By contributing, you agree that your contributions will be licensed under Apache-2.0.
Thank you for helping make NumKeys Protocol better! 🚀