chore(deps): update composer dev tooling dependencies - #693
Merged
Conversation
renovate
Bot
force-pushed
the
renovate/composer-dev-tooling
branch
from
July 2, 2026 18:59
df7f44f to
fc3ba5b
Compare
renovate
Bot
force-pushed
the
renovate/composer-dev-tooling
branch
7 times, most recently
from
July 12, 2026 09:49
a7338af to
49beaae
Compare
renovate
Bot
force-pushed
the
renovate/composer-dev-tooling
branch
5 times, most recently
from
July 19, 2026 12:49
7a0a780 to
d5eacb1
Compare
renovate
Bot
force-pushed
the
renovate/composer-dev-tooling
branch
2 times, most recently
from
July 22, 2026 17:31
cc7f240 to
0a49786
Compare
renovate
Bot
force-pushed
the
renovate/composer-dev-tooling
branch
from
July 26, 2026 08:36
0a49786 to
94934c4
Compare
Marcin Michalski (marmichalski)
approved these changes
Jul 29, 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:
^0.33.3→^0.34.0^3.95.10→^3.95.15^2.2.2→^2.2.5^2.0.16→^2.0.18^2.0.11→^2.0.12^12.5.30→^12.5.31^2.5.1→^2.5.7Release Notes
infection/infection (infection/infection)
v0.34.0Compare Source
Added:
--filterand--test-framewor-extra-argsoptions by @maks-rafalko in #3284runcommand with positional args by @maks-rafalko in #3285Changed:
--filteroptions in favor of new positional arguments for filtering source by @maks-rafalko in #3308sebastian/diff: 9 by @sidz in #3298config:list-sourcescommand by @maks-rafalko in #3307Full Changelog: infection/infection@0.33.3...0.34.0
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
phpstan/phpstan-phar-composer-source (phpstan/phpstan)
v2.2.5Compare Source
v2.2.4Compare Source
v2.2.3Compare 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.12Compare Source
sebastianbergmann/phpunit (phpunit/phpunit)
v12.5.31Compare Source
rectorphp/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)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.