chore(deps): update composer dev tooling dependencies - #213
Merged
Conversation
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the
Comment |
renovate
Bot
force-pushed
the
renovate/composer-dev-tooling
branch
4 times, most recently
from
January 22, 2026 13:42
8eb7292 to
97ed093
Compare
renovate
Bot
force-pushed
the
renovate/composer-dev-tooling
branch
6 times, most recently
from
January 29, 2026 16:38
7327538 to
92e1f11
Compare
renovate
Bot
force-pushed
the
renovate/composer-dev-tooling
branch
8 times, most recently
from
February 4, 2026 23:57
93c2111 to
50d4a80
Compare
renovate
Bot
force-pushed
the
renovate/composer-dev-tooling
branch
3 times, most recently
from
February 13, 2026 18:54
7ae6136 to
0725aa8
Compare
renovate
Bot
force-pushed
the
renovate/composer-dev-tooling
branch
6 times, most recently
from
February 21, 2026 10:22
2384c96 to
42a41cc
Compare
renovate
Bot
force-pushed
the
renovate/composer-dev-tooling
branch
2 times, most recently
from
April 11, 2026 11:16
1b7f536 to
0e8b7ba
Compare
renovate
Bot
force-pushed
the
renovate/composer-dev-tooling
branch
6 times, most recently
from
April 21, 2026 12:06
5687416 to
b99b399
Compare
renovate
Bot
force-pushed
the
renovate/composer-dev-tooling
branch
from
April 26, 2026 19:30
b99b399 to
16bd2ce
Compare
renovate
Bot
force-pushed
the
renovate/composer-dev-tooling
branch
5 times, most recently
from
May 9, 2026 15:42
8499cf9 to
0591d3a
Compare
renovate
Bot
force-pushed
the
renovate/composer-dev-tooling
branch
3 times, most recently
from
May 20, 2026 19:33
3c9e042 to
32e0732
Compare
renovate
Bot
force-pushed
the
renovate/composer-dev-tooling
branch
4 times, most recently
from
May 28, 2026 23:29
db08a99 to
7c29705
Compare
renovate
Bot
force-pushed
the
renovate/composer-dev-tooling
branch
6 times, most recently
from
June 6, 2026 00:39
98dc3a8 to
c983c4b
Compare
renovate
Bot
force-pushed
the
renovate/composer-dev-tooling
branch
from
June 11, 2026 02:03
c983c4b to
190705f
Compare
Marcin Michalski (marmichalski)
approved these changes
Jul 24, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
^2.51.0→^2.52.0^2.12.0→^2.13.1^1.2.1→^1.4.0^3.95.1→^3.95.15^2.1.51→^2.2.5^2.0.16→^2.0.18^2.0.10→^2.0.11^2.4.2→^2.5.7Release Notes
ergebnis/composer-normalize (ergebnis/composer-normalize)
v2.52.0Compare Source
For a full diff see [
2.51.0...2.52.0][2.51.0...2.52.0].Changed
schema.json([#1614]), by [@ergebnis-bot]Fixed
composer/composer([#1616]), by [@localheinz]Lendable/composer-license-checker (lendable/composer-license-checker)
v1.4.0Compare Source
Features
Fixes / Maintenance
PHP-CS-Fixer/shim (php-cs-fixer/shim)
v3.95.15Compare Source
v3.95.14Compare Source
v3.95.13Compare Source
v3.95.12Compare Source
v3.95.11Compare Source
v3.95.10Compare Source
v3.95.9Compare Source
v3.95.8Compare Source
v3.95.7Compare Source
v3.95.6Compare Source
v3.95.5Compare Source
v3.95.4Compare Source
v3.95.3Compare Source
v3.95.2Compare Source
phpstan/phpstan-phar-composer-source (phpstan/phpstan)
v2.2.5Compare Source
v2.2.4Compare Source
v2.2.3Compare Source
v2.2.2Compare Source
v2.2.1Compare Source
v2.2.0Compare Source
v2.1.56Compare Source
v2.1.55Compare Source
v2.1.54Compare Source
v2.1.53Compare Source
v2.1.52Compare Source
phpstan/phpstan-phpunit (phpstan/phpstan-phpunit)
v2.0.18Compare Source
#[RequiresPhpunit]version requirement being evaluated against PHP version (#313)v2.0.17Compare Source
#[RequiresPhpunit]in the same way we check#[RequiresPhp](#308)#[RequiresPhp](#303)#[RequiresPhp]value and range (#269)f3e473d(#301)phpstan/phpstan-strict-rules (phpstan/phpstan-strict-rules)
v2.0.11Compare Source
(void)cast on#[\NoDiscard]callsrectorphp/rector (rector/rector)
v2.5.7: Released Rector 2.5.7Compare Source
This release sharpens the PHPUnit code-quality sets, adds a focused narrow asserts set, deprecates two blurry Symfony web-test rules, and fixes a handful of docblock false-positives in dead-code removal.
New Features 🎉
PHPUnit:
PHPUNIT_NARROW_ASSERTSsetA new set focused on narrowing broad asserts to their specific, more descriptive method — e.g.
assertTrue(isset($a['b']))→assertArrayHasKey('b', $a). (rector-phpunit #716)withPreparedSets()gainsphpunitNarrowAsserts+phpunitMockToStubThe 2 PHPUnit sets are now toggleable like any other prepared set. (#8178)
PHPUnit: flip
with($this->callback(...))on void methods towillReturnCallback()VoidMethodWithCallbackToWillReturnCallbackRector(renamed + refocused) drops the pointlessreturnvalue and types the closure asvoid, matching the mocked void method. (rector-phpunit #724)$this->createMock(SomeClass::class) ->method('run') - ->with($this->callback(function ($arg) { - echo $arg; - - return true; - })); + ->willReturnCallback(function ($arg): void { + echo $arg; + });Console:
-vas alias for--versionSince the
verboseoption was removed,-vnow prints the version. (#8177)vendor/bin/rector -v # Rector 2.x.xImprovements 🔧
literal-string,numeric-string, …) to their real PHPStan types instead of a bogusObjectType, so precise docblocks survive dead-code cleanup (#8176)Assertclass via reflection before transforming (rector-phpunit #720)CallbackSingleAssertToSimplerRector(rector-phpunit #722)atLeast()instead ofexactly()inDecorateWillReturnMapWithExpectsMockRector(rector-phpunit #719)Bug Fixes 🐛
@returntags inRemoveReturnTagIncompatibleWithNativeTypeRector(#8183)RemoveReturnTagIncompatibleWithNativeTypeRector(#8180)RemoveReturnTagIncompatibleWithNativeTypeRector(#8179)CompleteDynamicPropertiesRector(#8182)@methodinRemoveExtraParametersRector(#8181)with()multiple arguments inVoidMethodWithCallbackToWillReturnCallbackRector(rector-phpunit #725)newobject instances inNarrowIdenticalWithConsecutiveRector— eachnewis a fresh instance, collapsing them changes intent (rector-phpunit #726)CallbackSingleAssertToSimplerRector(rector-phpunit #718)AssertEqualsToSameRectorto preserve loose comparison (rector-phpunit #717)Deprecations 💀
Symfony:
WebTestCaseAssertIsSuccessfulRector+WebTestCaseAssertResponseCodeRectorBoth rules hide the asserted behavior and force a different assert method per status code, splitting one clear assertion into several implicit ones. Asserting the HTTP status code directly is clearer and uniform. (rector-symfony #958)
v2.5.6: Released Rector 2.5.6Compare Source
New Features 🥳
RemoveReturnTagIncompatibleWithNativeTypeRector(#8172)final class SomeClass { - /** - * @​return SomeObject - */ public function getName(): string { return $this->someObject->getName(); } }MergePhpstanDocTagIntoNativeRectorto merge@phpstan-*doc tags into native tags (#8171)final class SomeClass { /** - * @​var Collection - * - * @​phpstan-var Collection<int, string> + * @​var Collection<int, string> */ private $items; }Bugfixes 🐛
NullToStrictStringFuncCallArgRector(#8164)getRuleDefinition()method, parts 1–5 (#8165, #8166, #8167, #8168, #8169)phpstan/phpdoc-parserto^2.3.3(#8174)PHPUnit 🧪
New rules and changes from rector-phpunit.
New Rules
AssertClassToThisAssertRector(#707)use PHPUnit\Framework\Assert; use PHPUnit\Framework\TestCase; final class SomeClass extends TestCase { public function run() { - Assert::assertEquals('expected', $result); + $this->assertEquals('expected', $result); } }BareCreateMockAssignToDirectUseRector— inline a single-usecreateMock()assignment (#708)final class SomeTest extends TestCase { public function test() { - $someObject = $this->createMock(SomeClass::class); - $this->process($someObject); + $this->process($this->createMock(SomeClass::class)); } private function process(SomeClass $someObject): void { } }WillReturnCallbackFallbackToThrowRector— throw on an unexpected extra consecutive call (#710)$this->someServiceMock->expects($matcher) ->method('run') ->willReturnCallback(function () use ($matcher) { if ($matcher->numberOfInvocations() === 1) { return 1; } + + throw new \PHPUnit\Framework\Exception(sprintf('Method should not be called for the %dth time', $matcher->numberOfInvocations())); });RemoveReturnFromVoidMethodMockCallbackRector— type a void mock callback and drop its value return (#711)$this->createMock(SomeClass::class) ->method('run') - ->willReturnCallback(function ($arg) { + ->willReturnCallback(function ($arg): void { echo $arg; - - return true; });(
SomeClass::run()returnsvoid.)CallbackSingleAssertToSimplerRector— collapse awith()callback with a soleassertSame()toequalTo()(#714)$builder->expects($this->exactly(2)) ->method('add') - ->with($this->callback(function ($type): bool { - $this->assertSame(TextType::class, $type); - - return true; - })); + ->with($this->equalTo(TextType::class));Improvements
TestCasesuffix classes inRemoveNeverUsedMockPropertyRector(#709)WithCallbackIdenticalToStandaloneAssertsRector(#712)return throwandreturn nullin void mock callbacks (#713)v2.5.5: Released Rector 2.5.5Compare Source
New Features 🥳
AlternativeIfToBracketRector(#8158)Bugfixes 🐛
AddClosureParamTypeForArrayMapRectorto type closure params from array values, not keys (#8163)v2.5.4: Released Rector 2.5.4Compare Source
New Features 🥳
Bugfixes 🐛
v2.5.3: Released Rector 2.5.3Compare Source
New Features 🥳
withTypeGuardedClasses()Are you an open-source project or package used by others? Do you want to make type changes, but keep BC?
Guard the listed classes and their non-final descendants against method signature changes - e.g. adding a return type or a param type — that would break child classes (#8135)
New Rules 🎉
NegatedAndsToPositiveOrsRector(CodeQuality) — simplify a negated "and" to "or" via de Morgan (#8082)
ExplicitAttributeNamedArgsRector(CodeQuality) — positional attribute args → named args (#8079), Thanks @DaveLiddament!
SwitchTrueToMatchRector(CodeQuality) —
switch (true)of returning cases →match (true), replaces deprecatedSwitchTrueToIfRector(#8113)RemoveDuplicatedReturnSelfDocblockRector(DeadCode) — drop
@returnduplicating native self/static (#8087)final class SomeClass { - /** - * @​return $this - */ public function some(): self { return $this; } }RemoveMixedDocblockOverruledByNativeTypeRector(DeadCode) — drop
@param mixed/@return mixedoverruled by native type (#8089)RemoveUselessUnionReturnDocblockRector(DeadCode) — drop
@returnunion broader than a specific native type (#8126)ClosureReturnTypeFromAssertInstanceOfRector(TypeDeclaration) — add closure return type narrowed by
assertInstanceOf()(#8115)TypedPropertyFromContainerGetSetUpRector(TypeDeclaration) — type property from
@varwhen assigned via containerget()insetUp()(#8120)TypedPropertyFromGetRepositorySetUpRector(TypeDeclaration) — same, for
getRepository()assignment insetUp()(#8124)protected function setUp(): void
{
$this->someEntityRepository = $this->em->getRepository(SomeEntity::class);
}
NarrowBoolDocblockReturnTypeRector(TypeDeclaration) — narrow
@return booltofalse/trueper native type (#8127)NarrowArrayCollectionUnionReturnDocblockRector(TypeDeclarationDocblocks) —
Type[]|ArrayCollection→ genericArrayCollection<int, Type>(#8136)AddClosureParamTypeFromVariableCallRector(TypeDeclaration) — add closure param type from how the closure variable is called (#8142)
rectorphp/rector-symfony 🎵
EventSubscriberMethodReturnVoidRector(CodeQuality) — subscribed event methods must return
void(event is by-reference) (#949)rectorphp/rector-phpunit 🟢
PHPUnit 12 cluster — typing
createMock()/createStub()properties as intersections after theMockObject→Stubsplit.ChangeMockObjectReturnUnionToIntersectionRector(CodeQuality) — MockObject
@returnunion → intersection (#703)AddIntersectionVarToMockObjectPropertyRector(CodeQuality) — add MockObject intersection
@varto a native MockObject property (#697)AddStubIntersectionVarToStubPropertyRector(CodeQuality) — add Stub intersection
@varto a native Stub property (#700)MockObjectVarToStubRector(PHPUnit120) — on a property retyped to Stub, update
@varfrom MockObject to Stub (#689)BareVarToStubIntersectionRector(PHPUnit120) — add
&Stubto a bare single-class@varof a Stub property (#690)PreferTestsWithCamelCaseRector(CodeQuality) — rename PHPUnit test methods to camelCase (#668), Thanks @Xammie!
PreferTestsWithSnakeCaseRector(CodeQuality) — rename PHPUnit test methods to snake_case, the opposite convention (#668), Thanks @Xammie!
Bugfixes 🐛
--only/--only-suffixruns now cache under a rule-scoped key (#8075), Thanks @SanderMuller!ParamTypeByMethodCallTypeRectorsplit into Object / Scalar / Array rules (#8134)Deprecations & Removals 💀
Migrate away - these will be removed in a future release:
SwitchTrueToIfRector→ use newSwitchTrueToMatchRector(#8109)StrictStringParamConcatRector— too many false positives (#8090)StaticClosureRector+StaticArrowFunctionRector(#8092)StaticCallOnNonStaticToInstanceCallRector— risky change (#8093)EnumCaseToPascalCaseRector— risky change (#8095)JoinStringConcatRector(#8107)RemoveTypedPropertyNonMockDocblockRector— no real value (#8119)rectorphp/rector-symfony
ParameterBagToAutowireAttributeRector(#954)AddRouteAnnotationRector(#952)rectorphp/rector-phpunit
BehatPHPUnitAssertToWebmozartRector— too narrow (#686)v2.5.2: Released Rector 2.5.2Compare Source
Bugfixes 🐛
class => [paths]skips being wrongly flagged as unused (#8073)class => [paths]map — richer per-path skip tracking backing the report (#8074)v2.5.1: Released Rector 2.5.1Compare Source
Bugfixes 🐛
RemoveAlwaysTrueIfConditionRector— avoid scanning whole new statements on dynamic variable checks; moved logic toExprAnalyzerand bail early on defined variables (#8057)v2.5.0: Released Rector 2.5Compare Source
New Features 🥳 🎉 🎉 🎉
This release has 3 interesting new features. Let's look at them:
[dx] Report skips that never matched (#8058)
What? - like PHPStan's
reportUnusedIgnores, but for Rector->withSkip(). Flags skip entries that never matched anything during the run, so you can delete stale skips.Why? - skips rot. You skip a path/rule to dodge a problem, later the file moves or the rule stops firing there — the skip lingers forever,
silently masking nothing. This surfaces dead skips so config stays honest.
Run output:
[dx] Removing unused imports by default (#8047)
You can update your
rector.phpconfig:In case it's not for you, turn it off:
[dx] Introducing Drupal composer-based sets (#8041), Thanks @bbrala!
If you're using Drupal Rector, you can now enable it's per-version sets via:
return RectorConfig::configure() + ->withComposerBased(drupal: true);To learn more about composer-based-sets, checkout the documentation.
New Rules 🎉
AddArrayAnyAllClosureParamTypeRectorandNarrowArrayAnyAllNullableParamTypeRector(#8049)MoveInnerFunctionToTopLevelRector(#8042)NewArrayItemConcatAssignToAssignRector(#8045)FixClassCaseSensitivityVarDocblockRector(#8046)AddParamTypeToRefactorMethodRectorif missing (#8061)Bugfixes 🐛
MoveInnerFunctionToTopLevelRector(#8044)--onlyruns caching files as unchanged, hiding pending changes from full runs (#8029), Thanks @SanderMuller!RemoveUnusedPrivateMethodRectorfor NeverType (#8050)rectorphp/rector-doctrine 🟠
v2.4.6: Released Rector 2.4.6Compare Source
New Features 🥳
Bugfixes 🐛
--autoload-file(#8034), Thanks @SanderMuller!rectorphp/rector-symfony 🎶
rectorphp/rector-phpunit 🟢
rectorphp/rector-downgrade-php ⬇️
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR was generated by Mend Renovate. View the repository job log.