-
-
Notifications
You must be signed in to change notification settings - Fork 29
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
Upgrade to Micronaut 4 #289
Conversation
Added a bug bounty to try and move this along. @mshima Do blueprint changes need to be made for v8? If so, is there a guide I can use to make those changes? |
@mraible documentation is been written in jhipster/generator-jhipster#23305.
We should cherry-pick last commit and start from there. |
I will take a look. |
Conflict time! |
Yes, indeed @mraible . I see @mshima has been quite busy! It looks like the important bits for upgrading to JHipster 8 have been merged from this branch already and then much more work already done to get everything up and running using the existing Micronaut 3.10 back-end bits. Awesome! It seems to me that a fresh start (a new branch based of the new main with all of @mshima's updates) is warranted for the Micronaut 4 upgrade part, perhaps cherry-picking some more of the server template bits from this branch as needed (my updates to I will see if I can carve out some time for that sometime in the next few weeks. In the meantime, if anyone else is eager to tackle it, the best workflow I can recommend would be to take the Micronaut 3.10 backend that is being generated and run our OpenRewrite recipes on it (they should get you at least 95% of the way there - I think there is something they miss due to some peculiarities with your build files, but forget what it was off the top of my head), get the app back into a running state, and then reverse-engineer the necessary template changes from there. See https://micronaut.io/2023/07/14/upgrade-to-micronaut-framework-4-with-openrewrite-and-gradle/ and https://micronaut.io/2023/07/14/upgrade-to-micronaut-framework-4-with-openrewrite-and-maven/ for the OpenRewrite instructions, and https://micronaut.io/2023/05/09/upgrade-to-micronaut-framework-4-0-0/ for the manual approach (good for understanding the upgrade process and catching anything missed by the recipes). |
@jeremyg484 What's your workload like these days? I'm happy to try and fix this or collaborate with you on it. Please let me know your preference! |
@mraible Sorry, I just noticed the notification for this. I've still got my hands pretty full with other Micronaut stuff at the moment. I'll have to discuss it within the foundation first, but perhaps I can make some time after we get 4.2.0 out. That said, no guarantees at the moment as far as my being able to primarily drive this imminently, so if you'd like to go ahead and take the lead, I can definitely keep my eye on things and make myself available to provide any feedback and guidance as needed. |
I can try to fix conflicts and move it forward. First wanted to try the current state based on jh7 and if we can make native images work. |
@atomfrede is there a reason for use jh7 instead of jh8 support that landed in main? |
Ah sorry I meant using main, thought it was on jh7 but you are right.
…On Wed, Nov 8, 2023, 21:26 Marcelo Shima ***@***.***> wrote:
@atomfrede <https://github.com/atomfrede> is there a reason for use jh7
instead of jh8 support that landed in main?
—
Reply to this email directly, view it on GitHub
<#289 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AABRVCJFEMTH6B4FMNRSA5DYDPTH7AVCNFSM6AAAAAA4VMS2QCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQMBSGYYDAMBWGY>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
@atomfrede Do you have time to resolve the conflicts in this PR? If you don't, I can take a look on Friday. |
Sorry @mraible pretty sure I don't have enough time till next week. |
@mraible Did you start already? If not I can have a look on tuesday or wednesday evening |
I haven't started, but I should have time in the next 24 hours. |
@atomfrede @jeremyg484 @mshima I just finished merging |
I will try it when the children are sleeping. |
@mraible I tried codespaces, but it seems I can't push changes to @jeremyg484 branch. How did you manage to update the PR? Anyways, I have changed following, which might help to fix maven compilation errors at least |
@atomfrede I committed and pushed your changes. I was able to update the PR by adding a |
Usually I do that too, but this time I tried devcontainers :) Maybe not a good idea |
Co-authored-by: Frederik Hahne <[email protected]>
I don't have permission in this repo. I will create a new PR. |
@mraible @atomfrede @jeremyg484 I am not sure how we should split this bounty. |
I don't feel like I did a whole lot on this one, so I'm happy to remove myself from the bounty. My feeling is that @jeremyg484 did a lot of work to get things to work with Micronaut 4 and @mshima did a lot to get it upgraded to JHipster 8. I might be wrong. |
Same here, I think I did not very much to be honest (at least I can't remember any significant stuff). |
@DanielFran bug bounty claimed https://opencollective.com/generator-jhipster/expenses/233110 |
@mshima approved |
I have made some significant progress towards migrating the blueprint to JHipster 8 Beta 3 and Micronaut 4, but it is still very rough and there is quite a bit of work that will yet need to be done. At the moment, I have other Micronaut work that will need to take priority, but I wanted to go ahead and get this pushed up as a starting point for anyone who may be interested in taking up the work and making further progress.
I have marked the PR as a draft for now since it is still rather incomplete. The ideal thing to do might be to merge this work into a public
jhipster 8
feature branch rather than leaving it hanging here in this PR, in order to make it easier for anyone else interested to collaborate. Let me know what ya'll would prefer and I can change the PR settings accordingly.The current status:
mhipster jdl default
for the moment. Just getting to this baseline with JHipster 8 proved to be quite a bit of work, but I think further updates will be easier now that this foundation is in place.Futher work that needs to be done:
Fully merge the Micronaut 4 Gradle configuration with the latest JHipster Gradle config. The generated Gradle files have been updated for Micronaut 4, but are still based on the JHipster 7 config.
Restore the blueprint-specific CLI prompts - I had temporarily disabled them in the process of upgrading to JHipster 8.
Get an actual running app working. :) I've been focused on just getting the basic output (equivalent to the JHipster 7 version) correct and haven't been testing the full running application. There is much to be done there, I think, to get everything fully functional and bring it to parity with the default JHipster 8 apps. I suspect there is a good bit more refactoring that will need to be done to the code that is being generated.
I will need to turn my attention to other Micronaut projects for the time being, but for anyone who is interested in trying to make further progress, I will keep an eye on things here and will be happy to chime in if any guidance is needed specific to the details of Micronaut.