tattle-made / Uli

Software and Resources for Mitigating Online Gender Based Violence in India

Home Page:https://uli.tattle.co.in

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

  1. change permissions in manifest files. The permissions for chrome and Firefox also vary.
  2. For windows, the commands in package.json have to changed. The api-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

  1. Extend Docker Compose file - https://docs.docker.com/compose/multiple-compose-files/extends/
  2. 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 :

  1. The install speeds were substantially faster than npm
  2. Since it has a bundler built in, we will not have to rely on parcel. i built a poc thats listed above
  3. It has a test runner built in, so we dont have to include jest
  4. 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.