github carthage-software/mago 1.0.0-beta.13
Mago 1.0.0-beta.13

8 hours ago

Mago 1.0.0-beta.13

This is a massive release packed with a major documentation expansion, a major CLI user experience overhaul with integrated pager support, and a raft of powerful new analysis checks and correctness fixes.

This release wouldn't have been possible without our amazing community. A huge thank you to @Bleksak, @BackEndTea, and @z4nder for their significant contributions!

✨ Major Documentation Expansion

The documentation site has received a major overhaul to improve its structure and cover many previously undocumented features. Key changes include:

  • New "Fundamentals" Section: A new top-level section has been created to house cross-cutting concepts like the CLI, issue suppression, and the new baseline feature.
  • New Pages: Added comprehensive guides for the command-line interface, the Baseline Feature, Suppressing Issues, Pager Support, and Environment Variables.
  • New FAQ Page: A detailed FAQ page has been added to answer common questions about the project's name, roadmap, and philosophy.
  • General Improvements: The entire site has been reorganized with an improved sidebar structure, updated links, and clearer content.

🚀 CLI & Pager Overhaul

The command-line experience has been significantly improved to be more powerful and ergonomic.

  • New Pager Support: Mago now has built-in, configurable pager support for long outputs! Enable it with --pager or use-pager = true in your mago.toml. It intelligently activates only for interactive terminals and supports the standard PAGER environment variable.
  • Global Color Control: The --no-color flag is now a global option that disables color for all output.
  • --diff Alias: The --dry-run flag has been aliased to the more intuitive --diff.
  • New mago-pager Crate: We've replaced the unmaintained external pager dependency with our own robust mago-pager crate, which correctly handles exit codes and is fully cross-platform.

🕵️ Analyzer Improvements

The analyzer has received a host of new features and correctness fixes, making it more powerful and reliable.

  • New: Missing Return Path Analysis (#403): Mago can now detect when a function has code paths that do not end in a return statement, which can lead to bugs when a return value is expected.
  • Improved Type Inference:
    • The analyzer can now correctly infer the resulting type when array_column is used on an array of objects. (#408)
    • Type reconciliation for mixed types with booleans and floats has been corrected.
  • Correctness Fixes:
    • The type of clone $this is now correctly recognized when used inside a trait. (#416)
    • The \count() function is now correctly resolved when used with a leading backslash. (#418)
    • Number-to-string conversions are now handled by the highly optimized itoa and ryu crates, fixing potential panics and improving performance.
  • Improved Baseline Generation (#399, #383): The baseline feature is now more robust. It no longer silently skips issues that are missing a primary error location and will warn the user instead.

🤝 New Contributors


Closed Issues


Full Changelog: 1.0.0-beta.12...1.0.0-beta.13

Don't miss a new mago release

NewReleases is sending notifications on new releases.