Improve developer experience for setting up Uli
aatmanvaidya opened this issue · comments
Is your feature request related to a problem? Please describe.
As we keep adding new features, we notice that we have to keep adding more caveats on setting up Uli. For instance
- change permissions in manifest files. The permissions for chrome and Firefox also vary.
- For windows, the commands in
package.json
have to changed. Theapi-server
has to be turned on manually etc.
The question is, "Can we create a single command that takes care of all this?".
We have to figure out a way to make developer experience.
Describe the solution you'd like
Things that can be explored currently
- Extend Docker Compose file - https://docs.docker.com/compose/multiple-compose-files/extends/
- Explore https://bun.sh/
Denny has made some progress with using Bun - https://github.com/tattle-made/Uli/blob/feat/bun/browser-extension/plugin/build.js
Bun has a focus on speed AND developer experience. These are both issues that we are getting affected by as Uli matures.
Some early successes that I found with Bun are :
- The install speeds were substantially faster than npm
- Since it has a bundler built in, we will not have to rely on parcel. i built a poc thats listed above
- It has a test runner built in, so we dont have to include jest
- It has support for workspaces and monorepo, which might be helpful in orchestrating api-server and plugin from the same command
Ideally what we want is Uli development environment to be up and running with minimum number of steps. The ideal imagined state would be running docker-compose up
to setup infrastructure (database etc) and npm run dev
to start both api-server and the plugin.
One related non ideal solution I came across is the use of Github Codespaces - https://docs.github.com/en/codespaces.
This basically allows you to setup a dev environment in cloud. This won't be useful for core team but I think this can substantially reduce the setup time for one time contributors. This will allow us to specify the ideal environment - os, platform etc and with one click launch an IDE with all things running.
A similar discussion is also being tracked on this issue - #296
This issue is stale because it has been open for 30 days with no activity.
This issue was closed because it has been inactive for 14 days since being marked as stale.