Update all non-major dependencies #3
Loading…
Reference in a new issue
No description provided.
Delete branch "renovate/all-minor-patch"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This PR contains the following updates:
8.65.0→8.67.0v7.0.0→v7.0.110.8.0→10.8.1v4.0.2→v4.0.310.5.62→10.5.642.4.5→2.6.23.5.40→3.5.41Release Notes
typescript-eslint/typescript-eslint (@typescript-eslint/parser)
v8.67.0Compare Source
This was a version bump only for parser to align it with other projects, there were no code changes.
See GitHub Releases for more information.
You can read about our versioning strategy and releases on our website.
v8.66.0Compare Source
This was a version bump only for parser to align it with other projects, there were no code changes.
See GitHub Releases for more information.
You can read about our versioning strategy and releases on our website.
actions/checkout (actions/checkout)
v7.0.1Compare Source
eslint/eslint (eslint)
v10.8.1Compare Source
Bug Fixes
18eb0a7fix: prevent ASI hazard inno-unused-labelsautofix (#21173) (dongkyu lee)151ba3ffix: false positives ingetter-returnandaccessor-pairs(#21163) (Grit)6898df9fix: ignore meta-property names inid-denylist(#21166) (Pixel)4d7db66fix: ignore meta-property names inid-match(#21167) (Pixel)677214efix: handle ASI hazards in no-unused-vars removeVar suggestion (#20935) (kuldeep kumar)Documentation
7d0cbf8docs: Update README (GitHub Actions Bot)0a05812docs: add missing backticks tono-duplicate-imports.js(#21183) (Lee Daeun)678c90bdocs: Update README (GitHub Actions Bot)8a10424docs: Update README (GitHub Actions Bot)69bb948docs: Update README (GitHub Actions Bot)Chores
0a14800chore: update github/codeql-action action to v4.37.4 (#21196) (renovate[bot])05adcb1test: fix failing ecosystem test foreslint-plugin-unicorn(#21191) (Lazizbek Ergashev)5611035test: add error locations info tono-void(#21185) (Lee Daeun)ee47333ci: bump github/codeql-action from 4 to 4.37.3 (#21176) (dependabot[bot])f131c03chore: improve ecosystem test failure reporting (#20937) (crimsonjay0)1f6eddechore: update ecosystem plugins (#21182) (ESLint Bot)d3266fbchore: unpinwebpackdependency (#21172) (Francesco Trotta)65a6519chore: add allowScripts field to package.json (#21092) (GiHoon Noh)22e5256ci: addtriage:nolabel to Dependabot PRs (#21141) (lumir)55c9038ci: bump actions/labeler from 6 to 7 (#21159) (dependabot[bot])7280e78chore: update dependency prettier to v3.9.6 (#21162) (renovate[bot])eddbad6test: fix failing ecosystem test foreslint-plugin-unicorn(#21156) (Francesco Trotta)60a178dchore: update ecosystem plugins (#21150) (ESLint Bot)f9f61dctest: add error locations tono-unreachable(#21151) (JIYEON)d086293test: add error locations tono-undef(#21147) (JIYEON)cc01b67test: add error locations tono-useless-catch(#21144) (devoil)688e75echore: add missing backticks in JSDoc (#21143) (Bo Hyun Kim)7c1e175test: add error locations torequire-await(#21145) (Grit)588a26dtest: add error locations tono-extra-label(#21139) (dongkyu lee)059aa89test: add error locations tono-useless-concat(#21140) (dongkyu lee)5a452a8test: add error locations tono-const-assign(#21138) (dongkyu lee)dorny/paths-filter (https://github.com/dorny/paths-filter)
v4.0.3Compare Source
sebastianbergmann/phpunit (phpunit/phpunit)
v10.5.64: PHPUnit 10.5.64Compare Source
Changed
Learn how to install or update PHPUnit 10.5 in the documentation.
Keep up to date with PHPUnit:
v10.5.63: PHPUnit 10.5.63Compare Source
Fixed
Learn how to install or update PHPUnit 10.5 in the documentation.
Keep up to date with PHPUnit:
rectorphp/rector (rector/rector)
v2.6.2: Released Rector 2.6.2Compare Source
The 2.6.0 release introduced composer-based sets. This release finishes the job: every extension package now ships a single composer-based set, and the per-version set providers behind the old guessing game are gone.
Each rule inside checks
composer.json/installed.jsonon its own and runs only if the installed package version matches its constraint. NoSymfonySetList::SYMFONY_63, no picking a PHPUnit version by hand. We're working hard to bring Drupal and Laravel community packages to the same system.Run only the PHP rules (#8322)
A new
--phpoption on theprocesscommand runs only rules bound to a minimal PHP version — those implementingMinPhpVersionInterface. Useful to split a PHP upgrade from the rest, without a second config:New features 🥳
--phpoption to run only PHP version rules (#8322)withComposerBased()(#8332), load Doctrine and Twig composer-based sets (#8313)--onlyrule exists but is not registered inrector.php(#8300)New rules 🎉
rector-src
RemoveRedundantTypeCheckRector(#8307)rector-symfony
EnableValidationAttributesRector(#1004)Simple(Pre|Form)AuthenticatorInterfacefromCoretoHttpnamespace (#1031)rector-phpunit
AnyMatcherToNewAnyInvokedCountRectorfor the deprecatedany()matcher (#764)Bugfixes 🐛
withPhpSets()version (#8315) —withPhpSets(php82: true)withsymfony/polyfill-php83installed no longer produces PHP 8.3 codeInlineConstructorDefaultToPropertyRectoron non-final class (#8310) and on a property defined in the parent whenparent::__construct()is called (#8297)SimpleXMLElementonIssetOnPropertyObjectToPropertyExistsRector(#8284)RemoveParentDelegatingConstructorRectoron protected parent constructor (#8309)assert()enforcement that producesNeverTypeonNarrowWideUnionReturnTypeRector(#8282)AssignArrayToStringRectoron a variable re-assigned as string (#8293)ArrayToFirstClassCallableRectorwhen the arg type does not accept aClosure(#8288), drop the Symfony PHP closure check (#8291)Set changes 📈
DeprecatedAnnotationToDeprecatedAttributeRectorfrom the PHP 8.4 set and polyfills (#8326)AddOverrideAttributeToOverriddenMethodsRectorfrom the PHP 8.3 and polyfill sets (#8321)RemoveReadonlyPropertyVisibilityOnReadonlyClassRector(#8289),SimplifyBoolIdenticalTrueRectorandUnwrapSprintfOneArgumentRector(#8285) to the dead-code setPropertyExistsWithoutAssertRectorin the composer-based set (#761)Deprecations 💀
Deprecated rules run without any effect, and print a warning and will be removed in a future major release.
These were deprecated as not part of any set, risky, opinionated or excluded by most users. The goal is to keep Rector valuable and reliable for the every day user.
rector-src
DeprecatedAnnotationToDeprecatedAttributeRectorandConstAndTraitDeprecatedAttributeRector(#8347)AddInterfaceByTraitRector(#8346)RemoveAnnotationRector(#8345)ScalarValueToConstFetchRector(#8344)FuncCallToMethodCallRector(#8343)AddReturnArrayDocblockBasedOnArrayMapRector(#8342)AddAssertArrayFromClassMethodDocblockRector(#8341)AddParamArrayDocblockBasedOnArrayMapRector(#8340)AddReturnDocblockForDimFetchArrayFromAssignsRector(#8338)AddSensitiveParameterAttributeRector(#8337)PropertyHookRector— property hooks are a matter of preference (#8331)JsonThrowOnErrorRector— can cause BC breaks (#8327)CoalesceToTernaryRector— risky (#8324)ChangeNestedIfsToEarlyReturnRector(#8304),ChangeNestedForeachIfsToEarlyContinueRector(#8303),ReturnBinaryOrToEarlyReturnRector(#8302),ChangeOrIfContinueToMultiContinueRector(#8299)DisallowedEmptyRuleFixerRector(#8290)NestedFuncCallsToPipeOperatorRectorandSequentialAssignmentsToPipeOperatorRector(#8286)SwitchNegatedTernaryRector(#8283)cacheClass()— the file-vs-memory cache storage choice moved intoCacheFactory; onlyFileCacheStorageis ever useful to end users (#8311)symfonyRouteandsymfonyValidatorargs inwithAttributesSets()(#8317)ComposerTriggeredSetin favor ofComposerPackageConstraintInterface(#8296)withComposerBased(netteUtils:)argument (#8329)rector-symfony
ActionSuffixRemoverRector(#1022)ControllerMethodInjectionToConstructorRector(#1020)TraitGetByTypeToInjectRector(#1002)RemoveDefaultGetBlockPrefixRector(#1017)rector-doctrine
RemoveEmptyTableAttributeRector(#505)MoveCurrentDateTimeDefaultInEntityToConstructorRector, drop theforce_nullableoption (#504)Removals 💀
nette/utilsset and its singleUtilsJsonStaticCallNamedArgRectorrule (#8329) — the only third-party-library rule left in rector-src, readability onlyNewInInitializerRector(#8328)SymfonySetProvider,PHPUnitSetProvider(#8295) andDoctrineSetProvider(#8298) from the collectorTwigSetProvider(#1015) and the empty Symfony per-version set providers (#1012)PHPUnitSetProvider(#759)DoctrineSetProvider(#501), drop the unusedsymfony/yamldependency (#500)rectorphp/rector-symfony 🎵
AsTwigFilter/AsTwigFunctionrules into a single rule, addgetTests()support (#1027), restore the merged rules as deprecated (#1028)ControllerMethodInjectionToConstructorRector: re-use the parent protected property (#1003), skip event and session params (#1005), use#[Required]autowire()when the parent has a constructor (#1006), skip type-guarded classes and use a unique autowire method name (#1007), re-use an existing#[Required]method (#1008)LoadValidatorMetadataToAttributeRector: skip non-constant constraint args (#1000) and constraints without their own constructor (#1001)AddParamTypeDeclarationto nullable types where the upstream param defaults to null (#1023)GetRequestRector(#1013), move it to the Symfony 2.5 set (#1009)Twig_Tests_EnvironmentTest_Extensionrename (#1016)rectorphp/rector-phpunit 🧪
AddDoesNotPerformAssertionToNonAssertingTestRector: add the attribute directly and skip traits (#765), removeaddToAssertionCount()calls (#763), skip TwigIntegrationTestCasechildren (#762)v2.6.1: Released Rector 2.6.1Compare Source
Bugfix 🐛
composer-basedcommand on a lazy-initialized property, e.g. PHPStanUnionType::$normalized(#8280)Composer-based sets keep growing: Twig, nette/utils and the rest of Symfony 📦
Follow-up release to 2.6.0. The composer-based rollout continues - Twig and nette/utils join, and every remaining Symfony rule now declares the package version its target API was added in.
The new Twig composer-based set replaces the
twig112→twig127→ ... →twig30chain with a single set, where every rule checks the installedtwig/twigversion:Package bonding (composer-based rollout) 📦
nette/utilsrules to the installed package version;nette-utils4.phpbecomescomposer-based.phpand is loaded as a single set (#8275)LoadValidatorMetadataToAttributeRectorin the composer-based set - the last interface-bonded rule left outside it (#997)ContainerInterfaceServiceToServiceContainerRectortosymfony/dependency-injection>=6.0 (#999)AddGetReferenceTypeRectortodoctrine/data-fixtures>=1.6 and the annotation-to-attribute sets to their package constraints (#497)RemoveExpectAnyFromMockRectorto PHPUnit 11+ (#756) ** landed in 2.6.0, missing from its release notes
The per-version sets are not touched - every rule stays registered where it was.
Set changes 📈
ConsistentImplodeRectorfrom the coding style level - the swappedimplode($array, $glue)signature was removed in PHP 8.0, so the rule belongs to thephp80set only, where it already is (#8273)DoctrineSetList::COMPOSER_BASEDconstant, remove the emptyDOCTRINE_BUNDLE_210set (#499)Bugfixes 🐛
AddParamArrayDocblockFromAssignsParamToParamReferenceRector(#8271)returninConsoleExecuteReturnIntRectoron a trailing comment (#992), plus a fixture for a block comment with a commented-out return (#993)(int)cast on amatchreturn inConsoleExecuteReturnIntRector- amatchof int constants is aUnionType, so theinstanceof IntegerTypecheck missed it (#998)Deprecations 💀
Deprecated rules still run, but print a warning and will be removed in a future major release.
These are coding standard preferences or opinionated rewrites - a coding standard tool is the better place for them.
rector-src
WrapEncapsedVariableInCurlyBracesRector- also removed from the coding style level (#8272)The actual PHP 8.2 deprecation,
${var}, is covered byVariableInStringInterpolationFixerRectorin thephp82set.CountArrayToEmptyArrayComparisonRector- also removed from the coding style level (#8274)ArraySpreadInsteadOfArrayMergeRector- the spread result is harder to read, and...mid-array looks dangerous in review (#8277)UnusedForeachValueToArrayKeysRector- also removed from the code quality level (#8278)rector-doctrine
GetRepositoryServiceLocatorToRepositoryServiceInjectionRector- it resolved the repository class by running a regular expression over the entity file contents (#498)Renames 🔄
ReplaceServiceArgumentRector→ContainerInterfaceServiceToServiceContainerRector, no longer configurable (#999)Both sets configured it with the same 2 values, for a single Symfony 6.0 BC break - the
Psr\Container\ContainerInterfaceandSymfony\...\DependencyInjection\ContainerInterfacealiases of theservice_containerservice were removed. Now hardcoded, and theReplaceServiceArgumentvalue object is gone.v2.6.0: Released Rector 2.6.0Compare Source
Composer-based sets - let Rector handle upgrade from
composer.json🥳The main theme of this release: rules that turn themselves on based on the package versions you actually have installed.
Instead of picking a Symfony or PHPUnit set by version number and guessing what applies, register the composer-based set once. Every rule inside checks
composer.json/installed.jsonand only runs if the installed package version matches its constraint.We're working on full coverage. At the moment, PHPUnit and Symfony rules are already migrated to this approach. Not only rules, but also rule configuration can be bound to a package version:
To see what is active and why, there is a new command:
And to run only those rules in a single process:
New features 🥳
ruleWithConfigurationComposerVersionBound()(#8244)composer-basedcommand (#8246)--composer-basedprocess filter (#8248)withComposerBased()(#8255)withComposerBased()(#8259)composer.json(#8264)New rules 🎉
rector-src
RemoveTestsOverriddenPrivateMethodParameterRector(#8254)rector-phpunit
AddIntersectionParamToMockObjectParamRector(#755)ExpectsParamToMockObjectRector— for private test method params (#753)MockObjectArgCreateStubToCreateMockRector(#741)AssertContainsOnlyMethodCallRector(#738)rector-symfony
LoadValidatorMetadataToAttributeRector(#988)Bugfixes 🐛
RecastingRemovalRectoron array dim fetch value (#8262)RemoveDefaultValueFromAssignedPropertyRectoron early return in constructor-called method (#8261)RemoveDefaultValueFromAssignedPropertyRector(#8240)createStub()in tests (#8257)--onlyrule name with shell-eaten backslashes (#8267)composer.jsonconstraint over outdatedinstalled.jsonversion (#8242)InstalledPackageResolvercwd fallback lost by promoted property (#8237)preConditionandpostConditionattribute mapping (#746)DataProviderAnnotationToAttributeRector(#751, #752)Set changes 📈
ExplicitPublicClassMethodRectorto PHP 5.3, plus one each to code quality and dead code (#8266)MinMaxToClampRectorfrom coding style level (#8270)SymfonySetList::COMPOSER_BASED(#982)PHPUnitSetProvider(#748)Deprecations 💀
Deprecated rules still run, but print a w and will be removed in a future major release.
These were deprecated as not part of any set, risky, opinionated or excluded by most users. Goal is to make Rector useful more to masses and every day user by having valuable and reliable rules.
rector-src
EncapsedStringsToSprintfRector(#8265)SimplifyRegexPatternRector(#8263)BinaryOpStandaloneAssignsToDirectRector(#8269)NullableCompareToNullRector(#8268)NestedTernaryToMatchRector(#8241)AddReturnDocblockFromMethodCallDocblockRector(#8239)withPhp53Sets()...withPhp74Sets()— usewithPhpLevel()instead (#8253)cacheMetaExtension()— reports a warning when used (#8251)rector-doctrine
YamlToAttributeDoctrineMappingRector(#492)DoctrineSetList::YAML_TO_ANNOTATIONSset (#493)rector-symfony
TemplateAnnotationToThisRenderRector(#989)ReturnDirectJsonResponseRector(#987)AutowireAttributeRector(#981)rector-phpunit
WillReturnCallbackFallbackToThrowRector(#740)ReplaceTestFunctionPrefixWithAttributeRector(#739)Removals 💀
strict-booleansset, deprecated since 2025-10 (#8243)junitoutput format (#8250)DoctrineDocBlockResolver, deprecated since 2025-05 (#491)StringExtensionToConfigBuilderRector, deprecated since 2025-10 (#978)AssertPropertyExistsRector(#742)Package bonding (composer-based rollout)
AddViolationToBuildViolationRectortosymfony/validator2.5 (#983), addAuthorizationCheckerIsGrantedExtractorRectorto the composer-based set (#985), bondRedirectToRouteRectortosymfony/framework-bundle2.6 (#991)phpunit/phpunit>=11.0 (#750), bond annotation-to-attribute rules tophpunit/phpunit>=10.0 (#744, #745), move composer version bound rules to composer-based set (#747)v2.5.9: Released Rector 2.5.9Compare Source
Bugfixes 🐛
Class_-only rules (#8217)AstResolverusage onAddParamBasedOnParentClassMethodRector(#8196)RichParsernode visitors via DI factory instead of private property hack (#8215)ClassPropertyAssignToConstructorPromotionRector(#8232)__construct()in anonymous class that extends parent onRemoveEmptyClassMethodRector(#8219)RemoveDeadZeroAndOneOperationRector(#8213)RemoveDefaultValueFromAssignedPropertyRector(#8214)RemoveDefaultValueFromAssignedPropertyRector(#8212)RemoveDefaultValueFromAssignedPropertyRector(#8211)RemoveDefaultValueFromAssignedPropertyRector(#8209)Set changes 🗑️
NullToStrictStringFuncCallArgRectorout of the PHP 8.1 set (#8234)The rule and all its fixtures stay, so it can still be opted into:
Deprecations 💀
TypeDeclarationDocblocks: 3 data provider docblock rules (#8235)Data provider docblock typing is not relevant to code quality — it increases maintenance cost and decreases readability of the test class.
Deprecated rules:
AddReturnArrayDocblockFromDataProviderParamRectorAddReturnDocblockDataProviderRectorAddParamArrayDocblockFromDataProviderRectorrectorphp/rector-symfony 🎵
push()to its ownRequestStackvariable inPushRequestToRequestStackConstructorRector(#971)isGranted()service calls in controllers inAuthorizationCheckerIsGrantedExtractorRector(#973)Cookiefixture afterNewToStaticCallRectorconfig removal (#974)rector/type-perfect, its rules ship intomasvotruba/type-coverage2.3 now (#972)symfony/configto^8.1(#977)Deprecated:
SimplifyFormRenderingRector(#975)The rule removed the explicit
->createView()call when a form was passed torender():Symfony supports passing the
FormInterfacedirectly, but the shorthand is ambiguous and breaks dynamic forms: forms modified inPRE_SET_DATA/POST_SUBMITlisteners and submitted over AJAX end up with a 422 response and no clear error. Keeping the explicit->createView()call is the reliable form. See symfony/symfony#50542.rectorphp/rector-phpunit 🧪
expectExceptionMessage()rename toTestCase(#735)rectorphp/rector-downgrade-php ⬇️
MHASH_*constants by name inDowngradeHashAlgorithmXxHashRectorto fix PHP 8.5 deprecation (#386)v2.5.8: Released Rector 2.5.8Compare Source
New Features 🥳
Bugfixes 🐛
Removed 💀
rectorphp/rector-symfony 🎵
rectorphp/rector-doctrine 🟠
rectorphp/rector-phpunit 🟢
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)Console:
-vas alias for--versionSince the
verboseoption was removed,-vnow prints the version. (#8177)Improvements 🔧
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)MergePhpstanDocTagIntoNativeRectorto merge@phpstan-*doc tags into native tags (#8171)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)BareCreateMockAssignToDirectUseRector— inline a single-usecreateMock()assignment (#708)WillReturnCallbackFallbackToThrowRector— throw on an unexpected extra consecutive call (#710)RemoveReturnFromVoidMethodMockCallbackRector— type a void mock callback and drop its value return (#711)(
SomeClass::run()returnsvoid.)CallbackSingleAssertToSimplerRector— collapse awith()callback with a soleassertSame()toequalTo()(#714)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)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:
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 ⬇️
vuejs/core (vue)
v3.5.41Compare Source
Bug Fixes
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ 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 has been generated by Mend Renovate CLI.
2fd4dbf129de9f8b5fdfde9f8b5fdf2e76967c2c2e76967c2c62a04240cd62a04240cd9018065ed99018065ed998867bd07298867bd0728727371adf8727371adf443a60e2ae443a60e2ae54274564e654274564e69524166f999524166f995b33a0fd205b33a0fd2024121d879024121d8790fae9bb98f1