Thank you for your interest in contributing to OpenPR! 🎉
Be respectful, inclusive, and constructive. We're all here to build great software together.
- Fork the repository
- Clone your fork
git clone https://github.com/yourusername/openpr.git cd openpr - Set up development environment
bash scripts/start.sh
git checkout -b feature/my-awesome-featureBranch naming conventions:
feature/- New featuresfix/- Bug fixesdocs/- Documentation updatesrefactor/- Code refactoringtest/- Test improvements
Follow our coding standards:
- Rust: See RUST_CODING_STANDARD.md
- Frontend: ESLint + Prettier (run
bun run lint) - Commits: Use Conventional Commits
Example commit messages:
feat: add user profile editing
fix: correct JWT token expiration
docs: update API documentation
test: add integration tests for auth flow
# Run API tests
bash scripts/test-api.sh
# Run MCP tests
bash scripts/test-mcp.sh
# Run E2E tests
bash scripts/e2e-test.sh
# Run Rust tests
cargo test
# Run frontend tests
cd frontend && bun run test# Rust
cargo fmt
# Frontend
cd frontend && bun run format- Push your branch to your fork
- Open a PR against
mainbranch - Fill out the PR template
- Wait for review
- Title: Clear and descriptive
- Description: Explain what and why
- Tests: All tests must pass
- Documentation: Update docs if needed
- Breaking changes: Clearly marked and explained
openpr/
├── apps/ # Applications (api, worker, mcp-server)
├── crates/ # Shared libraries
├── frontend/ # SvelteKit frontend
├── migrations/ # Database migrations
├── scripts/ # Deployment & utility scripts
└── docs/ # Documentation
# Backend (without Docker)
cargo run -p api
# Frontend (hot reload)
cd frontend && bun run dev
# Database only
docker run -p 5432:5432 -e POSTGRES_PASSWORD=openpr postgres:16# Rust with debug logs
RUST_LOG=debug cargo run -p api
# Check database
docker-compose exec postgres psql -U openpr -d openpr
# View API logs
docker-compose logs -f api- Create file:
migrations/NNNN_description.sql - Write SQL (use
IF NOT EXISTSfor safety) - Test:
bash scripts/init-db.sh - Commit with migration
- Unit tests: For business logic
- Integration tests: For API endpoints
- E2E tests: For full workflows
Write tests that:
- Are fast and isolated
- Have clear assertions
- Cover edge cases
- Use descriptive names
- Code comments: Explain why, not what
- API docs: Update
API_DOCUMENTATION.md - Deployment: Update
DEPLOYMENT.md - README: Keep it current
- 🐛 Bugs: GitHub Issues
- 💬 Discussions: GitHub Discussions
- 📧 Email: dev@openpr.dev
By contributing, you agree that your contributions will be licensed under the MIT License.
Happy coding! 🚀