Skip to content
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

Exception clean up #1079

Merged
merged 5 commits into from
Jan 18, 2023
Merged

Exception clean up #1079

merged 5 commits into from
Jan 18, 2023

Conversation

patrickkusebauch
Copy link
Collaborator

@patrickkusebauch patrickkusebauch commented Jan 13, 2023

Closes #988

  • Clean up unused exceptions
  • Ensure all custom exceptions implement ExceptionInterface
  • Ensure all custom exceptions use a static factory method
  • Replace overly generic or vague exceptions with dedicated exceptions or better fitting ones, especially ShouldNotHappenException
  • Add helpful error messages to raised exception
  • Declare which exceptions are expected to be thrown using @throws in the doc block
  • Psalm config
  • PHPStan config

@patrickkusebauch patrickkusebauch self-assigned this Jan 13, 2023
Notes:
 - `YmlFileLoader` seems to be unused?
 - Sometimes exceptions are thrown in constructors of classes that are created by Symfony DIC. Therefore, they are practically unchecked.
@patrickkusebauch
Copy link
Collaborator Author

patrickkusebauch commented Jan 13, 2023

Notes:

  • YmlFileLoader seems to be unused?
  • Sometimes exceptions are thrown in constructors of classes that are created by Symfony DIC. Therefore, they are practically unchecked.
  • Psalm does not support @throws void for cases you are sure the exception cannot be thrown (see: Idea: @psalm-never-throw, alike to @psalm-pure, but promises to not throw/warn vimeo/psalm#2912). So this bloats the Psalm baseline file
  • PHPStan baseline has cases I just could not be bothered to fix. Either would require extensive refactoring or just cannot be easily suppressed inline.
  • I am not any good at writing user-friendly exception messages. This can be done in another pass by someone else.
  • BC break, because new/different/previously unexposed exceptions are now exposed in the contract.

@patrickkusebauch patrickkusebauch marked this pull request as ready for review January 14, 2023 18:48
@patrickkusebauch patrickkusebauch changed the title Extension clean up Exception clean up Jan 14, 2023
Copy link
Collaborator

@dbrumann dbrumann left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks a lot! That is really helpful. I didn't know phpstan could report unchecked exceptions. I really like that as well 👍

@dbrumann dbrumann merged commit 26bb356 into qossmic:main Jan 18, 2023
@patrickkusebauch patrickkusebauch deleted the feature/exceptions branch January 18, 2023 17:23
github-merge-queue bot referenced this pull request in Lendable/aggregate May 23, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [qossmic/deptrac](https://togithub.com/qossmic/deptrac) |
`^2.0.0-alpha` -> `^2.0.0` |
[![age](https://developer.mend.io/api/mc/badges/age/packagist/qossmic%2fdeptrac/2.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/packagist/qossmic%2fdeptrac/2.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/packagist/qossmic%2fdeptrac/2.0.0-alpha/2.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/packagist/qossmic%2fdeptrac/2.0.0-alpha/2.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>qossmic/deptrac (qossmic/deptrac)</summary>

### [`v2.0.0`](https://togithub.com/qossmic/deptrac/releases/tag/2.0.0)

[Compare
Source](https://togithub.com/qossmic/deptrac/compare/2.0.0-alpha...2.0.0)

#### What's Changed

- Bundle open dependency updates together by
[@&#8203;dbrumann](https://togithub.com/dbrumann) in
[https://github.com/qossmic/deptrac/pull/1070](https://togithub.com/qossmic/deptrac/pull/1070)
- Exception clean up by
[@&#8203;patrickkusebauch](https://togithub.com/patrickkusebauch) in
[https://github.com/qossmic/deptrac/pull/1079](https://togithub.com/qossmic/deptrac/pull/1079)
- Extension documentation by
[@&#8203;patrickkusebauch](https://togithub.com/patrickkusebauch) in
[https://github.com/qossmic/deptrac/pull/867](https://togithub.com/qossmic/deptrac/pull/867)
- Installation guide improved and aligned. by
[@&#8203;d4s6](https://togithub.com/d4s6) in
[https://github.com/qossmic/deptrac/pull/1076](https://togithub.com/qossmic/deptrac/pull/1076)
- Bump phpunit/phpunit from 9.5.27 to 9.5.28 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/qossmic/deptrac/pull/1080](https://togithub.com/qossmic/deptrac/pull/1080)
- Bump phpstan/phpstan-symfony from 1.2.19 to 1.2.20 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/qossmic/deptrac/pull/1081](https://togithub.com/qossmic/deptrac/pull/1081)
- Bump phpstan/phpstan from 1.9.11 to 1.9.13 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/qossmic/deptrac/pull/1083](https://togithub.com/qossmic/deptrac/pull/1083)
- Use getOption instead getParameterOption on config file by
[@&#8203;maciejkosiarski](https://togithub.com/maciejkosiarski) in
[https://github.com/qossmic/deptrac/pull/1089](https://togithub.com/qossmic/deptrac/pull/1089)
- Fix --help doesn't work if deptrac.yaml file is missing issue by
[@&#8203;maciejkosiarski](https://togithub.com/maciejkosiarski) in
[https://github.com/qossmic/deptrac/pull/1088](https://togithub.com/qossmic/deptrac/pull/1088)
- Mutation coverage improvements by
[@&#8203;patrickkusebauch](https://togithub.com/patrickkusebauch) in
[https://github.com/qossmic/deptrac/pull/1090](https://togithub.com/qossmic/deptrac/pull/1090)
- Override --help input option and add throws annotation according to
psalm audit by
[@&#8203;maciejkosiarski](https://togithub.com/maciejkosiarski) in
[https://github.com/qossmic/deptrac/pull/1092](https://togithub.com/qossmic/deptrac/pull/1092)
- Bump phpstan/phpstan from 1.9.13 to 1.9.17 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/qossmic/deptrac/pull/1111](https://togithub.com/qossmic/deptrac/pull/1111)
- Bump phpstan/phpdoc-parser from 1.15.3 to 1.16.1 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/qossmic/deptrac/pull/1110](https://togithub.com/qossmic/deptrac/pull/1110)
- Bump friendsofphp/php-cs-fixer from 3.13.2 to 3.14.4 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/qossmic/deptrac/pull/1109](https://togithub.com/qossmic/deptrac/pull/1109)
- Bump phpunit/phpunit from 9.5.28 to 9.6.3 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/qossmic/deptrac/pull/1107](https://togithub.com/qossmic/deptrac/pull/1107)
- Bump symfony/dependency-injection from 6.2.3 to 6.2.6 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/qossmic/deptrac/pull/1108](https://togithub.com/qossmic/deptrac/pull/1108)
- Bump phpstan/phpstan-symfony from 1.2.20 to 1.2.23 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/qossmic/deptrac/pull/1106](https://togithub.com/qossmic/deptrac/pull/1106)
- Bump symfony/finder from 6.2.3 to 6.2.5 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/qossmic/deptrac/pull/1093](https://togithub.com/qossmic/deptrac/pull/1093)
- Bump symfony/console from 6.2.3 to 6.2.5 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/qossmic/deptrac/pull/1101](https://togithub.com/qossmic/deptrac/pull/1101)
- Bump symfony/filesystem from 6.2.0 to 6.2.5 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/qossmic/deptrac/pull/1100](https://togithub.com/qossmic/deptrac/pull/1100)
- Bump symfony/yaml from 6.2.2 to 6.2.5 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/qossmic/deptrac/pull/1099](https://togithub.com/qossmic/deptrac/pull/1099)
- Bump symfony/event-dispatcher from 6.2.2 to 6.2.5 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/qossmic/deptrac/pull/1097](https://togithub.com/qossmic/deptrac/pull/1097)
- Bump symfony/config from 6.2.0 to 6.2.5 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/qossmic/deptrac/pull/1095](https://togithub.com/qossmic/deptrac/pull/1095)
- Bump symfony/options-resolver from 6.2.0 to 6.2.5 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/qossmic/deptrac/pull/1094](https://togithub.com/qossmic/deptrac/pull/1094)
- Bump nikic/php-parser from 4.15.2 to 4.15.3 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/qossmic/deptrac/pull/1087](https://togithub.com/qossmic/deptrac/pull/1087)
- Updating Result generation by
[@&#8203;patrickkusebauch](https://togithub.com/patrickkusebauch) in
[https://github.com/qossmic/deptrac/pull/1091](https://togithub.com/qossmic/deptrac/pull/1091)
- Code hardening - solving baseline issues in SA tools by
[@&#8203;patrickkusebauch](https://togithub.com/patrickkusebauch) in
[https://github.com/qossmic/deptrac/pull/1103](https://togithub.com/qossmic/deptrac/pull/1103)
- \[rector] Prepare PHP 7.2 downgrade + scoped release with Rector by
[@&#8203;TomasVotruba](https://togithub.com/TomasVotruba) in
[https://github.com/qossmic/deptrac/pull/1113](https://togithub.com/qossmic/deptrac/pull/1113)
- Updated CollectorInterface namespace in docs by
[@&#8203;ariddlestone](https://togithub.com/ariddlestone) in
[https://github.com/qossmic/deptrac/pull/1120](https://togithub.com/qossmic/deptrac/pull/1120)
- Better Violations by
[@&#8203;patrickkusebauch](https://togithub.com/patrickkusebauch) in
[https://github.com/qossmic/deptrac/pull/1105](https://togithub.com/qossmic/deptrac/pull/1105)
- Update configuration.md typo by
[@&#8203;gusdeboer](https://togithub.com/gusdeboer) in
[https://github.com/qossmic/deptrac/pull/1140](https://togithub.com/qossmic/deptrac/pull/1140)
- Update dependencies by
[@&#8203;dbrumann](https://togithub.com/dbrumann) in
[https://github.com/qossmic/deptrac/pull/1141](https://togithub.com/qossmic/deptrac/pull/1141)
- Implement ConfigBuilder by
[@&#8203;gennadigennadigennadi](https://togithub.com/gennadigennadigennadi)
in
[https://github.com/qossmic/deptrac/pull/1002](https://togithub.com/qossmic/deptrac/pull/1002)
- Add performance counters to ConsoleSubsriber by
[@&#8203;rubenrubiob](https://togithub.com/rubenrubiob) in
[https://github.com/qossmic/deptrac/pull/1162](https://togithub.com/qossmic/deptrac/pull/1162)
- Migrated `debug:unused` command from deptrac-awesome by
[@&#8203;patrickkusebauch](https://togithub.com/patrickkusebauch) in
[https://github.com/qossmic/deptrac/pull/1164](https://togithub.com/qossmic/deptrac/pull/1164)
- Migrated `debug:dependencies` command from deptrac-awesome by
[@&#8203;patrickkusebauch](https://togithub.com/patrickkusebauch) in
[https://github.com/qossmic/deptrac/pull/1165](https://togithub.com/qossmic/deptrac/pull/1165)
- Combine updates by [@&#8203;dbrumann](https://togithub.com/dbrumann)
in
[https://github.com/qossmic/deptrac/pull/1171](https://togithub.com/qossmic/deptrac/pull/1171)
- Sort make targets and introduce help by
[@&#8203;dbrumann](https://togithub.com/dbrumann) in
[https://github.com/qossmic/deptrac/pull/1176](https://togithub.com/qossmic/deptrac/pull/1176)
- Composer Collector by
[@&#8203;patrickkusebauch](https://togithub.com/patrickkusebauch) in
[https://github.com/qossmic/deptrac/pull/1174](https://togithub.com/qossmic/deptrac/pull/1174)
- PoC blog by
[@&#8203;patrickkusebauch](https://togithub.com/patrickkusebauch) in
[https://github.com/qossmic/deptrac/pull/1178](https://togithub.com/qossmic/deptrac/pull/1178)
- add docker setup and move cache-files into .cache/ by
[@&#8203;gennadigennadigennadi](https://togithub.com/gennadigennadigennadi)
in
[https://github.com/qossmic/deptrac/pull/1185](https://togithub.com/qossmic/deptrac/pull/1185)
- [#&#8203;1158](https://togithub.com/qossmic/deptrac/issues/1158) -
only read file once for filereader by
[@&#8203;gennadigennadigennadi](https://togithub.com/gennadigennadigennadi)
in
[https://github.com/qossmic/deptrac/pull/1192](https://togithub.com/qossmic/deptrac/pull/1192)
- [#&#8203;1158](https://togithub.com/qossmic/deptrac/issues/1158) -
only init new ComposerFileParser once per composer.lock by
[@&#8203;gennadigennadigennadi](https://togithub.com/gennadigennadigennadi)
in
[https://github.com/qossmic/deptrac/pull/1193](https://togithub.com/qossmic/deptrac/pull/1193)
- Call `SuperGlobalToken::allowedNames()` just once by
[@&#8203;staabm](https://togithub.com/staabm) in
[https://github.com/qossmic/deptrac/pull/1198](https://togithub.com/qossmic/deptrac/pull/1198)
- Removing deprecations and other clean-up for new Major release by
[@&#8203;patrickkusebauch](https://togithub.com/patrickkusebauch) in
[https://github.com/qossmic/deptrac/pull/1175](https://togithub.com/qossmic/deptrac/pull/1175)
- Bump composer dep by
[@&#8203;gennadigennadigennadi](https://togithub.com/gennadigennadigennadi)
in
[https://github.com/qossmic/deptrac/pull/1216](https://togithub.com/qossmic/deptrac/pull/1216)
- add php-cs-fixer rule "single_line_empty_body" by
[@&#8203;gennadigennadigennadi](https://togithub.com/gennadigennadigennadi)
in
[https://github.com/qossmic/deptrac/pull/1217](https://togithub.com/qossmic/deptrac/pull/1217)
- Closes
[https://github.com/qossmic/deptrac/issues/1191](https://togithub.com/qossmic/deptrac/issues/1191)
by [@&#8203;patrickkusebauch](https://togithub.com/patrickkusebauch) in
[https://github.com/qossmic/deptrac/pull/1204](https://togithub.com/qossmic/deptrac/pull/1204)
- fix [#&#8203;1226](https://togithub.com/qossmic/deptrac/issues/1226) -
skipped multiple violations in one file by
[@&#8203;gennadigennadigennadi](https://togithub.com/gennadigennadigennadi)
in
[https://github.com/qossmic/deptrac/pull/1227](https://togithub.com/qossmic/deptrac/pull/1227)
- "deptrac" as composer bin by
[@&#8203;gennadigennadigennadi](https://togithub.com/gennadigennadigennadi)
in
[https://github.com/qossmic/deptrac/pull/1238](https://togithub.com/qossmic/deptrac/pull/1238)
- do not crash the GraphViz formatter if no config is given by
[@&#8203;xabbuh](https://togithub.com/xabbuh) in
[https://github.com/qossmic/deptrac/pull/1251](https://togithub.com/qossmic/deptrac/pull/1251)
- Dev dependencies upgrade (PHPUnit & Psalm) by
[@&#8203;patrickkusebauch](https://togithub.com/patrickkusebauch) in
[https://github.com/qossmic/deptrac/pull/1252](https://togithub.com/qossmic/deptrac/pull/1252)
- Docs: exclude_files also works on directories by
[@&#8203;staabm](https://togithub.com/staabm) in
[https://github.com/qossmic/deptrac/pull/1262](https://togithub.com/qossmic/deptrac/pull/1262)
- Prevent excessive php-doc parsing in FileReferenceVisitor by
[@&#8203;staabm](https://togithub.com/staabm) in
[https://github.com/qossmic/deptrac/pull/1199](https://togithub.com/qossmic/deptrac/pull/1199)
- Composer collector exception when package does not exist by
[@&#8203;maciejkosiarski](https://togithub.com/maciejkosiarski) in
[https://github.com/qossmic/deptrac/pull/1279](https://togithub.com/qossmic/deptrac/pull/1279)
- Update dep by
[@&#8203;gennadigennadigennadi](https://togithub.com/gennadigennadigennadi)
in
[https://github.com/qossmic/deptrac/pull/1280](https://togithub.com/qossmic/deptrac/pull/1280)
- Fix typo in the docs by
[@&#8203;jdreesen](https://togithub.com/jdreesen) in
[https://github.com/qossmic/deptrac/pull/1281](https://togithub.com/qossmic/deptrac/pull/1281)
- Add creating of cache directory if not exists by
[@&#8203;alexander-schranz](https://togithub.com/alexander-schranz) in
[https://github.com/qossmic/deptrac/pull/1302](https://togithub.com/qossmic/deptrac/pull/1302)
- Remove dollar signs from readme.md console examples by
[@&#8203;that-guy-iain](https://togithub.com/that-guy-iain) in
[https://github.com/qossmic/deptrac/pull/1325](https://togithub.com/qossmic/deptrac/pull/1325)
- Bump PHP Parser version to support PHP 8.3 by
[@&#8203;benr77](https://togithub.com/benr77) in
[https://github.com/qossmic/deptrac/pull/1342](https://togithub.com/qossmic/deptrac/pull/1342)
- bump composer.lock by
[@&#8203;gennadigennadigennadi](https://togithub.com/gennadigennadigennadi)
in
[https://github.com/qossmic/deptrac/pull/1344](https://togithub.com/qossmic/deptrac/pull/1344)
- WIP: test scoped release by
[@&#8203;gennadigennadigennadi](https://togithub.com/gennadigennadigennadi)
in
[https://github.com/qossmic/deptrac/pull/1352](https://togithub.com/qossmic/deptrac/pull/1352)
- update by
[@&#8203;gennadigennadigennadi](https://togithub.com/gennadigennadigennadi)
in
[https://github.com/qossmic/deptrac/pull/1406](https://togithub.com/qossmic/deptrac/pull/1406)

#### New Contributors

- [@&#8203;d4s6](https://togithub.com/d4s6) made their first
contribution in
[https://github.com/qossmic/deptrac/pull/1076](https://togithub.com/qossmic/deptrac/pull/1076)
- [@&#8203;maciejkosiarski](https://togithub.com/maciejkosiarski) made
their first contribution in
[https://github.com/qossmic/deptrac/pull/1089](https://togithub.com/qossmic/deptrac/pull/1089)
- [@&#8203;TomasVotruba](https://togithub.com/TomasVotruba) made their
first contribution in
[https://github.com/qossmic/deptrac/pull/1113](https://togithub.com/qossmic/deptrac/pull/1113)
- [@&#8203;ariddlestone](https://togithub.com/ariddlestone) made their
first contribution in
[https://github.com/qossmic/deptrac/pull/1120](https://togithub.com/qossmic/deptrac/pull/1120)
- [@&#8203;gusdeboer](https://togithub.com/gusdeboer) made their first
contribution in
[https://github.com/qossmic/deptrac/pull/1140](https://togithub.com/qossmic/deptrac/pull/1140)
- [@&#8203;rubenrubiob](https://togithub.com/rubenrubiob) made their
first contribution in
[https://github.com/qossmic/deptrac/pull/1162](https://togithub.com/qossmic/deptrac/pull/1162)
- [@&#8203;jdreesen](https://togithub.com/jdreesen) made their first
contribution in
[https://github.com/qossmic/deptrac/pull/1281](https://togithub.com/qossmic/deptrac/pull/1281)
- [@&#8203;alexander-schranz](https://togithub.com/alexander-schranz)
made their first contribution in
[https://github.com/qossmic/deptrac/pull/1302](https://togithub.com/qossmic/deptrac/pull/1302)
- [@&#8203;that-guy-iain](https://togithub.com/that-guy-iain) made their
first contribution in
[https://github.com/qossmic/deptrac/pull/1325](https://togithub.com/qossmic/deptrac/pull/1325)
- [@&#8203;benr77](https://togithub.com/benr77) made their first
contribution in
[https://github.com/qossmic/deptrac/pull/1342](https://togithub.com/qossmic/deptrac/pull/1342)

**Full Changelog**:
qossmic/deptrac@1.0.2...2.0.0

</details>

---

### Configuration

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

🚦 **Automerge**: Enabled.

♻ **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.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/Lendable/aggregate).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zNjguMTAiLCJ1cGRhdGVkSW5WZXIiOiIzNy4zNjguMTAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Improve error handling
2 participants