ChromaticHQ / usher

Custom Robo commands for use on PHP projects.
https://packagist.org/packages/chromatic/usher
11 stars 6 forks source link

Update dependency rector/rector to v1 #201

Closed renovate[bot] closed 5 months ago

renovate[bot] commented 7 months ago

Mend Renovate

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
rector/rector (source) ^0.16.0 \|\| ^0.17.0 \|\| ^0.18.0 \|\| ^0.19.0 -> ^0.16.0 \|\| ^0.17.0 \|\| ^0.18.0 \|\| ^0.19.0 \|\| ^1.0.0 age adoption passing confidence

Release Notes

rectorphp/rector (rector/rector) ### [`v1.0.2`](https://togithub.com/rectorphp/rector/releases/tag/1.0.2): Released Rector 1.0.2 [Compare Source](https://togithub.com/rectorphp/rector/compare/1.0.1...1.0.2) #### New Features and changes :partying_face: - Add minimal memory limit for local run phpstan without result cache ([#​5624](https://togithub.com/rectorphp/rector-src/pull/5624)), Thanks [@​integer](https://togithub.com/integer)! - Add method RectorConfigBuilder::withSkipPath() ([#​5626](https://togithub.com/rectorphp/rector-src/pull/5626)), Thanks [@​integer](https://togithub.com/integer)! - Add basic validation for skipped path ([#​5628](https://togithub.com/rectorphp/rector-src/pull/5628)), Thanks [@​integer](https://togithub.com/integer)! - \[Php80] Add DoctrineCoverterterAttributeDecorator to convert "false"/"true" string to false/true on nullable arg on Doctrine\ORM\Mapping\Column ([#​5629](https://togithub.com/rectorphp/rector-src/pull/5629)) - Add const fetch to class const fetch rector. ([#​5627](https://togithub.com/rectorphp/rector-src/pull/5627)), Thanks [@​micaherne](https://togithub.com/micaherne)! - \[DX] Add error message information for include full path to load internal phpstan bleedingEdge.neon config ([#​5635](https://togithub.com/rectorphp/rector-src/pull/5635)) - \[TypeDeclaration] Adds AddParamTypeForFunctionLikeWithinCallLikeArgDeclarationRector rule ([#​5547](https://togithub.com/rectorphp/rector-src/pull/5547)), Thanks [@​peterfox](https://togithub.com/peterfox)! - \[Php83] Add type to final class constant ([#​5662](https://togithub.com/rectorphp/rector-src/pull/5662)), Thanks [@​philbates35](https://togithub.com/philbates35)!
#### Bugfixes :bug: - \[Php83] Early check private method in child before check parent on AddOverrideAttributeToOverriddenMethodsRector ([#​5622](https://togithub.com/rectorphp/rector-src/pull/5622)) - RectorConfigBuilder: skip and rules can be called multiple times ([#​5623](https://togithub.com/rectorphp/rector-src/pull/5623)), Thanks [@​integer](https://togithub.com/integer)! - \[CodeQuality] Skip not autoloaded parent class on CompleteDynamicPropertiesRector ([#​5636](https://togithub.com/rectorphp/rector-src/pull/5636)) - \[Transform] Allow transform ruleWithConfiguration() to withConfiguredRule() on RectorConfigBuilderRector ([#​5637](https://togithub.com/rectorphp/rector-src/pull/5637)) - \[Rector] Allow transform sets() to withSets() on RectorConfigBuilderRector ([#​5638](https://togithub.com/rectorphp/rector-src/pull/5638)) - \[Transform] Allow transform disableParallel() to withoutParallel() on RectorConfigBuilderRector ([#​5640](https://togithub.com/rectorphp/rector-src/pull/5640)) - \[Transform] Allow transform fileExtensions() to withFileExtensions() ([#​5641](https://togithub.com/rectorphp/rector-src/pull/5641)) - \[Performance] \[VendorLocker] Early allow change return type on private method on ClassMethodReturnTypeOverrideGuard::shouldSkipClassMethod() ([#​5642](https://togithub.com/rectorphp/rector-src/pull/5642)) - \[VendorLocker] Early return false on private method on ParentClassMethodTypeOverrideGuard::hasParentClassMethod() ([#​5644](https://togithub.com/rectorphp/rector-src/pull/5644)) - \[Renaming] Handle crash on RenameFunctionRector with die() and $\_SESSION usage ([#​5646](https://togithub.com/rectorphp/rector-src/pull/5646)) - Cleanup scope check on UnreachableStatementNodeVisitor ([#​5648](https://togithub.com/rectorphp/rector-src/pull/5648)) - Keep comments in annotations when converting them to attributes ([#​5650](https://togithub.com/rectorphp/rector-src/pull/5650)), Thanks [@​carlos-granados](https://togithub.com/carlos-granados)! - \[Util] Make consistent new line splitter to Util ([#​5651](https://togithub.com/rectorphp/rector-src/pull/5651)) - \[TypeDeclaration] Fix abs() returns on ReturnTypeFromStrictTypedCallRector ([#​5652](https://togithub.com/rectorphp/rector-src/pull/5652)) - \[TypeDeclaration] Allow abs() to return int when pass int arg on ReturnTypeFromStrictTypedCallRector ([#​5653](https://togithub.com/rectorphp/rector-src/pull/5653)) - \[TypeDeclaration] Skip possible returns false on ReturnTypeFromStrictNewArrayRector ([#​5654](https://togithub.com/rectorphp/rector-src/pull/5654)) - \[TypeDeclaration] Include MockObject\&ClassName docblock with IntersectionTypeNode on TypedPropertyFromStrictSetUpRector ([#​5655](https://togithub.com/rectorphp/rector-src/pull/5655)) - \[Renaming] New Rule: RenameFunctionLikeParamWithinCallLikeArgRector ([#​5554](https://togithub.com/rectorphp/rector-src/pull/5554)), Thanks [@​peterfox](https://togithub.com/peterfox)! - \[PHPStanStaticTypeMapper] Avoid double \ prefix on IntersectionTypeMapper ([#​5656](https://togithub.com/rectorphp/rector-src/pull/5656)) - \[BetterPhpDocParser] Clean up unnecessary create new ConstFetchNode() on ArrayItemClassNameDecorator ([#​5658](https://togithub.com/rectorphp/rector-src/pull/5658)) - \[Php71] Skip re-assign as string on AssignArrayToStringRector ([#​5659](https://togithub.com/rectorphp/rector-src/pull/5659)) - \[Privatization] Skip with suffix "TestCase" on FinalizeTestCaseClassRector ([#​5660](https://togithub.com/rectorphp/rector-src/pull/5660)) - \[Php71] Skip re-assign as string on AssignArrayToStringRector part 2 ([#​5661](https://togithub.com/rectorphp/rector-src/pull/5661)) - \[DeadCode] Fix infinite loop on RemoveDeadStmtRector + RemoveUnusedVariableAssignRector ([#​5666](https://togithub.com/rectorphp/rector-src/pull/5666)) - \[Php81] Skip execution operator on NullToStrictStringFuncCallArgRector ([#​5667](https://togithub.com/rectorphp/rector-src/pull/5667)) - \[Naming] Handle crash with numeric-string doc on RenamePropertyToMatchTypeRector ([#​5670](https://togithub.com/rectorphp/rector-src/pull/5670)) - \[CodeQuality] Handle crash on named arg on deep closure on OptionalParametersAfterRequiredRector ([#​5671](https://togithub.com/rectorphp/rector-src/pull/5671)) - chore: bump min version of github actions (fix deprecations) ([#​5675](https://togithub.com/rectorphp/rector-src/pull/5675)), Thanks [@​Chris53897](https://togithub.com/Chris53897)! - \[PHP 8.0] Fix case insenstive false positive replacement for str_ends_with ([#​5677](https://togithub.com/rectorphp/rector-src/pull/5677)) - \[Transform] Allow transform phpVersion() to withPhpVersion() on RectorConfigBuilderRector ([#​5678](https://togithub.com/rectorphp/rector-src/pull/5678)) - Fix duplicated fixture class name on StaticToSelfStaticMethodCallOnFinalClassRector test ([#​5679](https://togithub.com/rectorphp/rector-src/pull/5679)) - \[CodeQuality] Skip nested array on InlineArrayReturnAssignRector ([#​5680](https://togithub.com/rectorphp/rector-src/pull/5680)) - \[CodeQuality] Skip combine var with property fetch on InlineArrayReturnAssignRector ([#​5681](https://togithub.com/rectorphp/rector-src/pull/5681)) - \[CodeQuality] Handle array destructuring of unpack on ArrayMergeOfNonArraysToSimpleArrayRector ([#​5682](https://togithub.com/rectorphp/rector-src/pull/5682)) - Update README to use the new config syntax ([#​5674](https://togithub.com/rectorphp/rector-src/pull/5674)), Thanks [@​carlos-granados](https://togithub.com/carlos-granados)! - \[PostRector] Skip remove use statement on used in annotation on removeUnusedImports() ([#​5657](https://togithub.com/rectorphp/rector-src/pull/5657)) - \[DeadCode] Skip implements interface \__construct() on RemoveUnusedPromotedPropertyRector ([#​5669](https://togithub.com/rectorphp/rector-src/pull/5669)) - \[Performance] \[DeadCode] Early check no params in \__construct() on RemoveUnusedPromotedPropertyRector ([#​5672](https://togithub.com/rectorphp/rector-src/pull/5672)) ### [`v1.0.1`](https://togithub.com/rectorphp/rector/releases/tag/1.0.1): Released Rector 1.0.1 [Compare Source](https://togithub.com/rectorphp/rector/compare/1.0.0...1.0.1) #### New Features :partying_face: - \[Custom] Add "detect-node" command to help with writing custom rules ([#​5576](https://togithub.com/rectorphp/rector-src/pull/5576)) - \[Config] Add registerService() method to allow container extension ([#​5591](https://togithub.com/rectorphp/rector-src/pull/5591)) - \[TypeDeclaration] Add AddTestsVoidReturnTypeWhereNoReturnRector ([#​5611](https://togithub.com/rectorphp/rector-src/pull/5611)) - \[PHP 8.0] Add always class to AnnotationToAttribute to include string to ::class reference conversion ([#​5619](https://togithub.com/rectorphp/rector-src/pull/5619)) - \[CodeQuality] Add StaticToSelfStaticMethodCallOnFinalClassRector ([#​5621](https://togithub.com/rectorphp/rector-src/pull/5621))
#### Bugfixes :bug: - ExplicitBoolCompareRector: skip phpdoc ([#​5567](https://togithub.com/rectorphp/rector-src/pull/5567)), Thanks [@​staabm](https://togithub.com/staabm)! - Fix ArrayTypeMapper to handle arrays with UnionType items ([#​8225](https://togithub.com/rectorphp/rector/issues/8225)) ([#​5568](https://togithub.com/rectorphp/rector-src/pull/5568)), Thanks [@​pkvach](https://togithub.com/pkvach)! - \[Configuration] Fix detect /vendor on root project on vendor analyzed on VendorMissAnalyseGuard ([#​5569](https://togithub.com/rectorphp/rector-src/pull/5569)) - Fix missing / suffix on VendorMissAnalyseGuard ([#​5571](https://togithub.com/rectorphp/rector-src/pull/5571)) - \[PHP81] Skip after is_string on object call on NullToStrictStringFuncCallArgRector ([#​5572](https://togithub.com/rectorphp/rector-src/pull/5572)) - \[Config] Make sure only one of type-declaration/dead-code or with\*Level() is used to avoid duplicates ([#​5578](https://togithub.com/rectorphp/rector-src/pull/5578)) - Fix undefined MHASH_\* constant on running downgrade from php 8.0 ([#​5585](https://togithub.com/rectorphp/rector-src/pull/5585)) - \[NodeTypeResolver] Ignore PHPStan internal error on PHPStanNodeScopeResolver on NodeScopeResolver::processNodes() ([#​5586](https://togithub.com/rectorphp/rector-src/pull/5586)) - \[Php81] Skip possible array on NullToStrictStringFuncCallArgRector ([#​5587](https://togithub.com/rectorphp/rector-src/pull/5587)) - \[Php81] Skip another possible cast array to string on NullToStrictStringFuncCallArgRector ([#​5589](https://togithub.com/rectorphp/rector-src/pull/5589)) - \[Transform] Allow class const fetch value on rules() on RectorConfigBuilderRector ([#​5596](https://togithub.com/rectorphp/rector-src/pull/5596)) - \[Performance] Use strlen() early before loop on VendorMissAnalyseGuard ([#​5597](https://togithub.com/rectorphp/rector-src/pull/5597)) - Copy subtype phpdoc on ClassPropertyAssignToConstructorPromotionRector ([#​8438](https://togithub.com/rectorphp/rector/issues/8438)) ([#​5603](https://togithub.com/rectorphp/rector-src/pull/5603)), Thanks [@​pkvach](https://togithub.com/pkvach)! - config method must be static, to avoid creating rule before loading related ctor services ([#​5606](https://togithub.com/rectorphp/rector-src/pull/5606)) - fix config for configured rule (https://github.com/rectorphp/rector-src/commit/5edb023974a55b0efee74dd9fe92b314dd521f2c) - \[PHP 8.0] Fix annotation to attribute in case of FQN class without () ([#​5609](https://togithub.com/rectorphp/rector-src/pull/5609)) - \[Php80] Support windows new line line DoctrineAnnotationDecorator::LONG_ANNOTATION_REGEX ([#​5610](https://togithub.com/rectorphp/rector-src/pull/5610)) - \[Php81] Handle after open parentheses on AnnotationToAttributeRector ([#​5613](https://togithub.com/rectorphp/rector-src/pull/5613)) - \[BetterPhpDocParser] Move split new line with @​\ to regex to support windows new line ([#​5615](https://togithub.com/rectorphp/rector-src/pull/5615)) - \[Php81] Handle nested Fqcn UniqueConstraint on NestedAnnotationToAttributeRector ([#​5614](https://togithub.com/rectorphp/rector-src/pull/5614)) - \[DX] Accept Y/y for confirmation of init config ([#​5616](https://togithub.com/rectorphp/rector-src/pull/5616)) - \[CodeQuality] Skip private static call from static:: on LocallyCalledStaticMethodToNonStaticRector ([#​5620](https://togithub.com/rectorphp/rector-src/pull/5620)) - \[PostRector] Skip remove unused imports on used in multiple docs in single node ([#​5604](https://togithub.com/rectorphp/rector-src/pull/5604)) - \[DeadCode] Skip sub type false => bool on RemoveUselessVarTagRector ([#​5588](https://togithub.com/rectorphp/rector-src/pull/5588))
#### Removed :skull: - \[DeadCode] Skip with magic \__get() on RemoveUnusedPromotedPropertyRector ([#​5573](https://togithub.com/rectorphp/rector-src/pull/5573)) - \[DX] Remove phpstan strict rules to ease contributing ([#​5579](https://togithub.com/rectorphp/rector-src/pull/5579)) - \[DX] Remove type covarege, as handled by phpstan itself ([#​5583](https://togithub.com/rectorphp/rector-src/pull/5583)) - \[DeadCode] Handle used in assign return on RemoveUnusedPrivatePropertyRector ([#​5608](https://togithub.com/rectorphp/rector-src/pull/5608)) ### [`v1.0.0`](https://togithub.com/rectorphp/rector/releases/tag/1.0.0): Released Rector 1.0.0 🎉🎉🎉 [Compare Source](https://togithub.com/rectorphp/rector/compare/0.19.8...1.0.0) The stable Rector version is here. It was about time and we've done all planned changes by the end of 2023.
What could be better time and place to release a stable Rector than [live on stage during talk](https://twitter.com/christophrumpel/status/1754862081600332020) :tada:
While this release brings stable API, it will be easier to stay up to date as well. The 1.x versioning behaves as expected with `composer update` (compared to special 0.x). Our main focus **is on improving developers experience**. **This release brings new features that help with custom rules writing, adding Rector to CI and adding Rector to any legacy project in general**.
Some features are partially available in previous version, but we'd like to highligh them because since 1.0 you can use them all together.
#### Zen Config with Autocomplete If you run Rector for the first time, it will create a `rector.php` config with your project paths for you. In past we used various class constants references to add commonly used rule sets. This required knowledge about these classes and was often missed. We've changed this to work with single configuration class. It provides autocomplete for available sets, including attributes: ```php use Rector\Config\RectorConfig; return RectorConfig::configure() ->withPreparedSets(codeQuality: true, codingStyle: true) ->withAttributesSets(symfony: true, doctrine: true) ->withPaths([ __DIR__ . '/src', __DIR__ . '/tests', ]) ->withRootFiles(); ```
#### PHP Sets Automated To keep up to date with you PHP, now you can use single method: ```php use Rector\Config\RectorConfig; return RectorConfig::configure() ->withPhpSets(); ``` It learns about PHP version from your `composer.json` and will always keep sync with your required PHP version. No need to double check `rector.php` configuration anymore.
#### Streamline Integration to Projects We're also adding 2 experimental methods, that make Rector integration to new projects easier. Before, you could run whole type declaration or read code set, see 1000 changed files and rather close it being overwhelmed. Instead, we want to take it slow, as we do with our custom upgrades as well: ```php use Rector\Config\RectorConfig; return RectorConfig::configure() ->withTypeCoverageLevel(10) ->withDeadCodeLevel(10) ``` Now you can improve your code base one rule at a time. The rules are sorted from the easiest to integrate, e.g. add `void` to closure, to more complex one. That way you can improve your code base in your own pace. We're collecting feedback on rule order, so the levels will likely change.
#### New and Improved Commands - We added a new command to generate bare custom rule files and structure for you: ```bash vendor/bin/rector custom-rule ``` Call the command, type the rule name and rule, its test and composer autoload is generated for you. So you can focus on the contents of `refactor()` method.
- We improve the command, that generates Github and Gitlab CI setup files, so you can let Rector work for you: ```bash vendor/bin/rector setup-ci ``` The command handles generic setup for you and then guides you to register needed access.

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.



This PR has been generated by Mend Renovate. View repository job log here.

ghost commented 7 months ago
👇 Click on the image for a new way to code review #### [![Review these changes using an interactive CodeSee Map](https://s3.us-east-2.amazonaws.com/maps.codesee.io/images/github/ChromaticHQ/usher/201/cc1daa85/418e225d3b24356188f5c7a81c45a6e3de64e826.svg)](https://app.codesee.io/r/reviews?pr=201&src=https%3A%2F%2Fgithub.com%2FChromaticHQ%2Fusher) #### Legend CodeSee Map legend
mmatsoo commented 5 months ago

I tested this by requiring this specific branch, composer require chromatic/usher:dev-renovate/rector-rector-1.x, in another project's PR and that PR built successfully, so I'm only unsure of the tagging/release methodology we prefer to use here.

renovate[bot] commented 5 months ago

Edited/Blocked Notification

Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.

You can manually request rebase by checking the rebase/retry box above.

Warning: custom changes will be lost.