Roo-Code/CONTRIBUTING.md
Mark Percival c99e8e8cb7
Chore: Add issue/PR template, CoC and Contributing guide (#774)
- Added issue and PR templates
- Improved issue chooser
- Added Code of Conduct and Contributing guide
  - Includes contributor agreement to Apache 2.0
2024-12-21 20:14:45 -08:00

69 lines
3.4 KiB
Markdown

# 🤖 Contributing to Cline
Welcome, human! We're thrilled you're interested in contributing to Cline. Whether you're fixing a bug, adding a feature, or improving our docs, every contribution makes Cline smarter!
## ✌️ Being Part of the Community
We have an awesome, diverse, and inclusive community of humans (and friendly AI assistants). To keep our community vibrant and welcoming, all members must adhere to our [Code of Conduct](CODE_OF_CONDUCT.md).
## 🐛 Reporting Bugs or Issues
Bug reports help make Cline better for everyone! Before creating a new issue, please [search existing ones](https://github.com/cline/cline/issues) to avoid duplicates. When you're ready to report a bug, head over to our [issues page](https://github.com/cline/cline/issues/new/choose) where you'll find a template to help you with filling out the relevant information.
<blockquote class='warning-note'>
🔐 <b>Important:</b> If you discover a security vulnerability, please use the <a href="https://github.com/cline/cline/security/advisories/new">Github security tool to report it privately</a>.
</blockquote>
## 🎯 Deciding What to Work On
See something that could be improved? Feel free to create a pull request directly! Whether it's fixing a typo or adding a cool new AI feature, we love surprises (the good kind, not the "undefined is not a function" kind).
If you're planning to work on a bigger feature, please create an issue first so we can discuss whether it aligns with Cline's vision.
## 💻 Writing and Submitting Code
Anyone can contribute code to Cline, but we ask that you follow these guidelines to ensure your contributions can be smoothly integrated:
1. **Keep Pull Requests Focused**
- Limit PRs to a single feature or bug fix
- Split larger changes into smaller, related PRs
- Try and limit the PR to a single commit
2. **Code Quality**
- Run `npm run lint` to ensure code follows our style guidelines
- Run `npm run format` to format your code with Prettier
- Address any ESLint warnings or errors before submitting
- Follow TypeScript best practices and maintain type safety
3. **Testing**
- Add tests for new features
- Run `npm test` to ensure all tests pass
- Update existing tests if your changes affect them
- Include both unit tests and integration tests where appropriate
4. **Documentation**
- Update documentation for any changed functionality
- Update the README if your changes affect usage or setup
5. **Commit Guidelines**
- Write clear, descriptive commit messages
- Use conventional commit format (e.g., "feat:", "fix:", "docs:")
- Reference relevant issues in commits using #issue-number
6. **Before Submitting**
- Rebase your branch on the latest main
- Ensure your branch builds successfully
- Double-check all tests are passing
- Review your changes for any debugging code or console logs
7. **Pull Request Description**
- Clearly describe what your changes do
- Include steps to test the changes
- List any breaking changes
- Add screenshots for UI changes
## Contribution Agreement
By submitting a pull request, you agree that your contributions will be licensed under the same license as the project ([Apache 2.0](LICENSE)).
Remember: Contributing to Cline isn't just about writing code - it's about being part of a community that's shaping the future of AI-assisted development. Let's build something amazing together! 🚀