SAP / generator-easy-ui5

Meta-generator various project types within the UI5 Universe
https://blogs.sap.com/2021/04/09/easy-ui5-3.0-from-community-contributions-to-community-plugins/
Apache License 2.0
243 stars 72 forks source link

Enable UI5 library development #61

Closed geert-janklaps closed 3 years ago

geert-janklaps commented 3 years ago

I created a custom generator to generate an initial template for UI5 library development. (more info here) Initially I was thinking, library development is quite different from regular app development. So wasn't planning on proposing to integrate this functionality in the Easy UI5 Generator. But I got some questions / remarks on Twitter to get this functionality integrated within the Easy UI5 Generator. Is this an option to integrate this functionality in the Easy UI5 Generator? Is this a direction you want to take with this project?

It will probably require quite some adaptions to the project, since the project structure of a library is quite different from an app (namespaced folder structure). So before doing a deep-dive in the possibilities of integrating this functionality, I'd like to hear you opinion on this topic.

IObert commented 3 years ago

Thanks for opening this issue and starting the discussion.

I have had plans to support the developer of customer libraries for a while now so I think such an extension would be really great! This OS project doesn't have a narrow path and all sorts of contributions are welcome. The only "guideline" I try to follow is the KISS principle: The generated code should relieve the user of boilerplate code but don't dump 100s loc into a project that are not needed. I had a look at your current generator and it seems that you are already doing this (which is great 👍).

I'm not sure if it would be better to have (a) a prompt in the "main generator" to ask whether a library or an application should be generated or (b) to do this as a subgenerator. We can discuss this here if you want but I'm also ok to follow whatever you suggest.

PS: It might make sense to reuse or replace the new control subgenerator as it also creates a new control (within an application).

geert-janklaps commented 3 years ago

Well, I think we're on the same page here! What I was thinking of was following:

If that's working already, we can start to gradually enable some of the sub generators for library development. (I think the main changes will be the change in folder structure compared to app development, which just uses the webapp folder)

I would aim to enable as much as possible sub generators (the ones that are relevant for library development) for reuse, which I hope will reduce maintenance in the long run. (since we're not going to have to maintain some of those generators twice)

IObert commented 3 years ago

Sounds like a plan! Thanks a lot!

michga commented 3 years ago

Seems like it's now available there: https://github.com/ui5-community/generator-ui5-library

vobu commented 3 years ago

yes! although we (aka ui5-community admins + @geert-janklaps) are yet quiet about it (due to missing documentation and follow-through), this will be the place where the generator will live and thrive 😺

geert-janklaps commented 3 years ago

yes! although we (aka ui5-community admins + @geert-janklaps) are yet quiet about it (due to missing documentation and follow-through), this will be the place where the generator will live and thrive 😺

Actually I had a meeting with Peter and Marius last week. Peter is looking into a way to integrate generators using a scaffolding technique. (so we don't have to integrate the separate generator into Easy-UI5 directly, which also opens up the opportunity to integrate future generators) Peter was going to schedule a follow up meeting this week with Marius to determine the way forward.

Not sure what type of additional documentation you're missing?

vobu commented 3 years ago

yes! although we (aka ui5-community admins + @geert-janklaps) are yet quiet about it (due to missing documentation and follow-through), this will be the place where the generator will live and thrive 😺

Actually I had a meeting with Peter and Marius last week. Peter is looking into a way to integrate generators using a scaffolding technique. (so we don't have to integrate the separate generator into Easy-UI5 directly, which also opens up the opportunity to integrate future generators) Peter was going to schedule a follow up meeting this week with Marius to determine the way forward.

Not sure what type of additional documentation you're missing?

comment was not targeted towards you, sorry for the misunderstanding. instead was meant toward what you're referring to - no documentation yet on how the formula easy-ui5 + ui5-community repos + scaffolding is going to work out. ideas and suggestions are there, but Peter is at the helm for this now.

geert-janklaps commented 3 years ago

yes! although we (aka ui5-community admins + @geert-janklaps) are yet quiet about it (due to missing documentation and follow-through), this will be the place where the generator will live and thrive 😺

Actually I had a meeting with Peter and Marius last week. Peter is looking into a way to integrate generators using a scaffolding technique. (so we don't have to integrate the separate generator into Easy-UI5 directly, which also opens up the opportunity to integrate future generators) Peter was going to schedule a follow up meeting this week with Marius to determine the way forward. Not sure what type of additional documentation you're missing?

comment was not targeted towards you, sorry for the misunderstanding. instead was meant toward what you're referring to - no documentation yet on how the formula easy-ui5 + ui5-community repos + scaffolding is going to work out. ideas and suggestions are there, but Peter is at the helm for this now.

No worries, just wanted to make sure you were up to date. Which you were already, so that's great we're all on the same page here!

IObert commented 3 years ago

I'll close the issue now as the easy-ui5 plugin is already flying. Thanks for your contribution everyone!