I'm a noob to Grails so sorry for the basic questi...
# questions
p
I'm a noob to Grails so sorry for the basic question but I am updating a profile to Grails 6. Are profiles still supported? The cmd line command create-profile is no longer a valid command.
m
No, profiles are no longer supported in Grails 6.
p
What is the recommended replacement for them then?
g
There isn't a replacement as such it was removed when the new CLI was created which also back the new forge site. I was told that this was done to make things more maintable , but this was lost in that upgrade.
p
I think the concept of
ApplicationType
is somewhat similar but not the drop-in replacement for profiles.
m
This is a very bad decision, I have to complain about this every time 💔
If there is any chance of returning again, I propose to hold a poll and see what everyone wants 🙋‍♂️
s
We only really saw profiles useful for bootstrapping, which not many use cases have this running regularly, so I say leave them gone in favour of maintenance ease.
m
Create app by using your own project templates with custom features, commands, Profiles could be private or public
But profile is the one thing of Grails Shell, also known as CLI, CLI is more powerful and flexible than the Grails Forge (new CLI)
Old CLI also includes Groovy Shell and Console, the interactive console is awesome and available in the very beginning of Grails
What’s the maintenance issue, would you like to share some details about it?
s
I was quoting the: > I was told that this was done to make things more maintable So I don't know what the detail of that initial concern might have been. Although having to keep a feature going and house "special" maven bundles for a feature that is only used at bootstrap by a majority is not a good business decision IMO. I've been a user of grails for around 13 years now and I'm very familiar with all the CLI implementations/features that have come and gone. If profiles were useful after bootstrap we might have missed them. But we never found them so, and in fact use Gradle directly, rather than the CLI at all, after the project bootstrap. Given the project is open source, you could still maintain your own profiles and a fork of the old CLI if it's that important to you.
m
I have a different point of view than you, I think it may come with the whole development and debugging,deployment process, not just the project bootstrapping, depending on how well you utilize it. It's an open tool in itself, we can customize and extend it.
I know it's open source, and I have forked it all, and it's working fine now. But I wanted to communicate that this is exactly how open source collaboration works.https://github.com/grace-profiles
I've heard a lot of feedback from developers about this feature, but the answer everyone gives is that it’s removed and no alternative. But why?
So why Graeme created before and why it was removed now by the team?
s
I've heard a lot of feedback from developers about this feature, but the answer everyone gives is that it’s removed and no alternative. But why?
Yeah I don't think they owe us an explanation. We use free software. The people maintaining it decided that they wanted to remove a feature (although extensible) doesn't have much use beyond the initial create utilisation. And they did so in a Major version to make their life easier in some way.
m
It’s open source but not free, why they build it and why we use it?why we talk about it?
s
It’s open source but not free
Of course it's free. You don't pay to use it. Only the associated costs of hosting whatever you build with it.
why they build it? why we talk about it?
It was likely born out of a business case like many things. If they no longer have a use for it then they are well within their rights to remove it from their core. It can become a module/alternative maintained outside the core the core like many other things. Just because a few users have used or are using it isn't a reason for them to keep maintaining it, hosting the libs, for everyone else to use for free, when they themselves have no need for it. There's been a noticeable shift in attitudes around open source over the last 10 years or so. People expect their usages to be supported by the orgs gifting the world free code. Maybe instead of suggesting that OCI et al host/maintain this, you could offer to take it on and maintain it seeing as you have need for it.
g
I'm putting this up as context of what I remember from what I've heard. I don't really want to debate it one way or the other here. However it would probably be a good thing to bring up as the next Grails planing meeting , if it hasn't been already. Regardless I think for the sake of Grails the first priority would be to get it up to date with depdencies first, and then address issues like this, just my opinion I do not speak for the people that have been in the planing meetings, as so far I have been unable to attend. Ok from what I the Grails team at the time this was decided was just @puneetbehl with maybe some community help from a couple of people periodically. I can only imagine being the only full-time developer on a project as big and expansive as Grails. You have to plan features, implement features, fix bugs, evaluate/give feedback on pull requests, merge pull requests, deal with any consequences of those merges, update documentation, update plugins, do releases of Grails core and all of its underlying plugins, trying to get community members involved, etc. That is a lot to put on one person but Puneet did it and did it enthusiasitcly. Little over a year ago I think Puneet saw that I was answer questions on Slack and invited me to a weekly engineering meeting. When I first started attending there were a couple of other community members but as time went on, for quite a few meetings is was just Puneet and I talking about Grails. Again from what I was told and understood the old CLI and forge site was a pain to maintain and Puneet wanted to "upgrade" it to something new that would be easier for him to maintain, taking the ideas from the micronaut site and making it so everything was initiated through gradle rather than maintaining two ways of doing things the CLI and gradle. Now I could be wrong but I thought the console and shell were still accisible through Gradle commands.. Unfortuentely from this upgrade you lost the profiles and things like the Angular and Vue profiles and provided integration with those technologies. Towards the end of last year, Puneet finally started getting more help, which I though was good to see, but didn't know how short lived it would be. I know there was talk coming from @zacharyaklein about possibly bringing some of those profiles back under the new CLI, as he started joining the meeting periodically, but I don't think he ever found the time to do that.
👍 1
🙏 1
m
Thank you for providing so much background information. There is a meaning behind every technological choice. Sometimes we choose to change, and sometimes we choose to stick to it. These are not easy. I am not trying to deny them by questioning them, but we need to understand the motivations behind them.
I forked and maintain all the Profiles, I know the pain, but I've found better ways to improve them.
Now, based on the information you provided, we know that Grails Forge also intends to implement similar features in Application Profiles, but there are not enough resources and time to do so. This information is very important and is very helpful.
I also just submitted a draft about CLI and Profiles, hope to discuss it.
I have created two videos to show some ideas here, use Groovy Ant to write template scripts, and also could be applied to the project
m
@Michael Yan That looks like a really easy and powerful way to create and apply application templates 💡
m
Thanks for the feedback, it's still in development and more options will be supported.
🔥 Grace Application Templates supports hooks, execute Groovy Scripts at specific stages during the project generation process. so you can customize the generated project structure and execute initial setup tasks. ❤️ https://x.com/graceframework/status/1817422220617998754
I’m glad to share this good news for Grails developers, you can create Grails apps using Grace CLI with all of the features available in Grace 2023. https://github.com/graceframework/grace-framework/issues/425
Copy code
grace create-app <http://grails.apps.blog|grails.apps.blog> --grace-version=6.2.0
grace create-app <http://grails.apps.blog|grails.apps.blog> --grace-version=5.3.6
grace create-app <http://grails.apps.blog|grails.apps.blog> --grace-version=5.2.6
grace create-app <http://grails.apps.blog|grails.apps.blog> --grace-version=5.1.10
grace create-app <http://grails.apps.blog|grails.apps.blog> --grace-version=5.0.3
grace create-app <http://grails.apps.blog|grails.apps.blog> --grace-version=4.1.4
grace create-app <http://grails.apps.blog|grails.apps.blog> --grace-version=4.0.13
grace create-app <http://grails.apps.blog|grails.apps.blog> --grace-version=3.3.18
grace create-app <http://grails.apps.blog|grails.apps.blog> --grace-version=3.2.12
grace create-app <http://grails.apps.blog|grails.apps.blog> --grace-version=3.1.16
🎉 1
❤️ 1
partygrails 2