Contributing to DeepWikiOpen
Thank you for your interest in contributing to DeepWikiOpen! Weβre excited to have you join our community. This guide will help you get started with contributing to our project.π€ Code of Conduct
We are committed to providing a welcoming and inclusive environment for all contributors. By participating in this project, you agree to abide by our Code of Conduct:Our Pledge
We pledge to make participation in our project a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.Expected Behavior
- Use welcoming and inclusive language
- Be respectful of differing viewpoints and experiences
- Gracefully accept constructive criticism
- Focus on what is best for the community
- Show empathy towards other community members
Unacceptable Behavior
- Harassment, discrimination, or hate speech of any kind
- Personal attacks or insults
- Publishing othersβ private information without consent
- Any conduct that could reasonably be considered inappropriate
Enforcement
Violations of the Code of Conduct may result in temporary or permanent exclusion from the project. Please report any incidents to conduct@deepwikiopen.org.π How to Report Issues
We use GitHub Issues to track bugs, feature requests, and other project-related discussions.Before Reporting an Issue
- Search existing issues to avoid duplicates
- Check the documentation to ensure itβs not a known limitation
- Try the latest version to see if the issue has been fixed
Creating a Bug Report
When reporting a bug, please include:π‘ Feature Request Process
We love hearing your ideas for improving DeepWikiOpen!Submitting a Feature Request
- Check existing requests in Issues and Discussions
- Create a new issue with the βfeature requestβ label
- Provide detailed information:
- Clear description of the feature
- Use cases and benefits
- Potential implementation approach
- Any relevant examples or mockups
Feature Request Template
π Development Setup
Follow these steps to set up your development environment:Prerequisites
- Node.js 18.0 or higher
- npm or yarn package manager
- Git
- A code editor (we recommend VS Code)
Setup Instructions
Environment Configuration
Create a.env.local
file in the root directory:
π Code Style Guidelines
We maintain consistent code style to ensure readability and maintainability.General Guidelines
- Use TypeScript for all new code
- Follow ESLint and Prettier configurations
- Write self-documenting code with clear variable and function names
- Keep functions small and focused (single responsibility)
- Use meaningful commit messages following conventional commits
TypeScript Style
React/Component Style
Running Code Quality Checks
π§ͺ Testing Requirements
All contributions must include appropriate tests.Test Categories
- Unit Tests - Test individual functions and components
- Integration Tests - Test component interactions
- End-to-End Tests - Test complete user workflows
Writing Tests
Running Tests
Test Coverage Requirements
- Maintain minimum 80% code coverage
- All new features must include tests
- Bug fixes should include regression tests
π Documentation Standards
Good documentation is crucial for project success.Documentation Types
- Code Comments - Explain complex logic
- API Documentation - Document all public APIs
- User Guides - Help users understand features
- Developer Guides - Help contributors understand the codebase
Documentation Style
MDX Documentation
When writing MDX documentation:- Use clear, concise language
- Include code examples
- Add visual aids when helpful
- Structure content with proper headings
- Include a table of contents for long documents
π Pull Request Process
Before Creating a PR
- Fork the repository and create a feature branch
- Make your changes following our guidelines
- Write/update tests for your changes
- Update documentation as needed
- Run all checks locally:
Creating a Pull Request
- Push your branch to your fork
- Create a PR from your fork to our main branch
- Fill out the PR template completely:
PR Review Process
- Automated checks run on all PRs
- Code review by maintainers
- Address feedback promptly
- Approval and merge by maintainers
Tips for Getting Your PR Merged
- Keep PRs focused and small
- Write clear commit messages
- Respond to feedback constructively
- Be patient and respectful
- Update your PR if merge conflicts arise
π¬ Community Channels
Join our community to get help, share ideas, and connect with other contributors:Official Channels
- GitHub Discussions - General discussions and Q&A
- Discord Server - Join our Discord
- Twitter/X - @deepwikiopen
- Blog - blog.deepwikiopen.org
Community Guidelines
- Be helpful and supportive
- Share knowledge freely
- Respect different skill levels
- Keep discussions on-topic
- Report inappropriate behavior
Getting Help
- Documentation - Start with our docs
- FAQ - Check frequently asked questions
- Discord #help - Ask the community
- GitHub Discussions - For deeper technical discussions
π Recognition and Credits
We believe in recognizing all contributions to our project!Types of Contributions We Recognize
- Code contributions - Features, bug fixes, improvements
- Documentation - Guides, API docs, examples
- Design - UI/UX improvements, graphics
- Testing - Test cases, bug reports
- Community - Helping others, organizing events
- Translations - Localizing content
How We Recognize Contributors
- Contributors File - All contributors listed in CONTRIBUTORS.md
- Release Notes - Contributors mentioned in releases
- Website Credits - Featured on our website
- Contributor Badge - Special Discord role
- Swag - Top contributors receive DeepWikiOpen swag
Becoming a Core Contributor
Consistent, high-quality contributions may lead to:- Write access to the repository
- Invitation to maintainer meetings
- Decision-making in project direction
- Mentoring new contributors