[FEATURE] `wash new app` to scaffold wasmCloud apps
Affected project(s)
- [ ] documentation
- [X] examples
- [ ] wasmCloud host
- [X] wasmCloud CLI (wash)
- [ ] wasmCloud dashboard UI (washboard)
- [ ] capability providers
- [ ] provider bindgen
- [ ] control interface client
- [ ] other / not sure
Is your feature request related to a problem? Please describe.
No response
Describe the solution you'd like
I feel it'd be awesome to create an experience for wasmCloud akin to running something like create-t3-app. The idea is that running wash new app would trigger a CLI prompt to generate a new app for running on wasmCloud.
I envision that the first prompt may be something like Do you wish to generate an example app or scaffold your own app skeleton?.
- If the user selects an "example app", maybe prompt for the app name, then git clone the example app from a repo and then clean up the git dir and init them a new git repo.
- If the user selects "scaffold your own", then a prompt:
-
Which common components would you like to include?such asui(A shell React UI or something),task status handler(something along the lines of sidekiq, which might subsequently prompt for which persistence you want to use such asblobstoreorpostgres) -
Which common providers would you like to include?could include options such asblobstore,postgres,http-routeretc
-
Hopefully that illustrates the rough idea. Very curious to hear your opinions on this one!
Describe alternatives you've considered
No response
Additional context
A GIF showing the rough idea can be seen here: https://github.com/liamwh/Veloxide-CLI/
This is really neat! I feel like this could reuse a lot of what we're going to be putting together for #2508 so I'm curious if you see any overlap there. Do you picture this as something a developer would use or something that a platform team might use? I ask because I think in an ideal world, developers would just focus on writing components and consuming/exporting interfaces and platform teams would then assemble it into the desired applications.
Either way, it feels real nice to help a user pull in a common template along with some interfaces they'd need
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. If this has been closed too eagerly, please feel free to tag a maintainer so we can keep working on the issue. Thank you for contributing to wasmCloud!
I'll bump the stalebot once here, just to say that I think an enhanced wash new experience is overdue. At the very least, I'd like to be able to do something like
wash new --lang rust --type component
and then get a list of preconfigured templates to use. With the latest and greatest wash dev experience, I think that we'd want to simplify the configuration of the wasmcloud.toml to use different capability providers, but that might be better under a different scope.
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. If this has been closed too eagerly, please feel free to tag a maintainer so we can keep working on the issue. Thank you for contributing to wasmCloud!