We appreciate your interest in contributing to the RaaS Blueprints! This document provides guidelines and instructions for contributing.
This project adheres to the Contributor Covenant Code of Conduct. By participating, you are expected to uphold this code.
- Create a new directory under
blueprints/
with your blueprint name - Include the following structure:
blueprints/your-blueprint/ ├── src/ │ ├── lib.rs │ ├── main.rs │ └── jobs/ │ └── mod.rs ├── scripts/ ├── contracts/ └── README.md
- Implement the required traits from the Tangle SDK
- Add comprehensive tests
- Document your blueprint thoroughly
- Create an issue describing the proposed changes
- Fork the repository and create a feature branch
- Make your changes following our coding standards
- Submit a pull request with a clear description
- Follow Rust's official style guidelines
- Use meaningful variable and function names
- Document public APIs with rustdoc
- Handle errors appropriately using Result types
- Write unit tests for all public functions
- Follow Solidity style guide
- Include comprehensive NatSpec comments
- Write thorough test coverage
- Use latest stable Solidity version
- Implement proper access control
- Use TypeScript for all scripts
- Follow ESLint configuration
- Include proper error handling
- Use async/await for asynchronous operations
- Document function parameters and return types
- Unit tests for all Rust code
- Integration tests for job handlers
- Smart contract tests using Foundry
- End-to-end tests for complete workflows
Rust tests
cargo test
Smart contract tests
forge test
TypeScript tests
yarn test
- Update documentation reflecting any changes
- Add tests for new functionality
- Ensure CI passes all checks
- Request review from maintainers
- Address review feedback promptly
- Version numbers follow SemVer
- Document all changes in CHANGELOG.md
- Tag releases appropriately
- Update documentation as needed
- Open an issue for bugs or feature requests
- Join our Discord for community discussions
- Check existing documentation and issues first
By contributing, you agree that your contributions will be licensed under the same terms as the project (MIT/Apache-2.0 dual license).