Türkçe sürüm: CONTRIBUTING.tr.md
Thank you for your interest in improving InitORM. This document covers the workflow that applies to every package under the InitORM organization.
All contributors are expected to follow the Code of Conduct.
InitORM is not a monorepo. The stack is published as four independent Composer packages, each with its own GitHub repository, releases, and tags:
QueryBuilder ─┐
├─► Database ─► ORM
DBAL ─────────┘
A breaking change in a lower-layer package ripples through every package above it. When your work crosses package boundaries:
- Land and tag the lowest layer first.
- Bump the
requireconstraint in the dependent package(s) before merging. - Open separate pull requests in each affected repository, and link them to one another in the description.
- PHP ≥ 8.0 with the
pdoextension - Composer ≥ 2.0
- A local clone of the relevant package repository (this is what you fork — not the
.githubrepo)
git clone https://github.com/InitORM/<Package>.git
cd <Package>
composer installOnly QueryBuilder currently ships a PHPUnit suite. Run it with:
php vendor/bin/phpunitIf you add functionality to a package that has no tests yet, please include a minimal PHPUnit setup that covers at least the new behavior.
- Follow PSR-12.
- Stay consistent with surrounding code; do not reformat untouched lines.
- Keep PHPDoc blocks on public APIs up to date — the
Facade\DBclass in Database relies on@method staticannotations to expose the builder surface.
- Branch from
master(or the relevantv1.xline if you are back-porting). - Keep commits focused; describe the why, not just the what.
- Reference issues with
Fixes #123orRefs #123when applicable. - Open the pull request against
master; fill in the PR template. - Wait for review. The maintainer (@muhammetsafak) reviews PRs personally; please be patient.
Use the Bug report issue form in the affected package. Always include:
- Package and version (
composer show initorm/<package>) - PHP version (
php -v) - A minimal reproduction (preferably runnable)
Do not open public issues for security vulnerabilities. Follow the disclosure process in SECURITY.md.
By contributing, you agree that your contributions will be licensed under the MIT License — the same license as the rest of the project.