- CONTRIBUTING.md - Contribution guidelines - CODE_OF_CONDUCT.md - Contributor Covenant v2.1 - SECURITY.md - Security policy - Issue templates (bug report, feature request) - Pull request template
3.1 KiB
3.1 KiB
Contributing to QQQ
Thank you for your interest in contributing to the QQQ framework! This document provides guidelines for contributing to any repository in the QRun-IO organization.
Getting Started
- Fork the repository you want to contribute to
- Clone your fork locally
- Create a feature branch from
main(ordevelopfor qqq-core) - Make your changes following our coding conventions
- Submit a pull request
Development Setup
Java Projects (qqq, qbit-*)
# Requirements
- Java 21 LTS
- Maven 3.9+
# Build and test
mvn clean verify
Frontend Projects (qqq-frontend-*)
# Requirements
- Node.js 18+ LTS
- npm 9+
# Install and test
npm ci
npm test
npm run build
Branch Naming
Use the following prefixes:
feature/- New featuresfix/- Bug fixesdocs/- Documentation changeschore/- Maintenance tasks
Example: feature/add-composite-key-support
Commit Messages
We follow Conventional Commits:
<type>(<scope>): <description>
[optional body]
Types
feat- New featurefix- Bug fixdocs- Documentationstyle- Formatting (no code change)refactor- Code restructuringperf- Performance improvementtest- Adding testschore- Maintenance
Examples
feat(entity): add support for composite primary keys
fix(dashboard): resolve null pointer on empty query
chore(deps): upgrade Spring Boot to 3.2.0
Pull Request Process
- Update documentation if your change affects public APIs
- Add tests for new functionality
- Ensure CI passes - all checks must be green
- Request review from a maintainer
- Address feedback promptly
PR Title Format
Use the same format as commit messages:
feat(entity): add composite key support
PR Description
Include:
- Summary of changes
- Related issue numbers (e.g., "Fixes #123")
- Testing performed
- Breaking changes (if any)
Code Style
Java
- 4 spaces indentation
- 120 character line limit
- Follow existing patterns in the codebase
- Use meaningful variable names
TypeScript/JavaScript
- 2 spaces indentation
- Single quotes for strings
- Semicolons required
Testing
- Write tests for new functionality
- Maintain or improve code coverage
- Use descriptive test names:
methodName_condition_expectedResult
Reporting Issues
When reporting bugs:
- Search existing issues first
- Use the bug report template
- Include steps to reproduce
- Provide environment details
When requesting features:
- Describe the use case
- Explain expected behavior
- Consider implementation approaches
Code of Conduct
Please read and follow our Code of Conduct.
Questions?
- Open a Discussion for questions
- Check existing documentation in each repository
- Review the QQQ Wiki for framework docs
License
By contributing, you agree that your contributions will be licensed under the same license as the project you're contributing to.
Thank you for contributing to QQQ!