Mago v0.11.0 Release Notes
✨ New Features
-
New Linter Rules
Added several best-practice and analysis rules to improve code quality:best-practices/no-else-clause
: Discourages the useelse
clause in anif
statement.best-practices/no-boolean-flag-parameter
: Flags boolean parameters that reduce readability.best-practices/no-boolean-literal-comparison
: Detects redundant boolean comparisons.best-practices/no-empty-catch-clause
: Warns about empty catch blocks.best-practices/dont-catch-error
: Warns against catching PHP's internalError
throwable.redundancy/redundant-file
: Identifies empty or redundant files.redundancy/redundant-mathematical-operation
: Finds unnecessary math operations.analysis/override-attribute
: Enforces use of#[\Override]
for overridden methods (with auto-fix support).maintainability/long-inheritance-chain
: Warns against deep inheritance hierarchies.analysis/parameter-name
: Flag parameter name change in overriden methods.
-
Linter Enhancements
- Added scope tracking to lint context for more accurate analysis.
- Improved reflection handling for interfaces and tests.
🐛 Bug Fixes
-
Parser & Reflection Fixes
- Fixed parsing of expression string parts.
- Corrected method reflection to use lowercase names consistently.
- Resolved interface reflection issues.
-
Static Call Handling
- Allowed static calls to constructors and non-static methods within the same class or child classes.
-
CLI Fixes
- Fixed broken
mago fix
command functionality.
- Fixed broken
📚 Documentation
- CI Recipes
Added example CI configurations to streamline integration with GitHub workflows @nhedger in #79
🔧 Internal Changes
-
Serialization Cleanup
Removed serialization logic frominterner
andproject
crates. -
Source Management
Stub source names now prefixed with@
for clearer identification.
🚨 Breaking Changes
-
Rust Edition Update
Migrated from Rust 2021 to Rust 2024 edition. Ensure your toolchain is compatible. -
Minimum Supported Rust Version (MSRV)
Updated MSRV to 1.85.0. Older Rust versions are no longer supported.
Enjoy the updates! 🚀
Full Changelog: 0.10.0...0.11.0