sllh/composer-lint
Composer plugin that extends composer validate with extra linting rules for composer.json. Installs globally or per project, auto-enables on install, and can be configured via COMPOSER_HOME/config.json.
composer.json formats (e.g., ^2.0 over ~2.0) to reduce runtime dependency conflicts in Laravel applications, aligning with SemVer best practices.composer.json reviews, freeing engineers to focus on feature development. Integrates with Laravel’s CI/CD (e.g., GitHub Actions) to fail builds early on misconfigurations.php:^8.1).library vs. project).minimum-stability flags in production.composer-normalize).composer.json).config/app.php against composer.json PHP versions).Adopt if:
composer.json for consistency (e.g., version formats, PHP requirements).composer.json rules.composer.json validation (e.g., no composer validate in pre-merge checks).Look elsewhere if:
composer-normalize.validate or composer-require-checker.composer.json is highly customized (e.g., dynamic dependencies, non-standard types) → May require rule exclusions.*"This tool automates 90% of composer.json validation—catching errors like missing PHP version constraints or invalid version formats before they reach production. For a team of 10 developers, it could save 2–5 hours/week in manual reviews and reduce dependency-related bugs by 30%.
*"Problem: Composer’s default validate misses critical misconfigurations (e.g., ~2.0 syntax, unstated PHP requirements), leading to runtime errors in Laravel apps.
Solution: composer-lint adds 5 key checks with zero setup:
composer.json PHP requirements match Laravel’s config/app.php.~2.0 → ^2.0 (SemVer compliance).library/project types for multi-repo setups.minimum-stability in production (except for projects).composer validate --strict.How to Start:
composer require sllh/composer-lint --dev
~/.config/composer/config.json:
{
"config": {
"sllh-composer-lint": {
"php": true,
"version-constraints": true,
"minimum-stability": false // Disable for dev deps
}
}
}
- name: Lint composer.json
run: composer validate --strict
Tradeoffs:
composer-normalize for advanced cases.Next Steps: Let’s test it on [Laravel E-Commerce] and compare to our current manual checks. If it catches >50% of past composer.json issues, we’ll expand to all repos."*
*"This tool reduces supply-chain risk by:
~1.0 → 2.0 surprises).composer audit and roave/security-advisories."*How can I help you explore Laravel packages today?