Closed danepowell closed 6 months ago
Attention: 20 lines
in your changes are missing coverage. Please review.
Comparison is base (
6d963af
) 91.30% compared to head (c1fce4c
) 91.27%.
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
I'm frequently discouraged from adding new commands if they would require adding a new dependency to the service container, since this requires adding the dependency to our already-massive CommandBase constructor as well as all the places its invoked. This is a pain to maintain.
And of course, there are performance considerations in building a service container with every possible dependency for every possible command every time the application is run.
It would be a lot better to only inject the dependencies necessary for a specific command when that command is run. This PR sets a precedent for that pattern and makes some progress by removing the Guzzle Client and Logstream Manager as base dependencies.
I'd really love to kill the CommandBase entirely, but I haven't figured out how to handle dependencies that are universal or nearly-universal, such as the Telemetry and Credentials helpers.