Files
.github/CONTRIBUTING.md
james.maes 1bd63d26ba feat: Add community health files and templates
- 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
2025-12-24 13:46:00 -06:00

149 lines
3.1 KiB
Markdown

# 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
1. **Fork the repository** you want to contribute to
2. **Clone your fork** locally
3. **Create a feature branch** from `main` (or `develop` for qqq-core)
4. **Make your changes** following our coding conventions
5. **Submit a pull request**
## Development Setup
### Java Projects (qqq, qbit-*)
```bash
# Requirements
- Java 21 LTS
- Maven 3.9+
# Build and test
mvn clean verify
```
### Frontend Projects (qqq-frontend-*)
```bash
# 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 features
- `fix/` - Bug fixes
- `docs/` - Documentation changes
- `chore/` - Maintenance tasks
Example: `feature/add-composite-key-support`
## Commit Messages
We follow [Conventional Commits](https://www.conventionalcommits.org/):
```
<type>(<scope>): <description>
[optional body]
```
### Types
- `feat` - New feature
- `fix` - Bug fix
- `docs` - Documentation
- `style` - Formatting (no code change)
- `refactor` - Code restructuring
- `perf` - Performance improvement
- `test` - Adding tests
- `chore` - 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
1. **Update documentation** if your change affects public APIs
2. **Add tests** for new functionality
3. **Ensure CI passes** - all checks must be green
4. **Request review** from a maintainer
5. **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:
1. Search existing issues first
2. Use the bug report template
3. Include steps to reproduce
4. Provide environment details
When requesting features:
1. Describe the use case
2. Explain expected behavior
3. Consider implementation approaches
## Code of Conduct
Please read and follow our [Code of Conduct](CODE_OF_CONDUCT.md).
## Questions?
- Open a [Discussion](https://github.com/orgs/QRun-IO/discussions) for questions
- Check existing documentation in each repository
- Review the [QQQ Wiki](https://github.com/QRun-IO/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!