-
Notifications
You must be signed in to change notification settings - Fork 2.7k
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
Continuous testing gets messed up when stashing/unstashing changesets that have changes to tests #28376
Comments
/cc @stuartwdouglas |
Any thoughts anyone? |
Any thoughts to what this might be? @geoand ? |
Not really unfortunately |
Is there anyone who can take a look at this? When I'm demoing Quarkus and I have some changes "pre-baked" as a stashed commit, I have to stop the Quarkus app, unstash my changes, then restart my Quarkus app. I've had people ask me "how come you have to restart dev mode & continuous testing? I though live coding meant you never had to restart it?" If it helps I could probably put together a more trivial reproducer. |
Can you test out the linked PR? |
Hi @stuartwdouglas - the linked PR does not solve the problem (unless I did something wrong...) This is what I did to test it:
|
Hi @gsmet - why did you close this issue? The PR which was linked does not solve the issue... |
Fixes quarkusio#28376 (cherry picked from commit 868a4c9)
So the remaining issue is actually an annotation processor/mapstruct issue, basically a duplicate of #1502. |
I wonder if there is an automated way to solve this. It might be a bit involved but basically:
|
Interesting. Honestly I didn't even think about that, nor did I realize that annotation processors weren't picked up/re-run in dev mode. How does dev mode work with Panache? isn't the |
Annotation processors work fine if the class being processed is the class being changed. For panache it works on the entity itself, if you change the entity the entity is recompiled and the processor is run. In this case the Hero is changed but HeroMapper is not, and HeroMapper is the class that the annotation processor runs against. Modify the mappers as well would result in this working. The only way we could fix this would be to try and expand the list of files to recompile, either by having an extension provide this information, or some kind of best effort automated approach like I have proposed above. |
Wouldn't that be better than what is there now? |
Fixes quarkusio#28376 (cherry picked from commit 868a4c9)
Describe the bug
When continuous testing is turned on, I notice that if I stash (or unstash) a change set that contains changes to the source code and/or test code, continuous testing gets messed up. I have to quit dev mode and re-run it in order for it to then work right again.
I recorded a video of the behavior (I couldn't attach it because it was too big, so I put it on YouTube):
https://youtu.be/oDd93zDj4Is
Its almost like continuous testing doesn't see the changes to the tests (but it does the
main
source set) and therefore the tests no longer compile (even though they should).Here is the entire console output from when the change set is stashed (it was too long for GitHub to allow me to post it, so I put it in a .txt file):
continuous testing error after stashing.txt
Expected behavior
I would expect after stashing/unstashing changes that continuous testing would pick up the new changes.
Actual behavior
Continuous testing gets messed up somehow and I need to completely quit dev mode and restart it in order for it to continue working properly.
How to Reproduce?
I was using the Hero service from the Quarkus superheroes application.
Here is a patch file containing the change set I had applied on top of the super heroes
main
branch:Changes_to_powers_-_hero_service.txt
I applied that patch then started dev mode & turned on continuous testing. Then I stashed/shelved that patch and boom.
Output of
uname -a
orver
Output of
java -version
GraalVM version (if different from Java)
No response
Quarkus version or git rev
2.13.0.Final
Build tool (ie. output of
mvnw --version
orgradlew --version
)Additional information
No response
The text was updated successfully, but these errors were encountered: