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
More Problems API Feedback #28999
Comments
This issue needs a decision from the team responsible for that area. They have been informed. Response time may vary. |
@Arthurm1 Thank you for the feedback, we really appreciate it! Regarding, The problem aggregation is very similar story. It was introduced to deal with large quantities of problems reported. The intention is also to provide a smooth experience: provide a few problems to the client while the build is running, and send the rest at the end. How many compiler warnings is too little or too much is something we can reconsider. I'm interested in your feedback here. Also, seems like you are vested in this topic but I cannot seem to find you on the Gradle Community slack channel. I encourage you to join. You can get an invite here. With that, we'd have a directly line of communication. |
Follow-up issues created; I'm closing this one. |
Expected Behavior
Some feedback on the Problems API which would make it easier to use from an IDE perspective...
For Java errors/warnings, the
ProblemAggregationEvent#getProblemAggregation#.getProblemContext#get(XX)#getLocations
used to contain aTaskPathLocation
(I think it was in Gradle 8.6?). It no longer does (Gradle 8.8)Could this be put back in?
It allows me to work out exactly what Project/SourceSet the problem relates to. E.g. if I can see the TaskPath is something like
:foo:compileTestJava
then I know it's projectFoo
sourceSettest
.My only other way of working this out is to extract the
FileLocation#getPath
and then iterate through all projects/sourcesets' source directories and see if they are parent paths of theFileLocation
which is very slow when there's a large number of projects and/or large number of warnings/errors.Could the
AggregatingProblemConsumer#thresholdForIntermediateSummary
be set from some Gradle/Project/System property? Currently it's set to 10_000. If I can set it to 1 (so it's effectively turned off) then I wouldn't have to handleProblemAggregationEvent
at all, onlySingleProblemEvent
.The advantage to me is that I get problems as the projects are compiled, rather than at the end. The IDE has a nicer feel when you're compiling and you see errors/warnings appear as you go rather than getting no feedback until after compilation is finished.
It also means that I don't have to worry about any changes to the
ProblemAggregation
API.Also -
SingleProblemEvents
are sent before theFinishEvent
is sent which makes it easier to know when to create summary information about problems (e.g. total warning/error count per project/sourceset) whereasProblemAggregationEvents
are sent after the taskpath they are reporting on has already sent aFinishEvent
Why does the Problem Aggregation exist? For performance reasons?
Current Behavior (optional)
No response
Context
Trying to give the best IDE experience to the user when reporting info from the Problems API.
The text was updated successfully, but these errors were encountered: