Skip to content

[Conductor] Update dev - #131

Merged
pscheit merged 1 commit into
mainfrom
conductor-multiple-vendors-all-92983
Oct 19, 2026
Merged

pscheit merged 1 commit into
mainfrom
conductor-multiple-vendors-all-92983

Conversation

@private-packagist

@private-packagist private-packagist Bot commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor

This PR was automatically generated by Conductor.

The PR contains the changes generated by running the following command:

composer update phpstan/phpstan:2.3.1 phpstan/phpstan-phpunit:2.1.1 phpunit/phpunit:10.5.66 rector/rector:2.7.0 --with-all-dependencies --minimal-changes

Changelog

phpstan/phpstan (Source: GitHub Releases)

2.3.1

Same performance, smaller package

We've heard your feedback. PHPStan 2.3.0 was chonky! It weighed 104 MB when downloaded and 268 MB after being unzipped in your vendor/.

Afer #​6703, PHPStan 2.3.1 weighs just under 28 MB when downloaded and 87 MB unzipped.

Improvements 🔧

  • Ship the turbo extension as a shared core plus a thin extension per PHP version (#​6703), #​15423
  • Build Linux ZTS turbo binaries for PHP 8.3-8.5 too (#​6706), #​15422
  • Allow PHP 8.6 in phpstan/turbo (Composer PIE package) (#​6705)

Bugfixes 🐛

Performance 🏎️

Internals 🔍

2.3.0

This release fixes a whopping 75 issues! 🚀

Read about PHPStan 2.3.0 on the blog » I promise it's worth checking it out yourself, and not just letting your agent summarize it for you 😉 It contains a lot of interactive widgets with practical examples of the new features in action.

Major leap in performance. Back in December 2025 with PHPStan 2.1.33, as an example, analysing WordPress core took 60 seconds. With today's PHPStan 2.3.0, it takes under 8 seconds. Similar performance speedups can be observed across many codebases.

phpstan-2-3-performance

PHPStan Turbo speeds up PHPStan by 60% over the no-Turbo baseline.

Bleeding edge 🔪

If you want to see the shape of things to come and adopt bleeding edge features early, you can include this config file in your project's phpstan.neon:

includes:
	- vendor/phpstan/phpstan/conf/bleedingEdge.neon

Of course, there are no backwards compatibility guarantees when you include this file. The behaviour and reported errors can change in minor versions with this file included. Learn more

Improvements 🔧

Bugfixes 🐛

Performance 🏎️

Function signature fixes 🤖

  • Declare mutually exclusive constant groups for json_encode, json_decode, filter_var, filter_input, openlog and ZipArchive::open flags (#​6571), #​15306, thanks @​VincentLanglet!
  • Generalize keys and values of oversized arrays in ConstantTypeHelper::getTypeFromValue() like OversizedArrayBuilder (#​6572), #​15305, thanks @​staabm!
  • Fix stale phpredis signatures in functionMap (#​6587)

Internals 🔍

2.2.17

This is the last release in 2.2.x series. Look forward to PHPStan 2.3.0 which is going to be released next week with the following highlights:

  • Massive leap in performance (again!)
  • Generics improvements (bidirectional type narrowing which closes #​6732 and dozens of duplicate issues)
  • Unused variables detection

Here's what new and changed in PHPStan 2.2.17:

Improvements 🔧

  • Compile PHP 8.6 turbo binaries against 8.6.0RC2 (#​6599)
  • Build Linux ZTS turbo binaries for PHP 8.6+ (#​6657)
  • Point method visibility errors at the method, not its first attribute (#​6630), #​14398, thanks @​Cayan!

Bugfixes 🐛

Performance 🏎️

Function signature fixes 🤖

  • Fix the return type of SessionHandler::read() to string|false (#​6639), thanks @​Firehed!

Internals 🔍

  • Load dead-code-detector in self-analysis only on PHP 8.2 and later (#​6591), thanks @​SanderMuller!
  • Mutation testing: diff against a configured branch, cover only the changed files (#​6664)
phpstan/phpstan-phpunit (Source: GitHub Releases))

2.1.1

  • 8d16b84 - AssertEmptyIsDiscouragedRule is auto-fixable (#​342)
  • b73700a - Make AssertSameWithCountRule auto-fixable (#​259)
  • ac3237e - Skip named and unpack arguments when autofixing

2.1.0

  • a31e9de - Merge remote-tracking branch 'origin/2.0.x' into 2.1.x
  • 626549b - Merge pull request #​336 from phpstan/renovate/github-actions
  • ca0a5ae - Update github-actions
  • c38f716 - Merge 2.0.x into 2.1.x
  • 0d17121 - AssertEmptyIsDiscouragedRule: use unique error identifier
  • 414a487 - feat: Discourage assert(Not)Empty if "empty" usage is disallowed (#​325)
  • 3320043 - Merge remote-tracking branch 'origin/2.0.x' into 2.1.x
  • ba569da - Name the node types DataProviderDataRule wants
  • e98eb3d - Require PHPStan 2.3.0
  • 33212d9 - Open 2.1.x-dev

2.0.21

  • 8dbdc3a - AssertEmptyIsDiscouragedRule: use unique error identifier

AssertEmptyIsDiscouragedRule: in case you are using PHPStan strict-rules assertEmpty: false option, you can ignore the newly added errors by error-identifier phpunit.assertEmpty.

2.0.20

  • ef0c8f5 - feat: Discourage assert(Not)Empty if "empty" usage is disallowed (#​325)

AssertEmptyIsDiscouragedRule: in case you are using PHPStan strict-rules assertEmpty: false option, you can ignore the newly added errors by error-identifier phpunit.assertEmpty.

phpunit/phpunit (Source: GitHub Releases))

10.5.66

Changed

  • The Software Bill of Materials (SBOM) embedded in the PHAR now uses CycloneDX 1.7 and provides the NTIA minimum elements as well as the data fields that BSI TR-03183-2 (version 2.1.0) requires for logical and identified components, including component creators, original, distribution and effective licences, source code URIs, and the PHP runtime and its extensions as external components

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

Keep up to date with PHPUnit:

rector/rector (Source: GitHub Releases))

2.7.0

New Rules ✨

  • Add TernaryToNullsafeCoalesceRector (#​8499)
  • Add BoolReturnTypeFromBooleanConstAndStrictReturnsRector for mixed const + strict bool returns (#​8498)
  • Add ConstructorReadonlyAssignToDefaultRector for readonly property defaults (#​8502)
  • Add RemoveOverriddenAssignBeforeIfElseRector (#​8505)

Performance Improvements 🚀

  • Cache class-like name resolution per file version in ShortNameResolver, so name import no longer rescans the whole file for every name - up to ~24 % fewer CPU instructions on large projects (#​8524)
  • Cache dry-run files whose FileDiff has no content change (#​8523)
  • Key the file cache on project-relative paths, so a cache survives a change of checkout (#​8490)
  • Use FileSystem::writeAtomic() in FileCacheStorage to avoid partial cache reads on parallel runs (#​8520)
  • Terminate timed-out and unconnected workers (#​8522)
  • Fix silently skipped files when the only worker is respawned (#​8521)
  • Give the worker the same NDJSON frame limit as the main process (#​8489)
  • Bump to PHPStan 2.3

Bugfixes 🐛

  • RenamePropertyRector: rename the property both in the trait and in the class property itself (#​8518)
  • RenameClassRector: throw on same old and new class in the configuration (#​8515)
  • ScalarParamTypeByMethodCallTypeRector: skip string param inference to avoid unsafe scalar coercion (#​8514)
  • RepeatedAndNotEqualToNotInArrayRector / RepeatedOrEqualToInArrayRector: skip short-circuit dependent values (#​8516)
  • SeparateMultiUseImportsRector: keep trait use adaptations (#​8510)
  • Privatize*Rector: drop the final flag when changing protected to private, since private final is forbidden on PHP 8.4 (#​8509)
  • AddNameToBooleanArgumentRector / AddNameToNullArgumentRector: skip callees marked @​no-named-arguments (#​8508)
  • TypedPropertyFromStrictConstructorRector: skip a protected property redeclared in a child class (#​8503)
  • RemoveAlwaysTrueIfConditionRector: skip a maybe-undefined variable (#​8501)
  • SingularSwitchToIfRector: skip nested break/continue in the case body (#​8500)
  • TypeDeclaration: skip redundant intersection types in union return types (#​8527)
  • Naming: keep mass nouns ending in data/info untouched when singularizing (#​8492)

rector-doctrine 🟠

  • Add DoctrineQueryBuilderSortDirectionRector (#​524)
  • Add DoctrineOrderByAttributeSortDirectionRector (#​525)
  • Register the SortDirection rules in the composer-based set and cover Expr\OrderBy::add() (#​530)
  • CorrectDefaultTypesOnEntityPropertyRector: support properties initialized as int (#​526)

rector-symfony 🎵

  • GetRequestRector: reuse an existing untyped $request param (#​1066)
  • CommandConfigureToAttributeRector: do not report a change when nothing is extracted (#​1068)
  • Fix PhpAstExtractor import removal in the composer-based Symfony set (#​1070)

rector-phpunit 🟢

  • Add WillReturnCallbackFallbackToReturnFalseRector (#​784)
  • Extend FlipAssertRector to more assert methods and expected value shapes (#​787)
  • AllowMockObjectsForDataProviderRector: skip stub-only ->method() calls (#​790)
  • Fix changing keys of data providers for tests with optional arguments (#​783)
  • Deprecate ConfiguredMockEntityToSetterObjectRector as experimental (#​789)

Task options

If you close the PR, the task will be skipped and Conductor will schedule the next task. Clicking the "Skip" button in the UI has the same effect. Conductor won't attempt to update the dependency to this exact version again but it will schedule updates to newer versions.


Powered by Private Packagist

@private-packagist

private-packagist Bot commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor Author

composer.lock

Dev Package changes

Package Operation From To About
phpstan/phpstan upgrade 2.2.16 2.3.1 diff
phpstan/phpstan-phpunit upgrade 2.0.19 2.1.1 diff
phpunit/phpunit upgrade 10.5.65 10.5.66 diff
rector/rector upgrade 2.6.7 2.7.0 diff

Settings · Docs · Powered by Private Packagist

@github-actions
github-actions Bot force-pushed the conductor-multiple-vendors-all-92983 branch from 93c9cfc to 9396697 Compare October 12, 2026 09:01
Conductor executed the following commands:
composer update phpstan/phpstan:2.3.1 phpstan/phpstan-phpunit:2.1.1 phpunit/phpunit:10.5.66 rector/rector:2.7.0 --with-all-dependencies --minimal-changes
@private-packagist
private-packagist Bot force-pushed the conductor-multiple-vendors-all-92983 branch from 9396697 to 5ca4548 Compare October 12, 2026 09:01
@private-packagist

Copy link
Copy Markdown
Contributor Author

The composer.lock diff comment has been updated to reflect new changes in this PR.

@pscheit
pscheit merged commit 0a03308 into main Oct 19, 2026
1 check passed
@private-packagist
private-packagist Bot deleted the conductor-multiple-vendors-all-92983 branch October 19, 2026 14:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant