This project adheres to the Contributor Covenant Code of Conduct. By participating, you are expected to uphold this code.
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature - Make your changes
- Write tests for new functionality
- Submit a pull request
- Use TypeScript strict mode
- Follow ESLint configuration
- Format code with Prettier
- Use meaningful variable names
- Add JSDoc comments for functions
- Follow Google Java Style Guide
- Use meaningful variable names
- Add JavaDoc comments for public methods
- Keep methods focused and small
- Use dependency injection
<type>(<scope>): <subject>
<body>
<footer>
Types:
feat: New featurefix: Bug fixdocs: Documentationstyle: Code style changesrefactor: Code refactoringperf: Performance improvementstest: Test additions/changeschore: Build/tooling changes
Example:
feat(editor): add real-time syntax highlighting
Implement Prism.js integration for syntax highlighting
in the code editor with support for multiple languages.
Closes #123
main (production)
├── develop (staging)
│ ├── feature/user-authentication
│ ├── feature/real-time-collab
│ ├── bugfix/editor-sync
│ └── ...
- Unit tests for components (Vitest)
- Integration tests for features (React Testing Library)
- Minimum 80% code coverage
npm run test:coverage- Unit tests for services
- Integration tests with Testcontainers
- Database tests
mvn test- Update Dependencies: Run
npm installormvn clean install - Write Tests: All new code must have tests
- Run Linting:
npm run lintormvn checkstyle:check - Update Documentation: Update relevant docs
- Create PR: Link to related issues
- Address Feedback: Respond to review comments
- Code follows style guidelines
- Tests written and passing
- No breaking changes
- Documentation updated
- Commit messages follow guidelines
- No merge conflicts
/**
* Fetches code snippets from the server
* @param limit - Maximum number of snippets to return
* @param offset - Number of snippets to skip
* @returns Promise resolving to array of code snippets
*/
function fetchSnippets(limit: number, offset: number): Promise<CodeSnippet[]> {
// implementation
}Update relevant sections when:
- Adding new features
- Changing setup process
- Modifying architecture
- Updating dependencies
- Check if feature already exists in discussions/issues
- Create a detailed feature request issue
- Wait for feedback from maintainers
- Create a design document (if complex)
- Implement the feature
- Submit PR with reference to the issue
When implementing new features, consider:
- Performance: Will this impact load times or responsiveness?
- Scalability: Can this scale with user growth?
- Security: Are there security implications?
- Accessibility: Is this accessible to all users?
- Mobile: Does this work on mobile devices?
- Testing: How will this be tested?
## Description
Brief description of the bug
## Steps to Reproduce
1. Do this
2. Then this
3. Finally this
## Expected Behavior
What should happen
## Actual Behavior
What actually happens
## Screenshots
If applicable, add screenshots
## Environment
- OS: [e.g., Windows 10]
- Browser: [e.g., Chrome 120]
- Node Version: [e.g., 20.10.0]
- Java Version: [e.g., 21]
## Additional Context
Any additional context- Keep bundle size under 500KB
- Lazy load components when possible
- Use React.memo for expensive components
- Optimize database queries
- Debounce rapid events
- Use indexed queries
- Implement pagination
- Use connection pooling
- Monitor query performance
- Implement caching where appropriate
- Input Validation: Validate all user inputs
- SQL Injection: Use parameterized queries
- XSS Prevention: Sanitize user input
- CSRF Protection: Implement CSRF tokens
- Authentication: Use JWT with secure storage
- Rate Limiting: Prevent abuse
- HTTPS: Use HTTPS in production
- Dependencies: Keep dependencies updated
- Update version in package.json and pom.xml
- Update CHANGELOG.md
- Create release branch
- Run full test suite
- Build production artifacts
- Create GitHub release
- Tag release
- Merge back to main
- Check existing documentation
- Review similar implementations
- Ask in discussion forums
- Create an issue with the question tag
Thank you for contributing! 🎉