Thank you for your interest in contributing to the Demos Network Node Software! This guide will help you get started with contributing to our project.
Before contributing, please review our guidelines:
- Coding Guidelines - Code style, naming conventions, and best practices
- Pull Request Guidelines - MANDATORY pre-PR review process with CodeRabbit CLI
- Set Up Guidelines - Set up the repo and its dependencies
- AI-Assisted Development Guidelines - If you plan to use any AI coding tool, please refer to these guidelines
- Bun (latest version) - Our primary runtime and package manager
- Node.js 20.x+ - For compatibility
- Docker - For running PostgreSQL database
- Git - Version control
Please refer to INSTALL.md for all the necessary informations on how to set up, run and develop on this repository.
IMPORTANT: If you are using any AI coding tool (Claude Code, Copilot, etc.), you should definitely check AI-Assisted Development Guidelines for essential setup and workflow instructions.
Always create a feature branch for your work:
git checkout -b feature/your-feature-nameBranch naming conventions:
feature/- New featuresfix/- Bug fixesrefactor/- Code refactoringdocs/- Documentation updatestest/- Test additions or fixes
- Plan your implementation - For complex features, create a
*_PHASES.mdfile with implementation steps - Write clean code - Follow our Coding Guidelines
- Test your changes - Ensure all tests pass
- Lint your code - Run
bun run lint:fixbefore committing
Before submitting your changes, ensure:
# Run linting
bun run lint
bun run lint:fix # Auto-fix issuesWrite clear, descriptive commit messages:
- Use present tense ("Add feature" not "Added feature")
- Keep the first line under 50 characters
- Reference issues when applicable (
Fixes #123)
Example:
Add multichain transaction validation
- Implement validation logic for cross-chain transactions
- Add unit tests for validation functions
- Update SDK integration
Fixes #456
MANDATORY: Before submitting your PR, you MUST run the CodeRabbit CLI locally. See Pull Request Guidelines for detailed instructions.
IMPORTANT: This repository integrates CodeRabbit and Qodo as automatic PR review services. As their insights are usually very valuable, please check them out BEFORE considering your PR ready.
- Run pre-PR review - Use
coderabbitCLI to catch issues early (see PR Guidelines) - Update documentation - If you've added functionality, update relevant docs
- Ensure CI passes - All automated checks must pass
- Assess review - CodeRabbit and Qodo will automatically generate a review of your PR. Please check it out as they often spot hidden bugs and provide solutions
- Address feedback - Respond to and resolve review comments
When opening a PR, please include:
- Description - What does this PR do?
- Motivation - Why is this change needed?
- Testing - How has this been tested?
- Breaking changes - Does this break existing functionality?
- Issues - Link to related issues
- Modularity - Keep features isolated and reusable
- Type Safety - Leverage TypeScript for full type coverage
- Error Handling - Comprehensive error handling and validation
- Documentation - Document complex logic and APIs
Include:
- Clear description of the bug
- Steps to reproduce
- Expected vs actual behavior
- Environment details (OS, Bun version, etc.)
- Relevant logs or error messages
Include:
- Use case and motivation
- Proposed solution
- Alternative solutions considered
- Potential impact on existing functionality
- Always use Bun for package management (
bun add, notnpm install) - Run TypeScript directly with Bun (
bun src/index.ts) - Leverage Bun's built-in test runner (
bun test)
- Use double quotes for strings
- No semicolons at statement ends
- camelCase for variables and functions
- PascalCase for types and classes
- See GUIDELINES/CODING.md for complete style guide
- Optimize for readability first, then performance
- Use async/await for asynchronous operations
- Implement proper caching strategies
- Monitor memory usage in long-running processes
- Be respectful and inclusive
- Welcome newcomers and help them get started
- Focus on constructive feedback
- Report unacceptable behavior to maintainers
- Review existing documentation
- Search through existing issues
- Ask questions in discussions
- Join our community channels
By contributing to this project, you agree that your contributions will be licensed under the CC BY-NC-ND 4.0 License.
Your contributions help make the Demos Network better for everyone. We appreciate your time and effort in improving this project!
Questions? Feel free to open an issue or reach out to the maintainers.