-
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
Change decompiler from quiltflower to vineflower #35610
Conversation
🙈 The PR is closed and the preview is expired. |
This comment has been minimized.
This comment has been minimized.
@yrodiere the failure above is an OOM for metaspace so it looks like we are not done with it, unfortunately... |
Oh we certainly aren't... I just hoped the problem was mitigated just enough that we don't see it anymore. But indeed it seems we can still see it, so I'll have to have another look... someday... |
Thanks for this. Have you tried it to make sure it decompiles the code? |
I have downloaded the code.quarkus.io basic app to test it and it worked. |
I assume you mean both with 3.3 and with the PR, correct? |
I only tested with the pr i.e. 999-SNAPSHOT. I would assume that 3.3 wont work without the pr as the repo url changed, unless you already have it downloaded in your ~/.quarkus |
That's fine, thanks. |
I checked and there is a redirection between the old project and the new one. If we are following the redirects when downloading it should be good. Now I think we should probably move to a Maven Central URL such as |
6f38f0c
to
73e6847
Compare
73e6847
to
aa7425b
Compare
Done and retested. |
*/ | ||
@ConfigItem | ||
public QuiltFlowerConfig quiltflower; | ||
public VineFlowerConfig vineflower; |
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.
How about renaming it to something future-proof? decompiler
perhaps?
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 think it's somewhat meant to be futureproof in the sense you could have support for multiple decompilers for example the config is quarkus.package.vineflower.enabled=true
maybe there could be support for another one this way? quarkus.package.my-other-decompiler.enabled=true
. I may be wrong though!
a bit what I could gather from the code in #25729 where both fernflower and quiltflower could coexist
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.
The reason I ask is that I never know the config to enable the compiler without looking at the docs. quarkus.package.decompiler.enabled=true
is cleaner (to me at least) 😄
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.
a bit what I could gather from the code in #25729 where both fernflower and quiltflower could coexist
Right, and I believe this is the reason why @geoand made it that way. I'm afraid that removing the config option would make existing users a bit annoyed, so perhaps deprecating (for removal) quarkus.package.quiltflower
in favor of quarkus.package.vineflower
may be better in this case
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.
But I am still leaning towards having quarkus.package.decompiler.enabled
, given I doubt anybody cares about the decompiler used in practice :)
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.
So is there a consensus here? :)
In my opinion, having both config, with the deprecated one is more or less useful as there isn't extreme adaptation to be made. On quarkus update, when looking at the migration it would be quite clear, vs deprecating, it, then doing it in some other release, not like if a behaviour changed underneath. As per quarkus.package.decompiler.enabled
, I do like it, but definitely not my call! I can adapt to what you guys decide.
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'd like to keep the decompiler name for the time being.
@@ -1589,7 +1589,7 @@ public boolean downloadIfNecessary() { | |||
return true; | |||
} | |||
String downloadURL = String.format( | |||
"https://github.com/QuiltMC/quiltflower/releases/download/%s/quiltflower-%s.jar", | |||
"https://repo.maven.apache.org/maven2/org/vineflower/vineflower/%s/vineflower-%s.jar", |
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 we somehow use the Maven resolver APIs here? I fear that this may not work in environments with a firewall, but maybe it can be revisited in a future PR
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 am not exactly sure what that means as I have never used it. I wouldn't mind looking into it in another PR to have less risks in that one. For my comprehension, would it be about fetching the jar during build so it can be used form the MAVEN_HOME when needed? Or like currently download as needed via something like shrinkwrap/resolver (this does not seem to help with firewall though)?
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 would argue this is exactly similar to what it used to be. So let's not make @manofthepeace 's life harder than it needs to be.
If no future versions of quiltflower are expected, then this is okay. |
This comment has been minimized.
This comment has been minimized.
aa7425b
to
d044e9b
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 think this is good and we can merge it, thanks.
QuiltFlower became VineFlower https://github.com/Vineflower
Where's Quiltflower?
Last version of quiltflower was 1.9.0 (https://github.com/Vineflower/vineflower/releases/tag/1.9.0)
see: https://quiltmc.org/en/blog/2023-07-09-quiltflower-is-now-vineflower/
This is a 'somewhat' breaking change as it removes the possibility of using quiltflower/older versions of quiltflower