-
Notifications
You must be signed in to change notification settings - Fork 28
RFC: Consider rolling our own project generation tool #168
Comments
I made some experiments here: https://github.com/bjoernQ/esp-generate |
Ill start doing some investigation on this issue! Ill start by collecting a list of requirements/ideas and then take a look at |
Requirements
@esp-rs/espressif feel free to add/modify anything to the list. |
I think this is a great initial set of requirements for the end-user experience! I think we should also think about the requirements of the maintainer side of things (us :D), for example managing code snippets - is there a better way to do it? How might we manage generating multiple templates, for instance we may want an RTIC, Embassy and normal blocking template (maybe more?). These kinds of requirements are why we're exploring not using cargo-generate, so I think they're important to think about. |
I thought about some of that in my POC The most annoying thing to me with cargo-generate was the fact that it's mostly trial-and-error - so my idea was to have a "template" which is just a normal project which works in VSCode (or any other IDE) and can be compiled just as is t.b.h. the result is not as great as I hoped for but much better than what we had before - the code needs a lot of weird hints for replacements - while that would remain the case there are probably ways to improve the experience For "multiple templates": could be done as multiple independent templates but in the POC I opted for having multiple binaries (which are "filtered" out during generation)
Haven't implemented that but I briefly thought about a way to tell the tool to generate all valid permutations which then could be tested if they compile - maybe it's not a great idea since that might be a lot of combinations. That idea could be adapted by having a way to give you the cmd-line invocations for all the valid combinations and we can copy-paste the relevant ones to a workflow |
My idea would be to have an extra argument which selects the template (blocking, embassy....)
I guess this should be explored later on, but I think there gonna be too many possible combinations.
Agree! I really like using the TUI |
Just discovered https://github.com/AdinAck/cargo-embassy, which we can get some inspiration from |
I created https://github.com/bjoernQ/esp-generate/issues/2 to track the |
While I'm not sure whether or not we're ready to promote @SergioGasquez @MabezDev @bjoernQ do you have any thoughts on this? Are there any missing functionality and/or blocking issues in |
I think esp-generate is already better than esp-template. Maybe we could do a "soft launch" by advertising it on Matrix and ask users to give it a try. There is always something to improve but at this point getting feedback from real users might be very valuable |
@MabezDev what's the plan here? We've closed most of the issues in |
I think @bjoernQ's suggestion of a soft launch on matrix is a good idea. If all goes well we can retire this a promote esp-generate everywhere. |
I've created an issue in Probably next week we can pull the trigger on this. |
Since this templates inception we have been using cargo-generate as the project generation tool. This has worked for the most part, however we have encountered a number of limitations and rough edges which have made continued development of this template more difficult that it probably needs to be.
Our team has discussed this topic in various meetings to some degree, and have come to the conclusion that perhaps we should just roll our own project generation tool for this. We can be incredibly opinionated about things and cater the tool to our specific needs, instead of trying to coerce a generic tool into doing what we want.
We will need to have some further discussion to nail down the requirements for such a tool, and make a final decision if we do indeed want to go down this path, however I am opening this issue now for the sake of tracking progress here.
The text was updated successfully, but these errors were encountered: