Appearance
Contributor Workflow
This document describes the GitHub-based contribution workflow for RustChat. For development setup, coding guidelines, and code quality requirements, see CONTRIBUTING.md.
Fork and Branch
- Fork the repository on GitHub
- Clone your fork:bash
git clone https://github.com/YOUR_USERNAME/rustchat.git cd rustchat - Create a feature branch from
main:bashgit checkout -b feat/your-feature-name
Commits
All commits must be signed off per the DCO.md:
bash
git commit -s -m "feat: add user search endpoint"Follow Conventional Commits:
feat:— New featurefix:— Bug fixdocs:— Documentation onlytest:— Testsrefactor:— Code change that neither fixes a bug nor adds a featurechore:— Maintenance tasks
Tests
Before opening a PR:
bash
# Backend
cd backend && cargo fmt --check && cargo clippy --all-targets --all-features -- -D warnings && cargo test --lib
# Frontend
cd frontend && npm ci --ignore-scripts && npm run apply:dependency-patches && npm run build && npm run test:unitPull Request
- Push your branch to your fork
- Open a pull request against
main - Fill in the PR template completely
- Ensure all CI checks pass
- Address review comments
- Maintain a clean commit history (rebase if requested)
Review Expectations
- Standard changes: 1 approval
- Architectural or compatibility changes: 2 approvals, including CODEOWNERS reviewers
- All checks must pass before merge
- No direct pushes to
main
Good First Issues
Look for issues labeled good-first-issue. These are:
- Small and well-defined
- Have clear acceptance criteria
- Do not touch risky behavior (auth, permissions, payment-like flows)
Getting Help
- Architecture questions: Architecture Guide
- Development setup: Development Guide
- Compatibility: Compatibility Scope
- General questions: GitHub Discussions