Repository navigation
chore(deps): update composer dev tooling dependencies - #249
Open
renovate[bot] wants to merge 1 commit into
Open
renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
renovate
Bot
force-pushed
the
renovate/composer-dev-tooling
branch
2 times, most recently
from
October 12, 2026 12:52
237e8f6 to
69b2cd4
Compare
renovate
Bot
force-pushed
the
renovate/composer-dev-tooling
branch
from
October 16, 2026 20:51
69b2cd4 to
163bb05
Compare
renovate
Bot
force-pushed
the
renovate/composer-dev-tooling
branch
2 times, most recently
from
October 23, 2026 18:06
66b02ae to
8f811e6
Compare
renovate
Bot
force-pushed
the
renovate/composer-dev-tooling
branch
3 times, most recently
from
November 3, 2026 07:29
d6f9c49 to
6645e37
Compare
renovate
Bot
force-pushed
the
renovate/composer-dev-tooling
branch
from
November 3, 2026 22:45
6645e37 to
3c7853e
Compare
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.14.0→^2.14.2^2.3.1→^2.3.3^2.0.21→^2.1.1^2.0.12→^2.1.0^13.3.6→^13.4.5^2.7.0→^2.8.1Release Notes
ergebnis/phpstan-rules
v2.14.2Compare Source
v2.14.1Compare Source
For a full diff see [
2.14.0...2.14.1][2.14.0...2.14.1].Fixed
Methods\InvokeParentHookMethodRuleto detect the invocation of a parent hook method in afinallyblock ([#1139]), by [@localheinz]phpstan/phpstan-phar-composer-source (phpstan/phpstan)
v2.3.3Compare Source
v2.3.2Compare Source
phpstan/phpstan-phpunit
v2.1.1Compare Source
AssertEmptyIsDiscouragedRuleis auto-fixable (#342)AssertSameWithCountRuleauto-fixable (#259)v2.1.0Compare Source
phpstan/phpstan-strict-rules
v2.1.0Compare Source
sebastianbergmann/phpunit (phpunit/phpunit)
v13.4.5: PHPUnit 13.4.5Compare Source
Fixed
Learn how to install or update PHPUnit 13.4 in the documentation.
Keep up to date with PHPUnit:
v13.4.4: PHPUnit 13.4.4Compare Source
Fixed
testSuiteFinishedtwice for a test class when one of its before-first-test methods errors or failstearDown()of a test that erroredLearn how to install or update PHPUnit 13.4 in the documentation.
Keep up to date with PHPUnit:
v13.4.3: PHPUnit 13.4.3Compare Source
Fixed
CodeCoverageorFacade#[Before]method, skips the test, the remaining hook methods of the same kind are still called, so the test is reported as errored instead of skipped when one of them errorsEfor the test class instead of one for each of its tests, only one of its tests is counted as run, and the test that is run next is shown as an errorrequirements is not met
setUp(), and reports the test that is run after it as aborted with the message of the incomplete testsetUp()raises an exception or the global state cannot be backed uptearDown()fails after the test errored, with its last outcome instead of its most severe one, and with more than one end when the preparation of the test errored]]>, bytes that are not valid UTF-8, or characters that are not allowed in XML, for instance the escape character of an ANSIescape sequence
setUp(), with an empty ID before the start of the testLearn how to install or update PHPUnit 13.4 in the documentation.
Keep up to date with PHPUnit:
v13.4.2: PHPUnit 13.4.2Compare Source
Fixed
expectUserDeprecationMessage()andexpectUserDeprecationMessageMatches()did not see the deprecations triggered by an attempt of a retried test and saw those of the previously run test instead#[Retry]does not retry the test,--repeatdoes not skip the remaining repetitions,tearDown()sees the wrong status, and code coverage records the test as successfulwith()were matched by position instead of by name, so an expectation such as->with(b: 7)compared the expected value with the first parameter of the method and the parameter named$bwas not checkedwithParameterSetsInOrder(),withParameterSetsInAnyOrder(), andwithParameterSetsInPartialOrder()were ignored, so a parameter set such as['b' => 7]compared the expected value with the first parameter of the method and the parameternamed
$bwas not checkedLearn how to install or update PHPUnit 13.4 in the documentation.
Keep up to date with PHPUnit:
v13.4.1: PHPUnit 13.4.1Compare Source
Changed
Fixed
TestSuite::runTests()doubles garbage collector time whenzend.exception_ignore_argsis offsetUpBeforeClass()andtearDownAfterClass()were run twice for a test class that is the only test class in a test suite of the XML configuration file that has the name of that test class--ARGS--section of a PHPT test that start with-were interpreted by PHP instead of being passed to the test when the test also has a--STDIN--sectionLearn how to install or update PHPUnit 13.4 in the documentation.
Keep up to date with PHPUnit:
v13.4.0: PHPUnit 13.4.0Compare Source
Added
executionOrderattribute values and--order-bytoken lists that spell the order beforedefects, for exampleduration-ascending,defectspipeline()on theTestSuite\Sortedevent for inspecting which reordering stages were appliedConstraint::negatedToString()andConstraint::negatedFailureDescription()for authoring the description of a constraint that is wrapped inLogicalNot#[RequiresClass]attribute to skip a test if a class does not existChildProcessExtensioninterface for extensions that need to be bootstrapped in the child process of a test that runs in process isolation--coverage-jsonlCLI option and<jsonl>element for the XML configuration file to write a code coverage report in JSONL format, one JSON object per line, that reports uncovered code rather than every executable line--timeoutCLI option to limit the wall-clock time of the entire test runrequireCoverageMetadataOnSmallTests,requireCoverageMetadataOnMediumTests, andrequireCoverageMetadataOnLargeTestsattributes for the XML configuration file to require code coverage metadata depending on the size of a test; these have precedence overrequireCoverageMetadataChanged
--- OUTPUT:record that is attributed to the test instead of being passed through unformatted; the record is omitted whenbeStrictAboutOutputDuringTestsor--disallow-test-outputalready reports the output as riskyDeprecated
defectsbefore the order for--order-byandexecutionOrder, which will change meaning in PHPUnit 14dependsandno-dependsfor--order-byandexecutionOrder--order-byandexecutionOrderexecutionOrderXML configuration attribute, which are currently ignoredConstraint::failureDescriptionInContext()andLogicalNot::negate()#[Group],#[Ticket],#[Small],#[Medium], and#[Large]on parent classes of test classesFixed
#[DataProviderClosure]errors when it is run in process isolationLearn how to install or update PHPUnit 13.4 in the documentation.
Keep up to date with PHPUnit:
rectorphp/rector (rector/rector)
v2.8.1: Released Rector 2.8.1Compare Source
Fixes
v2.8.0: Released Rector 2.8Compare Source
Faster runs, single-pass rules, and a leaner rule set 🚀
The Rector core engine is ~26 % faster (1.36x) with ~8 % less memory than 2.7.0.
If you run PHP 8.3+, it's 3x faster using PHPStan Turbo, the native parsing extension shipped with
phpstan/phpstan:Turbo factor measured on this release via an A/B run on Rector's own
rules/(24-core host, PHP 8.4, cold, identical changed-file fingerprint): ~2.4x wall and ~2.6x worker CPU. Turbo speeds up PHPStan parsing in the workers, so the wall-time gain scales with the available core count.This release is mostly about speed and reliability. A large performance campaign hoists cheap node guards in front of expensive reflection, scope and type lookups across hundreds of rules, replaces per-node config scans in configurable rules with keyed lookups, and resolves short names and unused imports in a single AST walk.
Rules now converge in a single pass: instead of a re-processing guard, the engine iterates rules to a fixed point and tests enforce idempotency, so a rule that changes a file produces the same result whether it runs once or many times.
We also trimmed the rule set: many niche, context-dependent rules that are not part of any set and rarely used are now deprecated. Deprecated rules still run and print a warning; they will be removed in a future major release. The goal is a smaller set of valuable, reliable rules for everyday upgrades.
New features 🥳
ExplicitNullableObjectInstanceRector, replacing 4 nullable-object instanceof rules (#8636)--alloption tolist-rulesto list every rule in core andrector-*packages (#8637)list-rulescommand (#8533)Performance Improvements 🚀
phpstan/phpstan, on PHP 8.3+ - no main-process restart, the workers do the analysis (#8812) Thanks @SanderMullerClass_/ClassLikenode and addgetClassReflection()toAbstractRector:RemoveParentDelegatingClassMethodRector,ReturnTypeFromMockObjectRector,AddVoidReturnTypeWhereNoReturnRectorandChangeMethodVisibilityRector(#8824, #8827, #8828, #8830, #8831)UseImportNameMatcher::resolveName()and resolve the parent class reflection by name inPhp4ConstructorRector(#8841, #8838)array_values()inBetterStandardPrinter::pArray()(#8814, #8821)ClassReflectionby class content hash to stop memory growth on class refresh (#8731, #8728, #8729)ClassNameImportContext(#8687)realpath()of skip patterns inFileInfoMatcher(#8699) Thanks @SanderMullerStaticPHPUnitEnvironment::isPHPUnitRunand replace theisStringNamewildcard loop with a singlestrpbrkscan (#8732, #8733)ContextNodeVisitorby tracking loop/try/attribute depth (#8741)NodeComparator::areNodesEqualbefore printing (#8752)enterNode()toFileProcessorso it runs once per file (#8593)ConvertStaticToSelfRector,ArrayToFirstClassCallableRectorandSimplifyEmptyCheckOnEmptyArrayRectorwith cheap guards before scope fetching (#8801, #8796, #8795) Thanks @alfredbezforeach(#8761)extends/implementsnames and drop the unused process property on the node scope (#8788, #8792)FileProcessornow that rules converge in a single pass (#8811)Bugfixes 🐛
NewlineBeforeNewAssignSetRector: fix a false positive on a local var and$thisproperty name collision (#8535)SimplifyQuoteEscapeRector: handle strings with accented characters (#8532)TernaryToNullsafeCoalesceRector: skip mixed and untyped calls (#8531) Thanks @roxblnfkTernaryToNullCoalescingRector: preserve fallback parentheses on theIdentical/NotIdenticalpath (#8674)AddArrowFunctionReturnTypeRector: fix a crash onNonexistentParentClassType(#8568)DowngradeEnumToConstantListClassRectorandRenameMethodRector(#8727)StrContainsRector/MbStrContainsRector: skip a non-zerostrpos()/mb_strpos()offset (#8640, #8642) Thanks @guillaume-sainthillierSplitGroupedClassConstantsRector: preserve the attribute and type (#8650)RemoveUselessUnionReturnDocblockRector: skip astatic/$thisunion@return(#8649)StrictArrayParamDimFetchRector: skip a private method param called with anArrayAccessarg (#8648)ReadOnlyAnonymousClassRector: skip an anonymous class with attributes (#8665)NullToStrictStringFuncCallArgRector: skip an arg already cast to the target type (#8688)AddNameToBooleanArgumentRector: skipsession_set_save_handler(#8750)RemoveDuplicatedCaseInSwitchRector: compare switch case statements node-by-node (#8754)MergePhpstanDocTagIntoNativeRector: keep the native@param/@var/@returndescription (#8781)nullis still reported, acrossrector-doctrine,rector-symfony,rector-phpunitandrector-downgrade-php(doctrine #539, symfony #1087, phpunit #810, downgrade #418)fix(parallel): report the error limit only when it is actually reached (#8844) Thanks @alfredbezChangedFilesDetectorPortableCacheTest(#8537)Deprecations 💀
Deprecated rules still run and print a warning; they will be removed in a future major release. These are niche, context-dependent or rarely used rules outside the main PHP upgrade path.
Transform / Arguments
FuncCallToNewRector(#8776),FuncCallToStaticCallRector(#8775),MethodCallToFuncCallRector(#8769),MethodCallToStaticCallRector(#8770),NewToStaticCallRector(#8768),StaticCallToMethodCallRector(#8759),ConstFetchToClassConstFetchRector(#8771),MergeInterfacesRector(#8772),ArrayDimFetchToMethodCallRector(#8762),StringToClassConstantRector(#8779),RemoveMethodCallParamRector(#8766)ReplaceArgumentDefaultValueRectorandFunctionArgumentDefaultValueReplacerRectorin favor of dedicated rules (#8686, #8692)Renaming
RenameAnnotationRector(#8780),RenameStaticMethodRector(#8777)Naming (and the
SetList::NAMINGset itself)RenameParamToMatchTypeRector(#8553),RenamePropertyToMatchTypeRector(#8547),RenameVariableToMatchNewTypeRector(#8554),RenameVariableToMatchMethodCallReturnTypeRector(#8549),RenameForeachValueVariableToMatchExprVariableRector(#8548),RenameForeachValueVariableToMatchMethodCallReturnTypeRector(#8550), and the naming prepared set warning (#8555)TypeDeclaration
ParamTypeByMethodCallTypeRectorand its Object/Scalar/Array splits (#8567),ParamTypeByParentCallTypeRector(#8813),AddPropertyTypeDeclarationRector(#8774),AddParamStringTypeFromSprintfUseRector(#8723),DeclareStrictTypesRectorin favor ofSafeDeclareStrictTypesRector(#8562),BinaryOpNullableToInstanceofRectorfolded intoExplicitNullableObjectInstanceRector(#8817)CodeQuality / CodingStyle / DeadCode / EarlyReturn / Php
CompleteDynamicPropertiesRector(#8753),SwitchTrueToMatchRector(#8622),InnerFunctionToPrivateMethodRector(#8621),MoveInnerFunctionToTopLevelRector(#8616),ForRepeatedCountToOwnVariableRector(#8620),CallUserFuncWithArrowFunctionToInlineRector(#8615),RemoveUselessIsObjectCheckRector(#8614),SimplifyStrposLowerRector(#8611),SetTypeToCastRector(#8610),ForeachItemsAssignToEmptyArrayToAssignRector(#8577),PostIncDecToPreIncDecRector(#8583),TernaryFalseExpressionToIfRector(#8683),RemoveDeadReturnRectorin favor ofRemoveAlwaysTrueIfConditionRector(#8685),RemoveDuplicatedReturnSelfDocblockRector(#8634),RemoveParentDelegatingConstructorRector(#8755),ChangeConstantVisibilityRector(#8767),AddOverrideAttributeToOverriddenMethodsRector(#8773),RemoveTraitUseRector(#8778),ReturnEarlyIfVariableRector(#8818)Internals ⚙️
tomasvotruba/unused-publicwithshipmonk/dead-code-detector(#8530)NodeVisitorand moveenterNode()out ofAbstractRectorintoRectorRunner(#8541, #8560)RectorRegistryand merge the skipper services into a singleSkipper(#8600, #8601, #8604)symplify/rule-doc-generator-contractsunder theRector\RuleDocnamespace (#8586)@apiannotations, unused collectors, converters and interfaces, thecreated_by_ruleattribute andRectifiedAnalyzer, and the deprecatedwithPhp53Sets()..withPhp74Sets()and cache-meta methods (#8794, #8803, #8804, #8805, #8806, #8807, #8808, #8809, #8810, #8798, #8799)MergePhpstanDocTagIntoNativeRectorin the type-declaration docblock level (#8763)VariableNamingtorector-downgrade-php(#8797, downgrade #417)PhpVersionFeatureand usePhpVersionconstants directly in rules (#8839)custom-ruleandsetup-cicommands, and the unuseddoctrine/inflectordependency (#8815, #8816)NoGetClassReflectionOnScopeRulePHPStan rule and route class reflection through a saferfetchClassLikeReflection(), used inReadonlyClassManipulatorandObjectTypeSpecifier(#8820, #8829, #8832, #8835, #8840)NullToStrictStringIntConverter, use an explicitnulltype in the null-to-strict rules (#8837)rector-doctrine 🟠
AddArrayResultColumnNamesRector(#533)RemoveNullFromNullableCollectionTypeRectorto a singleClass_node and make it idempotent (#535, #534)rector-symfony 🎵
Schedule::with()toadd()and Doctrine middleware renames (#1082)eraseCredentialsbody into an existing__serialize()instead of a deadserialize()(#1085)ReplaceArgumentDefaultValueRectorusages as dedicated rules (#1079)LogoutHandlerToLogoutEventSubscriberRectoridempotent (#1080)StringToArrayArgumentProcessRectorat upper version bounds (#1076, #1075)ServiceMapout of theServiceMapProviderconstructor (#1073)AccessType/Accessorannotation-to-attribute rules and drop the orphaned enum (#1086, #1088)rector-phpunit 🟢
ScenarioToTestAnnotationRectorto replace thescenarioannotation withtest(#809)IdentifierManipulator(#808)WillReturnCallbackFallbackToReturnFalseRector: skip never-returning fall-through and a trailing comment after return (#801, #800)AssertEmptyNullableObjectToAssertInstanceofRector: skip an anonymous class (#792)SuffixMockObjectPropertyRectoras it can produce invalid variable names (#795)AddProphecyTraitRectoridempotent and skip a non-test class early (#806, #793)AssertRegExpRectorand the PHPUnit test-case call guard with a cheap method-name gate (#796, #807)ScenarioToTestAnnotationRectorand drop the deprecatedfindFirstNonAnonymousClass()call (#812, #811)rector-downgrade-php ⬇️
DowngradeIteratorCountToArrayRector, and skipiterator_to_array()/iterator_count()already guarded byis_array()(#414, #415)array_key_first/array_key_lastin a single statement traversal, and convert nested arrow functions to anonymous functions in a single pass (#416, #413)JsonConstCleaner(#410)DowngradeParameterTypeWideningRector(#411)VariableNamingservice moved from core, and fix the missingCOVARIANT_RETURNconstant withPhpVersion::PHP_74(#417, #419)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.