Skip to content

Commit 786fa03

Browse files
docs: Add contributing guide to sidebar navigation (#175)
1 parent fa9f511 commit 786fa03

File tree

2 files changed

+206
-0
lines changed

2 files changed

+206
-0
lines changed

docs/contributing.md

Lines changed: 205 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,205 @@
1+
---
2+
sidebar_label: 'Contributing'
3+
---
4+
5+
# Contributing to Roo Code
6+
7+
Roo Code is a community-driven project, and we highly value every contribution. To ensure a smooth and effective process for everyone, **we operate on an "[Issue-First](#2-key-principle-issue-first-approach)" basis.** This means all work should be linked to a GitHub Issue *before* a Pull Request is submitted (see our [PR Policy](#pull-request-pr-policy) for details). Please read this guide carefully to understand how to contribute.
8+
This guide outlines how to contribute to Roo Code, whether you're fixing bugs, adding features, or improving documentation.
9+
10+
## I. Before You Contribute
11+
12+
First, familiarize yourself with our community standards and project direction.
13+
14+
### 1. Code of Conduct
15+
16+
All contributors must adhere to our [Code of Conduct](https://github.com/RooVetGit/Roo-Code/blob/main/CODE_OF_CONDUCT.md). Please read it before contributing.
17+
18+
### 2. Understand the Project Roadmap
19+
20+
Roo Code has a clear development roadmap that guides our priorities and future direction. Understanding our roadmap can help you:
21+
22+
- Align your contributions with project goals
23+
- Identify areas where your expertise would be most valuable
24+
- Understand the context behind certain design decisions
25+
- Find inspiration for new features that support our vision
26+
27+
Our current roadmap focuses on six key pillars:
28+
29+
#### Provider Support
30+
We aim to support as many providers well as we can:
31+
32+
- More versatile "OpenAI Compatible" support
33+
- xAI, Microsoft Azure AI, Alibaba Cloud Qwen, IBM Watsonx, Together AI, DeepInfra, Fireworks AI, Cohere, Perplexity AI, FriendliAI, Replicate
34+
- Enhanced support for Ollama and LM Studio
35+
36+
#### Model Support
37+
We want Roo to work as well on as many models as possible, including local models:
38+
39+
- Local model support through custom system prompting and workflows
40+
- Benchmarking evals and test cases
41+
42+
#### System Support
43+
We want Roo to run well on everyone's computer:
44+
45+
- Cross platform terminal integration
46+
- Strong and consistent support for Mac, Windows, and Linux
47+
48+
#### Documentation
49+
We want comprehensive, accessible documentation for all users and contributors:
50+
51+
- Expanded user guides and tutorials
52+
- Clear API documentation
53+
- Better contributor guidance
54+
- Multilingual documentation resources
55+
- Interactive examples and code samples
56+
57+
#### Stability
58+
We want to significantly decrease the number of bugs and increase automated testing:
59+
60+
- Debug logging switch
61+
- "Machine/Task Information" copy button for sending in with bug/support requests
62+
63+
#### Internationalization
64+
We want Roo to speak everyone's language:
65+
66+
- 我们希望 Roo Code 说每个人的语言
67+
- Queremos que Roo Code hable el idioma de todos
68+
- हम चाहते हैं कि Roo Code हर किसी की भाषा बोले
69+
- نريد أن يتحدث Roo Code لغة الجميع
70+
71+
We especially welcome contributions that advance our roadmap goals. If you're working on something that aligns with these pillars, please mention it in your PR description.
72+
73+
### 3. Join the Roo Code Community
74+
75+
Connecting with the Roo Code community is a great way to get started:
76+
77+
- **Primary Method**:
78+
1. Join the [Roo Code Discord community](https://discord.gg/roocode).
79+
2. Once joined, send a direct message (DM) to **Hannes Rudolph** (Discord username: `hrudolph`) to discuss your interest and get guidance.
80+
- **Alternative for Experienced Contributors**: If you're comfortable with an issue-first approach, you can engage directly through GitHub by following the Kanban board and communicating via issues and pull requests.
81+
82+
## II. Finding & Planning Your Contribution
83+
84+
Identify what you'd like to work on and how to approach it.
85+
86+
### 1. Types of Contributions
87+
88+
We welcome various contributions:
89+
90+
- **Bug Fixes**: Addressing issues in existing code.
91+
- **New Features**: Adding new functionality.
92+
- **Documentation**: Improving guides, examples, or fixing typos.
93+
94+
### 2. Key Principle: Issue-First Approach
95+
96+
**All contributions must start with a GitHub Issue.** This is a critical step to ensure alignment and prevent wasted effort.
97+
98+
- **Find or Create an Issue**:
99+
- Before starting any work, search [GitHub Issues](https://github.com/RooVetGit/Roo-Code/issues) to see if an issue for your intended contribution already exists.
100+
- If it exists and is unassigned, comment on the issue to express your interest in taking it on. A maintainer will then assign it to you.
101+
- If no issue exists, create a new one, detailing the bug or feature. For new features, await approval from a maintainer (especially @hannesrudolph) before proceeding.
102+
- **Claiming and Assignment**:
103+
- Clearly state your intention to work on an issue by commenting on it.
104+
- Wait for a maintainer to officially assign the issue to you in GitHub. This prevents multiple people from working on the same thing.
105+
- **Consequences of Not Following**:
106+
- Pull Requests (PRs) submitted without a corresponding, pre-approved, and assigned issue may be closed without a full review. This policy is in place to ensure contributions align with project priorities and to respect the time of both contributors and maintainers.
107+
108+
This approach helps us track work, ensure changes are desired, and coordinate efforts effectively.
109+
110+
### 3. Deciding What to Work On
111+
112+
- **Good First Issues**: Check the "Issue [Unassigned]" section of our [Roo Code Issues](https://github.com/orgs/RooVetGit/projects/1) GitHub Project.
113+
- **Documentation**: Contribute to our [docs](https://docs.roocode.com/) via the "Edit this page" link or the [Roo Code Docs repository](https://github.com/RooVetGit/Roo-Code-Docs).
114+
- **Proposing New Features**: For significant features, create a [feature request](https://github.com/RooVetGit/Roo-Code/discussions/categories/feature-requests?discussions_q=is%3Aopen+category%3A%22Feature+Requests%22+sort%3Atop) for discussion before implementation. This aligns with our **Issue-First Approach** detailed in the PR Policy.
115+
116+
### 3. Reporting Bugs or Issues
117+
118+
If you find a bug:
119+
120+
1. **Search Existing Issues**: Check [GitHub Issues](https://github.com/RooVetGit/Roo-Code/issues) for duplicates.
121+
2. **Create a New Issue**: If unique, use the template on our [issues page](https://github.com/RooVetGit/Roo-Code/issues/new/choose).
122+
123+
> 🔐 **Security Vulnerabilities**: Report privately using GitHub's security tool.
124+
125+
## III. Development & Submission Process
126+
127+
Follow these steps for coding and submitting your work.
128+
129+
### 1. Development Setup
130+
131+
1. **Clone**: `git clone https://github.com/RooVetGit/Roo-Code.git`
132+
2. **Install Dependencies**: `npm run install:all`
133+
3. **Run Webview (Dev Mode)**: `npm run dev` (for Vite/React app with HMR)
134+
4. **Debug Extension**: Press `F5` in VS Code.
135+
136+
Webview changes are immediate; extension changes require an extension host restart.
137+
Alternatively, build and install a `.vsix`:
138+
```sh
139+
npm run build
140+
code --install-extension bin/roo-cline-.vsix
141+
```
142+
143+
### 2. Writing Code Guidelines
144+
145+
- **Focused PRs**: One feature/bug fix per PR.
146+
- **Code Quality**: Pass CI (linting, formatting). Address ESLint issues. Respond to Ellipsis feedback. Follow TypeScript best practices.
147+
- **Testing**: Add tests for new features. Run `npm test`. Update existing tests.
148+
- **Commit Messages**: Clear, descriptive, reference issues (`#issue-number`).
149+
- **Pre-Submission Checklist**: Rebase on `main`, ensure build success, all tests pass, remove debug code.
150+
151+
### 3. Submitting Code: Pull Request (PR) Process
152+
153+
#### Draft Pull Requests
154+
155+
Use Draft PRs for work that is not yet ready for full review but for which you'd like to:
156+
- Run automated checks (CI).
157+
- Get early feedback from maintainers or other contributors.
158+
- Signal that the work is in progress.
159+
160+
Mark a PR as "Ready for Review" only when all checks are passing and you believe it meets the criteria outlined in the "Writing Code Guidelines" and "Pull Request Description" sections.
161+
162+
#### Pull Request Description
163+
164+
Your PR description must be comprehensive:
165+
- Clearly describe the changes made and their purpose.
166+
- Include detailed steps to test the changes.
167+
- List any breaking changes.
168+
- **For UI changes, provide clear before-and-after screenshots or videos.**
169+
- **Crucially, state whether your PR necessitates updates to user-facing documentation. If so, specify which documents or sections are affected.**
170+
171+
#### Pull Request (PR) Policy
172+
173+
##### Objective
174+
Maintain a clean, focused, and actionable PR backlog.
175+
176+
##### Issue-First Approach
177+
- **Required**: Before starting work, create or reference an existing, approved issue. (See "Key Principle: Issue-First Approach" under "II. Finding & Planning Your Contribution" for full details).
178+
- **Approval**: Issues, especially for new features or significant changes, must be reviewed and approved by maintainers (particularly @hannesrudolph) *before* coding begins.
179+
- **Reference**: PRs must explicitly reference these pre-approved issues.
180+
- **Consequences**: Failure to follow this process may result in your PR being closed without a full review.
181+
182+
##### Conditions for Open PRs
183+
- **Ready for Merge**: Passes tests, aligns with roadmap, approved, clear docs/comments, **includes clear before-and-after images or videos for any UI changes**, references an approved issue.
184+
- **To be Closed**: Unresolved issues (test failures, conflicts), misaligned with goals, stale (inactive >30 days).
185+
186+
##### Procedure
187+
1. **Issue Qualification**: @hannesrudolph reviews new and existing issues to ensure they align with the project and follow the "Issue-First Approach." This step helps qualify issues before they are considered for PR submission.
188+
2. **Initial PR Triage (Daily)**: Maintainers (Dev Team) conduct a quick daily review of incoming PRs to filter for urgency or critical issues.
189+
3. **Thorough PR Review (Weekly - Mondays)**: Maintainers (Dev Team) perform a more in-depth review of PRs to assess readiness, alignment with an approved issue, and overall quality.
190+
4. **Detailed Feedback & Iteration**: Based on the thorough review, maintainers provide feedback (Approve, Request Changes, or Reject). Contributors are expected to respond to feedback and iterate as needed.
191+
5. **Decision Stage**: Approved PRs are merged. PRs with unresolvable issues or misalignment may be closed with a clear explanation.
192+
6. **Follow-up**: Authors of closed PRs are encouraged to open new ones if issues are resolved or project direction shifts.
193+
194+
##### Responsibilities
195+
- **Issue Qualification & Process Adherence (@hannesrudolph)**: Ensures all contributions adhere to the "Issue-First Approach" by reviewing and qualifying issues. Guides contributors on process.
196+
- **Maintainers (Dev Team)**: Conduct initial and thorough PR reviews, provide technical feedback, make approval/rejection decisions, and merge PRs.
197+
- **Contributors**: Ensure PRs are linked to an approved and assigned issue, meet quality guidelines, and respond promptly to feedback.
198+
199+
This policy ensures clarity and efficient integration.
200+
201+
## IV. Legal
202+
203+
### Contribution Agreement
204+
205+
By submitting a pull request, you agree that your contributions will be licensed under the [Apache 2.0 License](https://github.com/RooVetGit/Roo-Code/blob/main/LICENSE), the same as the project.

sidebars.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,7 @@ const sidebars: SidebarsConfig = {
129129
],
130130
},
131131
'tutorial-videos',
132+
'contributing',
132133
{
133134
type: 'category',
134135
label: 'Community',

0 commit comments

Comments
 (0)