How to Contribute

ObjectQuel is actively developed and running in production. It's built and maintained by one person — so contributions are genuinely appreciated, not just tolerated. Every PR gets a personal review within 1-2 days. Requirements: PHP 8.2+ and Composer.

Repository Structure

ObjectQuel lives in a monorepo alongside Canvas and several supporting packages:

framework/
  packages/
    canvas/
    objectquel/
    dependency-injection/
    discover/
    signal-hub/
    ... and others

ObjectQuel depends on several of these packages, so changes to one may affect others.

Quick Start

# Fork https://github.com/quellabs/framework on GitHub
git clone https://github.com/YOUR-USERNAME/framework.git
cd framework
git remote add upstream https://github.com/quellabs/framework.git
composer install

Contribution Workflow

# Create a feature branch
git checkout -b feature/your-feature-name

# Make changes and update docs

# Run style checks
./vendor/bin/php-cs-fixer fix

# Commit and push
git add .
git commit -m "feat: your feature description"
git push origin feature/your-feature-name

# Open a PR at https://github.com/quellabs/framework/pulls

Not sure whether your idea fits? Open a GitHub Discussion first. A quick conversation saves everyone time.

Code Style

ObjectQuel follows PSR-12 with three deliberate modifications: tabs (not spaces), opening braces on same line, and strict types always declared. These are enforced automatically — just run the fixer before committing and you're done.

./vendor/bin/php-cs-fixer fix

Reporting Issues

Report bugs at github.com/quellabs/framework/issues

Helpful to include: expected vs actual behaviour, steps to reproduce, ObjectQuel version, PHP version, database engine, and any error output. The more specific, the faster it gets fixed.

Code Review

You'll get feedback within 1-2 days. If something needs changing, push new commits to the same branch and the PR updates automatically — no need to close and reopen. When you're happy with the changes, leave a comment and I'll re-review.

Versioning

ObjectQuel follows Semantic Versioning. Breaking changes are MAJOR, new backwards-compatible features are MINOR, bug fixes are PATCH. The main branch is always stable.