Thank you for your interest in contributing to DIU OS! We're building the future of scientific discovery through open collaboration, and every contribution matters.
- Fork the repository
- Clone your fork:
git clone https://github.com/YOUR-USERNAME/REPO-NAME - Create a branch:
git checkout -b feature/your-feature-name - Make your changes
- Test your changes
- Commit:
git commit -m "feat: add new feature" - Push:
git push origin feature/your-feature-name - Submit a Pull Request
We use Conventional Commits:
feat:New featurefix:Bug fixdocs:Documentation changesstyle:Code style changes (formatting, semicolons, etc)refactor:Code refactoringtest:Adding or updating testschore:Maintenance tasksperf:Performance improvements
Examples:
feat: add quantum tunneling visualization
fix: correct wave function normalization
docs: update API documentation
- Features: New functionality aligned with our roadmap
- Bug Fixes: Help us squash bugs
- Performance: Optimization and improvements
- Tests: Unit tests, integration tests, E2E tests
- Documentation: Improve docs, fix typos, add examples
- Translations: Help make DIU OS accessible globally
- Design: UI/UX improvements, graphics, animations
- Research: Scientific accuracy, algorithm improvements
- Git
- Node.js 18+ (for frontend)
- Rust 1.70+ (for backend)
- Docker (optional)
cd diu-backend
cargo build
cargo test
cargo runcd diu-frontend
npm install
npm test
npm run devcd physics-tutorial
npm install
npm run dev
# Open http://localhost:5173Before submitting a PR, ensure:
- All tests pass:
npm testorcargo test - Code is formatted:
npm run formatorcargo fmt - Code is linted:
npm run lintorcargo clippy - Documentation is updated if needed
- Update the README.md with details of changes if applicable
- Ensure all tests pass and code is properly formatted
- Update the documentation if you're changing functionality
- Reference any relevant issues in your PR description
- Wait for code review from maintainers
## Description
Brief description of changes
## Type of Change
- [ ] Bug fix
- [ ] New feature
- [ ] Breaking change
- [ ] Documentation update
## Checklist
- [ ] Tests pass
- [ ] Code is formatted
- [ ] Documentation updated
- [ ] PR title follows commit convention
## Related Issues
Fixes #123- Follow Rust API Guidelines
- Use
cargo fmtfor formatting - Use
cargo clippyfor linting
- Use ESLint configuration provided
- Prefer functional components in React
- Use TypeScript for type safety
- Write clear, self-documenting code
- Add comments for complex logic
- Keep functions small and focused
- Write tests for new features
Include:
- Clear description
- Steps to reproduce
- Expected behavior
- Actual behavior
- System information
- Screenshots if applicable
Include:
- Use case description
- Proposed solution
- Alternative solutions considered
- Additional context
- Discord: Join our community
- GitHub Discussions: For general discussions
- GitHub Issues: For bugs and features
- Email: dev@diu-os.dev for private matters
Contributors are recognized in:
- Repository README
- Website contributors page
- Release notes
- Special Discord role
Please read our Code of Conduct before contributing.
By contributing to DIU OS, you agree that your contributions will be licensed under the MIT License.
Every contribution, no matter how small, helps build the future of scientific discovery. Thank you for being part of the DIU OS community!
Questions? Feel free to ask in our Discord or open a Discussion.