-
Notifications
You must be signed in to change notification settings - Fork 1.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
refactor: split phpstan-baseline into smaller files #9299
base: develop
Are you sure you want to change the base?
refactor: split phpstan-baseline into smaller files #9299
Conversation
4f170cf
to
823f364
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I like this idea. Smaller baseline files seem like easier to deal with.
@@ -15,6 +15,8 @@ jobs: | |||
steps: | |||
- name: Checkout | |||
uses: actions/checkout@v4 | |||
with: | |||
fetch-depth: 0 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you explain why fetch-depth: 0
is needed?
It gets all commits, so it takes long time.
We should not use it as possible.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure what happened to composer, but it could no longer resolve codeigniter4/codeigniter4
as the same as codeigniter4/framework
. Upon checking, it seems composer needs to have the develop branch also checked out. By default, Github only checks out the head branch on PRs.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have pushed a different approach by fetching the base branch alongside the PR branch.
@paulbalandan By the way, i see this another error. Can you update rector to RC3? cc @samsonasik Run vendor/bin/rector process --dry-run --no-progress-bar
{
"title": "_PHPStan_e6dc705b2\\Nette\\Schema\\ValidationException",
"type": "_PHPStan_e6dc705b2\\Nette\\Schema\\ValidationException",
"code": 500,
"message": "Unexpected item 'parameters › shipmonkBaselinePerIdentifier'.",
"file": "phar:///home/runner/work/CodeIgniter4/CodeIgniter4/vendor/phpstan/phpstan/phpstan.phar/vendor/nette/schema/src/Schema/Processor.php",
"line": 75,
"trace": [
{
"file": "phar:///home/runner/work/CodeIgniter4/CodeIgniter4/vendor/phpstan/phpstan/phpstan.phar/vendor/nette/schema/src/Schema/Processor.php",
"line": 38,
"function": "throwsErrors",
"class": "_PHPStan_e6dc705b2\\Nette\\Schema\\Processor",
"type": "->"
},
{
"file": "phar:///home/runner/work/CodeIgniter4/CodeIgniter4/vendor/phpstan/phpstan/phpstan.phar/src/DependencyInjection/ContainerFactory.php",
"line": 216,
"function": "process",
"class": "_PHPStan_e6dc705b2\\Nette\\Schema\\Processor",
"type": "->"
},
{
"file": "phar:///home/runner/work/CodeIgniter4/CodeIgniter4/vendor/phpstan/phpstan/phpstan.phar/src/DependencyInjection/ContainerFactory.php",
"line": 104,
"function": "validateParameters",
"class": "PHPStan\\DependencyInjection\\ContainerFactory",
"type": "->"
},
{
"file": "/home/runner/work/CodeIgniter4/CodeIgniter4/vendor/rector/rector/src/NodeTypeResolver/DependencyInjection/PHPStanServicesFactory.php",
"line": 51,
"function": "create",
"class": "PHPStan\\DependencyInjection\\ContainerFactory",
"type": "->"
},
{
"function": "__construct",
"class": "Rector\\NodeTypeResolver\\DependencyInjection\\PHPStanServicesFactory",
"type": "->"
},
{
"file": "/home/runner/work/CodeIgniter4/CodeIgniter4/vendor/rector/rector/vendor/illuminate/container/Container.php",
"line": 844,
"function": "newInstanceArgs",
"class": "ReflectionClass",
"type": "->"
},
{
"file": "/home/runner/work/CodeIgniter4/CodeIgniter4/vendor/rector/rector/vendor/illuminate/container/Container.php",
"line": 705,
"function": "build",
"class": "RectorPrefix202411\\Illuminate\\Container\\Container",
"type": "->"
},
{
"file": "/home/runner/work/CodeIgniter4/CodeIgniter4/vendor/rector/rector/vendor/illuminate/container/Container.php",
"line": 652,
"function": "resolve",
"class": "RectorPrefix202411\\Illuminate\\Container\\Container",
"type": "->"
},
{
"file": "/home/runner/work/CodeIgniter4/CodeIgniter4/vendor/rector/rector/src/DependencyInjection/LazyContainerFactory.php",
"line": 273,
"function": "make",
"class": "RectorPrefix202411\\Illuminate\\Container\\Container",
"type": "->"
},
{
"file": "/home/runner/work/CodeIgniter4/CodeIgniter4/vendor/rector/rector/vendor/illuminate/container/Container.php",
"line": 807,
"function": "Rector\\DependencyInjection\\{closure}",
"class": "Rector\\DependencyInjection\\LazyContainerFactory",
"type": "::"
},
{
"file": "/home/runner/work/CodeIgniter4/CodeIgniter4/vendor/rector/rector/vendor/illuminate/container/Container.php",
"line": 705,
"function": "build",
"class": "RectorPrefix202411\\Illuminate\\Container\\Container",
"type": "->"
},
{
"file": "/home/runner/work/CodeIgniter4/CodeIgniter4/vendor/rector/rector/vendor/illuminate/container/Container.php",
"line": 652,
"function": "resolve",
"class": "RectorPrefix202411\\Illuminate\\Container\\Container",
"type": "->"
},
{
"file": "/home/runner/work/CodeIgniter4/CodeIgniter4/vendor/rector/rector/vendor/illuminate/container/Container.php",
"line": [9](https://github.com/codeigniter4/CodeIgniter4/actions/runs/12204169604/job/34048691307?pr=9299#step:11:10)47,
"function": "make",
"class": "RectorPrefix2024[11](https://github.com/codeigniter4/CodeIgniter4/actions/runs/12204169604/job/34048691307?pr=9299#step:11:12)\\Illuminate\\Container\\Container",
"type": "->"
},
{
"file": "/home/runner/work/CodeIgniter4/CodeIgniter4/vendor/rector/rector/vendor/illuminate/container/Container.php",
"line": 873,
"function": "resolveClass",
"class": "RectorPrefix202411\\Illuminate\\Container\\Container",
"type": "->"
},
{
"file": "/home/runner/work/CodeIgniter4/CodeIgniter4/vendor/rector/rector/vendor/illuminate/container/Container.php",
"line": 838,
"function": "resolveDependencies",
"class": "RectorPrefix202411\\Illuminate\\Container\\Container",
"type": "->"
},
{
"file": "/home/runner/work/CodeIgniter4/CodeIgniter4/vendor/rector/rector/vendor/illuminate/container/Container.php",
"line": 705,
"function": "build",
"class": "RectorPrefix202411\\Illuminate\\Container\\Container",
"type": "->"
},
{
"file": "/home/runner/work/CodeIgniter4/CodeIgniter4/vendor/rector/rector/vendor/illuminate/container/Container.php",
"line": 652,
"function": "resolve",
"class": "RectorPrefix202411\\Illuminate\\Container\\Container",
"type": "->"
},
{
"file": "/home/runner/work/CodeIgniter4/CodeIgniter4/vendor/rector/rector/vendor/illuminate/container/Container.php",
"line": 947,
"function": "make",
"class": "RectorPrefix202411\\Illuminate\\Container\\Container",
"type": "->"
},
{
"file": "/home/runner/work/CodeIgniter4/CodeIgniter4/vendor/rector/rector/vendor/illuminate/container/Container.php",
"line": 873,
"function": "resolveClass",
"class": "RectorPrefix202411\\Illuminate\\Container\\Container",
"type": "->"
},
{
"file": "/home/runner/work/CodeIgniter4/CodeIgniter4/vendor/rector/rector/vendor/illuminate/container/Container.php",
"line": 838,
"function": "resolveDependencies",
"class": "RectorPrefix202411\\Illuminate\\Container\\Container",
"type": "->"
},
{
"file": "/home/runner/work/CodeIgniter4/CodeIgniter4/vendor/rector/rector/vendor/illuminate/container/Container.php",
"line": 705,
"function": "build",
"class": "RectorPrefix202411\\Illuminate\\Container\\Container",
"type": "->"
},
{
"file": "/home/runner/work/CodeIgniter4/CodeIgniter4/vendor/rector/rector/vendor/illuminate/container/Container.php",
"line": 652,
"function": "resolve",
"class": "RectorPrefix202411\\Illuminate\\Container\\Container",
"type": "->"
},
{
"file": "/home/runner/work/CodeIgniter4/CodeIgniter4/vendor/rector/rector/vendor/illuminate/container/Container.php",
"line": 947,
"function": "make",
"class": "RectorPrefix202411\\Illuminate\\Container\\Container",
"type": "->"
},
{
"file": "/home/runner/work/CodeIgniter4/CodeIgniter4/vendor/rector/rector/vendor/illuminate/container/Container.php",
"line": 873,
"function": "resolveClass",
"class": "RectorPrefix202411\\Illuminate\\Container\\Container",
"type": "->"
},
{
"file": "/home/runner/work/CodeIgniter4/CodeIgniter4/vendor/rector/rector/vendor/illuminate/container/Container.php",
"line": 838,
"function": "resolveDependencies",
"class": "RectorPrefix202411\\Illuminate\\Container\\Container",
"type": "->"
},
{
"file": "/home/runner/work/CodeIgniter4/CodeIgniter4/vendor/rector/rector/vendor/illuminate/container/Container.php",
"line": 277,
"function": "build",
"class": "RectorPrefix202411\\Illuminate\\Container\\Container",
"type": "->"
},
{
"file": "/home/runner/work/CodeIgniter4/CodeIgniter4/vendor/rector/rector/vendor/illuminate/container/Container.php",
"line": 807,
"function": "RectorPrefix202411\\Illuminate\\Container\\{closure}",
"class": "RectorPrefix202411\\Illuminate\\Container\\Container",
"type": "->"
},
{
"file": "/home/runner/work/CodeIgniter4/CodeIgniter4/vendor/rector/rector/vendor/illuminate/container/Container.php",
"line": 705,
"function": "build",
"class": "RectorPrefix202411\\Illuminate\\Container\\Container",
"type": "->"
},
{
"file": "/home/runner/work/CodeIgniter4/CodeIgniter4/vendor/rector/rector/vendor/illuminate/container/Container.php",
"line": 652,
"function": "resolve",
"class": "RectorPrefix202411\\Illuminate\\Container\\Container",
"type": "->"
},
{
"file": "/home/runner/work/CodeIgniter4/CodeIgniter4/vendor/rector/rector/vendor/illuminate/container/Container.php",
"line": 496,
"function": "make",
"class": "RectorPrefix202411\\Illuminate\\Container\\Container",
"type": "->"
},
{
"function": "RectorPrefix202411\\Illuminate\\Container\\{closure}",
"class": "RectorPrefix202411\\Illuminate\\Container\\Container",
"type": "->"
},
{
"file": "/home/runner/work/CodeIgniter4/CodeIgniter4/vendor/rector/rector/vendor/illuminate/container/ContextualBindingBuilder.php",
"line": 72,
"function": "iterator_to_array"
},
{
"file": "/home/runner/work/CodeIgniter4/CodeIgniter4/vendor/rector/rector/vendor/illuminate/container/Util.php",
"line": 40,
"function": "RectorPrefix202411\\Illuminate\\Container\\{closure}",
"class": "RectorPrefix202411\\Illuminate\\Container\\ContextualBindingBuilder",
"type": "->"
},
{
"file": "/home/runner/work/CodeIgniter4/CodeIgniter4/vendor/rector/rector/vendor/illuminate/container/Container.php",
"line": 923,
"function": "unwrapIfClosure",
"class": "RectorPrefix202411\\Illuminate\\Container\\Util",
"type": "::"
},
{
"file": "/home/runner/work/CodeIgniter4/CodeIgniter4/vendor/rector/rector/vendor/illuminate/container/Container.php",
"line": 873,
"function": "resolvePrimitive",
"class": "RectorPrefix202411\\Illuminate\\Container\\Container",
"type": "->"
},
{
"file": "/home/runner/work/CodeIgniter4/CodeIgniter4/vendor/rector/rector/vendor/illuminate/container/Container.php",
"line": 838,
"function": "resolveDependencies",
"class": "RectorPrefix202411\\Illuminate\\Container\\Container",
"type": "->"
},
{
"file": "/home/runner/work/CodeIgniter4/CodeIgniter4/vendor/rector/rector/vendor/illuminate/container/Container.php",
"line": 705,
"function": "build",
"class": "RectorPrefix202411\\Illuminate\\Container\\Container",
"type": "->"
},
{
"file": "/home/runner/work/CodeIgniter4/CodeIgniter4/vendor/rector/rector/vendor/illuminate/container/Container.php",
"line": 652,
"function": "resolve",
"class": "RectorPrefix202411\\Illuminate\\Container\\Container",
"type": "->"
},
{
"file": "/home/runner/work/CodeIgniter4/CodeIgniter4/vendor/rector/rector/src/DependencyInjection/LazyContainerFactory.php",
"line": 245,
"function": "make",
"class": "RectorPrefix202411\\Illuminate\\Container\\Container",
"type": "->"
},
{
"file": "/home/runner/work/CodeIgniter4/CodeIgniter4/vendor/rector/rector/vendor/illuminate/container/Container.php",
"line": 807,
"function": "Rector\\DependencyInjection\\{closure}",
"class": "Rector\\DependencyInjection\\LazyContainerFactory",
"type": "::"
},
{
"file": "/home/runner/work/CodeIgniter4/CodeIgniter4/vendor/rector/rector/vendor/illuminate/container/Container.php",
"line": 705,
"function": "build",
"class": "RectorPrefix202411\\Illuminate\\Container\\Container",
"type": "->"
},
{
"file": "/home/runner/work/CodeIgniter4/CodeIgniter4/vendor/rector/rector/vendor/illuminate/container/Container.php",
"line": 662,
"function": "resolve",
"class": "RectorPrefix202411\\Illuminate\\Container\\Container",
"type": "->"
},
{
"file": "/home/runner/work/CodeIgniter4/CodeIgniter4/vendor/rector/rector/bin/rector.php",
"line": [12](https://github.com/codeigniter4/CodeIgniter4/actions/runs/12204169604/job/34048691307?pr=9299#step:11:13)9,
"function": "get",
"class": "RectorPrefix202411\\Illuminate\\Container\\Container",
"type": "->"
},
{
"file": "/home/runner/work/CodeIgniter4/CodeIgniter4/vendor/rector/rector/bin/rector",
"line": 5,
"args": [
"/home/runner/work/CodeIgniter4/CodeIgniter4/vendor/rector/rector/bin/rector.php"
],
"function": "require_once"
},
{
"file": "/home/runner/work/CodeIgniter4/CodeIgniter4/vendor/bin/rector",
"line": 1[19](https://github.com/codeigniter4/CodeIgniter4/actions/runs/12204169604/job/34048691307?pr=9299#step:11:20),
"args": [
"/home/runner/work/CodeIgniter4/CodeIgniter4/vendor/rector/rector/bin/rector"
],
"function": "include"
}
]
} Ref : https://github.com/codeigniter4/CodeIgniter4/actions/runs/12204169604/job/34048691307?pr=9299 |
Oh, I didn't notice that. But why does github actions not fail on that? |
Maybe shipmonk no catch exception, I think this related to shipmonk using |
83c8738
to
35b2a34
Compare
35b2a34
to
17ca6ee
Compare
disallowedBacktick: true | ||
disallowedEmpty: true | ||
disallowedImplicitArrayCreation: true | ||
disallowedShortTernary: true |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In phpstan-strict-rules v2, the disallowedConstructs
parameter was replaced by these toggles.
phpstan/phpstan-strict-rules@988fab9#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5R72
👋 Hi, @paulbalandan! |
Description
This PR splits our existing enormous
phpstan-baseline.php
into smaller baseline files named by their identifiers, thanks to https://github.com/shipmonk-rnd/phpstan-baseline-per-identifier/tree/2.0.0. Currently, the baseline contains 4,052 errors. That's very overwhelming to fix. TBH, when looking at the baseline I cannot continue further because of the bulk of technical debt we have.The pro of this approach is that we can attack the baseline by identifier, making the cleanup less overwhelming. The cleanup would be bite-sized. The con of this approach is that we have too many baselines now, but that is the consequence of having 4k+ errors.
Same command to generate the baseline:
composer phpstan:baseline
P.S I have fixed some of the files as PHPStan complains of
No error to ignore
stuff.Checklist: