Mago 1.13.0
This release adds a new no-inline linter rule, fixes a formatter idempotency bug with comments in ternary expressions, fixes missing type diagnostics for abstract methods, replaces the self_update dependency to unblock cargo install mago, and improves self-update error messages.
✨ Features
Linter
- New
no-inlinerule: Disallows inline content (text outside of<?phptags) in source files. Most modern PHP applications are source-code only and do not use PHP as a templating language. Inline content before<?php, after?>, or between PHP tags is typically unintentional and can cause issues such as unexpected output or "headers already sent" errors. This rule is disabled by default and is intended for codebases that do not use PHP templates (#1220)
🐛 Bug Fixes
Analyzer
- Missing type diagnostics for abstract methods: Fixed a bug where
missing-parameter-type,missing-return-type, and imprecise type diagnostics were not reported for abstract methods in classes and interfaces (#1223)
Formatter
- Comment reordering in ternary expressions: Fixed an idempotency bug where line comments between
?/:and their operands in ternary expressions were reordered and merged on each formatting pass, requiring up to 4 passes before stabilizing. Comments after?and:are now correctly preserved in their original order (#1221)
CLI
- Better self-update error messages: When a release does not include a binary for the current platform, the error message now lists the user's detected platform and the available assets, making it easier to diagnose the issue (#1218)
🏗️ Internal
- Replaced
self_updatecrate with custom updater module: Theself_updatecrate was pinned to a git ref, which blockedcargo publishandcargo install mago. It has been replaced with a minimal, purpose-built updater usingureq,self-replace, and direct archive handling - Fixed WASM playground cache: The playground now busts the WASM cache on every release, ensuring users always get the latest version (#1219)
💛 Sponsors
Mago is developed and maintained as an independent open-source project. A special thank you to all of our sponsors whose support makes continued development possible:
- @JetBrainsOfficial
- @jasonrm
- @vvvinceocam
- @HeySora
- @kambo-1st
- @TicketSwap
- @ace-of-aces
- @afilina
- @Zuruuh
- @yigitcukuren
- @M-arcus
- @sdrewergutland
- @innocenzi
- @godismyjudge95
- @tolik518
- @devnix
- @ddanielou
- @JacerOmri
Building and maintaining a tool like Mago takes a significant amount of time and effort. While we are incredibly grateful for the support we receive, it does not yet cover full-time development. If Mago is saving you time or improving your codebase, please consider supporting its development through GitHub Sponsors or an enterprise support contract with Carthage Software.
🙏 Thank You
Issue Reporters
Thank you to everyone who reported issues and requested features that shaped this release:
Full Changelog: 1.12.1...1.13.0