Thank you for considering contributing to PHP Quality Tools!
This project follows the Contributor Covenant Code of Conduct. By participating, you are expected to uphold it. Please report unacceptable behavior to hectorfranco@nowo.tech.
- Maintainer
- Development Setup
- Pull Request Process
- Coding Standards
- Running Tests
- Adding Framework Support
- Version Compatibility
- [1.1.0] - 2024-12-15
- Reporting Issues
- Contact
This project is maintained by Héctor Franco Aceituno at Nowo.tech.
-
Clone the repository:
git clone https://github.com/nowo-tech/PhpQualityTools.git cd php-quality-tools -
Start the Docker container:
make up -
Install dependencies:
make install -
Run tests:
make test
-
Clone the repository:
git clone https://github.com/nowo-tech/PhpQualityTools.git cd php-quality-tools -
Install dependencies:
composer install -
Run tests:
composer test
- Fork the repository
- Create a feature branch from
develop:git checkout develop git pull origin develop git checkout -b feature/amazing-feature - Make your changes
- Run tests and code style checks:
make qa # or without Docker: composer qa - Commit your changes following Conventional Commits:
git commit -m 'feat(scope): add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request to
develop(notmain)
- Follow PSR-12 coding style
- Add tests for new features
- Update documentation as needed
- Keep commits atomic and descriptive
- Update docs/CHANGELOG.md with compatibility information
# Run all tests
make test
# Run tests with coverage
make test-coverage
# Check code style
make cs-check
# Fix code style
make cs-fix
# Run all QA checks
make qa
# Run all tests
composer test
# Run tests with coverage
composer test-coverage
# Check code style
composer cs-check
# Fix code style
composer cs-fix
When adding support for a new framework:
- Create framework directory:
config/{framework}/ - Add framework detection in
Plugin::FRAMEWORK_PACKAGES - Create framework-specific config files
- Add tests for framework detection
- Update README.md with framework compatibility
- Update docs/CHANGELOG.md with PHP and framework versions
When releasing a new version, always document:
- PHP versions supported
- Framework versions supported (Symfony, Laravel, etc.)
- Breaking changes (if any)
Example in CHANGELOG:
## [1.1.0] - 2024-12-15
### Compatibility
- **PHP**: >= 8.1
- **Symfony**: 6.0 - 7.4
- **Laravel**: 9.0 - 11.0
When reporting issues, please include:
- PHP version
- Framework and version (Symfony, Laravel, etc.)
- Composer version
- Operating system
- Steps to reproduce
- Expected vs actual behavior
For questions or suggestions, you can reach out to:
- GitHub: @HecFranco
- Organization: nowo-tech
Do not add Co-authored-by: Cursor or cursoragent@cursor.com trailers to commit messages.
make setup-hooks
make check-no-cursor-coauthor
make setup-hooks installs .githooks/commit-msg (or sets core.hooksPath to .githooks). Run it once per clone before your first commit.
If CI fails because trailers are already on the remote, see GITHUB_CI.md (REQ-GIT-001) and run make strip-cursor-coauthor-from-history before git push --force-with-lease.