Skip to content

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Dec 19, 2025

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
carthage-software/mago ^1.0.1^1.2.1 age adoption passing confidence
phpstan/phpstan ^2.1.33^2.1.37 age adoption passing confidence
phpstan/phpstan-phpunit ^2.0.11^2.0.12 age adoption passing confidence
phpstan/phpstan-symfony ^2.0.9^2.0.12 age adoption passing confidence
phpunit/phpunit (source) ^11.5.46^11.5.49 age adoption passing confidence

Release Notes

carthage-software/mago (carthage-software/mago)

v1.2.1: Mago 1.2.1

Compare Source

🙈 Oops

Turns out releasing at 4 AM after a break isn't the best idea. Sorry about that!

🐛 Bug Fix

  • Static method closure types: Fixed incorrect return type inference for first-class callables on inherited static methods (e.g., Y::create(...) now correctly returns Y instead of the parent class X)

Full Changelog: carthage-software/mago@1.2.0...1.2.1

v1.2.0: Mago 1.2.0

Compare Source

First of all, I want to apologize for the delayed release — I've been on a break the past couple of weeks. Thank you all for your patience! 🙏

This release brings significant improvements to the analyzer, including unused code detection, better type inference, and numerous bug fixes addressing false positives reported by the community.

✨ Features

Analyzer
  • Unused code detection: Mago now detects unused private methods and properties (#​867, #​929)
  • Write-only property detection: Detect private properties that are written to but never read
  • Undefined type reference errors: Report errors when referencing classes, interfaces, enums, or type aliases that don't exist (#​891)
  • Symbol namespace tracking: Keep track of symbol namespaces for improved import validation
Linter
  • no-isset rule: New rule to prevent usage of the isset construct (#​924) by @​djschilling
  • Redundant import detection: Detect redundant same-namespace and root-namespace imports in no-redundant-use rule (#​921)
  • Auto-fixers for lowercase-type-hint and lowercase-keyword: New fixers for these linter rules (#​911) by @​dotdash
Configuration
  • Distribution config files: Add support for loading mago.dist.toml and mago.dist.json files (#​903) by @​Bleksak
Formatter
  • Inline abstract property hooks: New inline-abstract-property-hooks setting for PER-CS 4.10 compliant property hook formatting (#​919)

🐛 Bug Fixes

Analyzer
  • Nullsafe operator chain fix: Track nullsafe-origin null to prevent false positives in chained access (#​931)
  • Partial application symbol tracking: Track symbol references from closure creation ($foo->bar(...)) and partial function application ($foo->bar(?, ?)) to prevent false positive unused method errors
  • Namespace imports: Allow imports of symbol namespaces (#​933)
  • Magic method parent:: calls: Treat parent:: calls as instance calls for magic methods (#​916)
  • #[Override] for @method: Don't suggest #[Override] attribute for @method pseudo-methods (#​914)
  • Null coalesce with never RHS: Suppress false positive for possibly-undefined array index in null coalesce with never RHS (#​923)
  • String concatenation memory usage: Add threshold to stop exponential memory usage with complex string concatenations (#​908, #​909) by @​Noojuno
  • Inherited docblock narrowing: Narrow inherited docblock return types based on child's native type
Prelude (Type Stubs)
  • DatePeriod type parameters: Specify IteratorAggregate type parameters for DatePeriod (#​932)
  • strpos offset type: strpos supports negative offsets, replace int<0, max> with int (#​890) by @​Bleksak
Formatter
  • Property assignment alignment: Align property assignments with variable assignments (#​926)
Linter
  • CLI flags in no-insecure-comparison: Ignore CLI flags like --password in the rule (#​917)
CLI
  • NO_COLOR environment variable: Respect NO_COLOR env variable (#​922)
Documentation

🏗️ Internal

🙏 Thank You

Contributors

A huge thank you to everyone who contributed to this release:

Issue Reporters

Thank you to everyone who reported issues that were fixed in this release:

🚀 What's Next

More improvements and features coming soon! Stay tuned.

Full Changelog: carthage-software/mago@1.1.0...1.2.0

v1.1.0: Mago 1.1.0

Compare Source

Mago 1.1.0

This release includes a significant number of new features, bug fixes, and improvements across the formatter, analyzer, linter, and codex.

Note: This release includes a breaking change in the formatter's default behavior for heredoc indentation.

Breaking Changes

Formatter
  • Heredoc content is now indented by default. To restore the previous behavior, set indent-heredoc to false in your configuration.

Features

Formatter
  • Added formatter presets support for quick configuration (psr-12, per-cs, drupal, etc.) (#​839)
  • Added following-clause-on-newline option to place else, catch, and finally on a new line (#​860)
  • Added uppercase-literal-keyword option for uppercase TRUE, FALSE, NULL literals (Drupal style) (#​857)
  • Added empty-line-before-class-like-close setting for empty line before closing brace (#​855)
  • Added newline-after-class-like-opening-brace setting (#​853)
Analyzer
  • Added support for @mixin docblock annotations
  • Added docblock type mismatch detection for function parameters and return types
Linter
  • Added Pest-specific lint rules for better Pest PHP testing framework support
  • Added auto-fix for the explicit-nullable-param lint (#​847)
Guard
  • Added mode selection and ability to skip unconfigured guards

Bug Fixes

Formatter
  • Fixed kebab-case alias support for settings values
  • Fixed indentation in arrays when expression spans multiple lines (#​864)
Analyzer
  • Fixed method signature validation to compare against direct interface instead of grandparent interface (#​871)
  • Fixed type assertion propagation through null coalesce expressions ($x['foo'] ?? null)
  • Fixed invalid-extend reporting when a readonly class extends a non-readonly class (#​873)
  • Fixed static and $this type handling and expansion in template contexts
  • Fixed recursive template constraint inference
  • Fixed array_filter type narrowing to support first-class callables and string literals
  • Fixed readonly property reinitialization in clone for PHP 8.3+
  • Fixed incorrect type narrowing propagation in OR conditions
Codex
  • Fixed type alias resolution in member reference expansion (e.g., self::TypeAlias in @extends)
  • Fixed parameter type inheritance when method has partial docblock
  • Fixed asymmetric visibility handling for hooked properties
  • Fixed native return type metadata population
Orchestrator
  • Fixed analysis progress bar to use 4-byte emoji for better terminal compatibility (#​866)

Internal

  • Improved analyzer onboarding experience in CLI
  • Added Pest and Tempest to the init flow
  • Added support for non-empty-mixed type syntax
  • Added filename fallback for Tempest view detection in linter

New Contributors


Full Changelog: carthage-software/mago@1.0.3...1.1.0

v1.0.3: Mago 1.0.3

Compare Source

This release includes several bug fixes across the formatter, linter, analyzer, and prelude, along with new features.

As always, we'd love to hear from you! Please keep filing bug reports and feature requests - your feedback is what drives Mago forward.

Our team will be taking a well-deserved break over the holidays. Merry Christmas to those who celebrate, and happy holidays to everyone! We'll be back in full swing in the new year, but rest assured we'll still be keeping an eye out for any critical issues.

Bug Fixes

Formatter
  • Fix idempotency issue with match expressions containing trailing comments on conditions
  • Fix nullable union type formatting (e.g., null|array no longer causes formatting oscillation)
  • Fix call arguments breaking when containing wide binary expressions
  • Avoid early return inside wrap! macro to prevent node stack corruption
Linter
  • Avoid overlapping edits between prefer-arrow-function and prefer-static-closure rules
  • Fix prefer-anonymous-migration rule to correctly flag named migration classes
  • Strip leading backslash from use statement FQNs in no-redundant-use rule
Analyzer
  • Handle multiple docblocks before statements correctly (#​818)
  • Detect Closure::bind scope changes for protected member access analysis
Text Edit
  • Detect overlapping edits when insert and replace operations share the same start offset
Prelude
  • Mark getimagesizefromstring second parameter as optional

Features

Linter
  • Add new no-assign-in-argument rule to detect assignments in call arguments (#​821)
Analyzer
  • Detect Closure::bind scope changes, allowing accurate analysis of protected/private member access within rebound closures

Internal

  • Refactor formatter to use if let to fix unnecessary_unwrap warning (#​781)

New Contributors


Full Changelog: carthage-software/mago@1.0.2...1.0.3

v1.0.2: Mago 1.0.2

Compare Source

Mago 1.0.2

Bug Fixes

Formatter
  • Fixed idempotent formatting issues with comments inside binary operations (#​796)
  • Fixed idempotent formatting for comments inside nested parenthesized binary expressions (#​812)
  • Fixed idempotent formatting for trailing comments on if/elseif blocks (#​813)
  • Changed inline-empty-classlike-braces default to true per PER-CS specification
  • Relaxed binary inlining rules for improved formatting
Analyzer
  • Fixed dependent template constraint resolution in @extends validation
  • Fixed docblock array shapes support for closure parameters
  • array_map now correctly returns non-empty-array when given a non-empty-array (#​815)
Docblock
  • Fixed panic on multi-byte UTF-8 whitespace in docblock tags
Prelude
  • Corrected current() return type

Features

  • Docblock variables are now always populated (#​802)

Configuration Changes

  • PSR naming rules are now disabled by default (#​805)

Documentation

  • Fixed documentation: null-pipe is not a valid value for null-type-hint setting (#​814)

Release Assets

  • Added source-code.tar.gz and source-code.zip archives containing full source code
  • Removed Debian packages from release assets

New Contributors


Full Changelog: carthage-software/mago@1.0.1...1.0.2

phpstan/phpstan-phar-composer-source (phpstan/phpstan)

v2.1.37

Compare Source

v2.1.36

Compare Source

v2.1.35

Compare Source

v2.1.34

Compare Source

phpstan/phpstan-phpunit (phpstan/phpstan-phpunit)

v2.0.12

Compare Source

  • e4c5a22 - TestMethodsHelper - class methods cache
  • 80091f9 - TestMethodsHelper - speed-up by asking for immediate methods only
phpstan/phpstan-symfony (phpstan/phpstan-symfony)

v2.0.12

Compare Source

  • a46dd92 - Fix CS
  • 53e2128 - Fix RequiredAutowiringExtension for traits

v2.0.11

Compare Source

  • 32f0013 - Optimize RequiredAutowiringExtension

v2.0.10

Compare Source

  • 5a7ab53 - Fix Docblock for InputBag
sebastianbergmann/phpunit (phpunit/phpunit)

v11.5.49: PHPUnit 11.5.49

Compare Source

Fixed
  • #​6362: Manually instantiated test doubles are broken since PHPUnit 11.2
  • #​6470: Infinite recursion in Count::getCountOf() for unusal implementations of Iterator or IteratorAggregate

Learn how to install or update PHPUnit 11.5 in the documentation.

Keep up to date with PHPUnit:

v11.5.48: PHPUnit 11.5.48

Compare Source

Changed

Learn how to install or update PHPUnit 11.5 in the documentation.

Keep up to date with PHPUnit:

v11.5.47: PHPUnit 11.5.47

Compare Source

Fixed
  • #​6470: Mocking a class with a property hook setter accepting more types than the property results in a fatal error

Learn how to install or update PHPUnit 11.5 in the documentation.

Keep up to date with PHPUnit:

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

Renovate Bot

@renovate
Copy link
Contributor Author

renovate bot commented Dec 19, 2025

automergeComment

@renovate renovate bot force-pushed the renovate/all-minor-patch branch from b73c5cb to 7b94d17 Compare December 20, 2025 02:43
@renovate renovate bot changed the title Update dependency phpstan/phpstan-phpunit to ^2.0.11 Update all non-major dependencies Dec 20, 2025
@renovate renovate bot force-pushed the renovate/all-minor-patch branch 2 times, most recently from 7230a9d to 2c36b2b Compare December 21, 2025 13:13
@renovate renovate bot changed the title Update all non-major dependencies Update dependency phpstan/phpstan-phpunit to ^2.0.11 Dec 21, 2025
@renovate renovate bot force-pushed the renovate/all-minor-patch branch from 2c36b2b to cc2963a Compare December 21, 2025 17:26
@renovate renovate bot changed the title Update dependency phpstan/phpstan-phpunit to ^2.0.11 Update all non-major dependencies Dec 21, 2025
@renovate renovate bot changed the title Update all non-major dependencies Update dependency phpstan/phpstan-phpunit to ^2.0.11 Dec 22, 2025
@renovate renovate bot force-pushed the renovate/all-minor-patch branch from cc2963a to a73d945 Compare December 22, 2025 09:15
@renovate renovate bot changed the title Update dependency phpstan/phpstan-phpunit to ^2.0.11 Update dependency phpstan/phpstan-phpunit to ^2.0.11 - autoclosed Dec 22, 2025
@renovate renovate bot closed this Dec 22, 2025
@renovate renovate bot deleted the renovate/all-minor-patch branch December 22, 2025 11:04
@renovate renovate bot changed the title Update dependency phpstan/phpstan-phpunit to ^2.0.11 - autoclosed Update dependency carthage-software/mago to ^1.0.2 Dec 22, 2025
@renovate renovate bot reopened this Dec 22, 2025
@renovate renovate bot force-pushed the renovate/all-minor-patch branch 3 times, most recently from fba004a to 063bc94 Compare December 24, 2025 09:44
@renovate renovate bot changed the title Update dependency carthage-software/mago to ^1.0.2 Update dependency carthage-software/mago to ^1.0.3 Dec 24, 2025
@renovate renovate bot force-pushed the renovate/all-minor-patch branch from 063bc94 to 0e5cd29 Compare January 13, 2026 15:09
@renovate renovate bot changed the title Update dependency carthage-software/mago to ^1.0.3 Update dependency carthage-software/mago to ^1.1.0 Jan 13, 2026
@renovate renovate bot force-pushed the renovate/all-minor-patch branch from 0e5cd29 to d5fcaed Compare January 15, 2026 12:35
@renovate renovate bot changed the title Update dependency carthage-software/mago to ^1.1.0 Update all non-major dependencies Jan 15, 2026
@renovate renovate bot force-pushed the renovate/all-minor-patch branch 6 times, most recently from 911dd34 to 5a413e6 Compare January 22, 2026 16:50
@renovate renovate bot force-pushed the renovate/all-minor-patch branch 4 times, most recently from b691c90 to 15d7ec5 Compare January 24, 2026 18:03
| datasource | package                 | from    | to      |
| ---------- | ----------------------- | ------- | ------- |
| packagist  | carthage-software/mago  | 1.0.1   | 1.2.1   |
| packagist  | phpstan/phpstan         | 2.1.33  | 2.1.37  |
| packagist  | phpstan/phpstan-phpunit | 2.0.11  | 2.0.12  |
| packagist  | phpstan/phpstan-symfony | 2.0.9   | 2.0.12  |
| packagist  | phpunit/phpunit         | 11.5.46 | 11.5.49 |
@renovate renovate bot force-pushed the renovate/all-minor-patch branch from 15d7ec5 to 01f62bf Compare January 25, 2026 04:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant