mediawiki/minus-x
MinusX scans your repo for files incorrectly marked executable on Unix. Executables must have the right MIME type or a shebang. Run minus-x check . to report issues and minus-x fix . to remove bad +x flags; supports ignore rules via .minus-x.json.
Architecture fit: MinusX is a standalone CLI utility with no framework dependencies, making it highly compatible with Laravel's PHP-based architecture. It operates at the filesystem level and integrates seamlessly into existing dev workflows without requiring changes to application code.
Integration feasibility: High feasibility via Composer (composer require mediawiki/minus-x --dev). Simple CLI commands (check/fix) can be added to Composer scripts, pre-commit hooks, or CI pipelines with minimal configuration.
Technical risk: Low code complexity but limited adoption (6 stars, 0 dependents) raises concerns about edge-case handling and long-term maintenance. GPL-3.0 license may require compliance checks for proprietary projects. Potential Windows compatibility issues due to Unix-centric permission handling.
Key questions: How does it handle Windows environments (e.g., Git Bash vs. WSL)? What are performance characteristics for large repos (>10k files)? Are there known issues with symlinks or special file types? Is the Gerrit-hosted codebase actively maintained despite low GitHub visibility?
Stack fit: Perfect fit for Laravel projects as a dev dependency. Composer integration aligns with Laravel’s tooling ecosystem, and the tool’s filesystem-focused nature complements Laravel’s directory structure (e.g., validating storage/, bootstrap/, or custom scripts).
Migration path: Add to composer.json dev dependencies, then configure in scripts section (e.g., "post-install-cmd": "minus-x check ."). For existing projects, create .minus-x.json to ignore legacy files/dirs (e.g., vendor/ is auto-ignored).
Compatibility: Works with all modern PHP versions (7.4+). Requires POSIX-compliant filesystems for accurate permission checks; Windows users must use WSL or Git Bash. Fully compatible with Laravel’s typical Unix-based deployment environments.
Sequencing: Run in pre-commit hooks (via husky or lint-staged) to catch issues early. In CI pipelines, execute before tests/deployments to ensure permission hygiene. Prioritize fix command in development environments and check in production pipelines.
Maintenance: Low overhead due to small codebase, but requires monitoring for updates via Composer. Wikimedia’s Gerrit hosting suggests institutional support, though low GitHub engagement may indicate slower issue resolution. Periodic audits of .minus-x.json rules needed as project structure evolves.
Support: Limited community support (0 dependents), so internal expertise or contributions to the repo may be required for complex issues. GPL-3.0 license mandates sharing modifications, which could complicate internal tooling forks.
Scaling: Handles typical Laravel project sizes efficiently, but performance degrades linearly with file count. For monorepos or large-scale deployments, validate runtime in staging environments. Auto-fix operations may require manual review for edge cases (e.g., intentionally executable non-shebang files).
Failure modes: CI failures during check could block deployments if misconfigured. False positives may occur for files with executable bits set for non-Unix reasons (e.g., cross-platform scripts). Mitigate via explicit .minus-x.json rules and CI error thresholds.
Ramp-up: Minimal learning curve—developers need only run CLI commands and understand basic JSON ignore rules. Documentation is concise and actionable, with
How can I help you explore Laravel packages today?