1
0
mirror of https://github.com/Unleash/unleash.git synced 2024-12-28 00:06:53 +01:00
Commit Graph

14 Commits

Author SHA1 Message Date
Nuno Góis
a9c24e4262
chore: simplify package scripts (#3736)
# Simplify package scripts

This PR's purpose is to raise a discussion surrounding our current
package scripts.

It includes some suggestions that aim to simplify the scripts and
hopefully bring a much more straightforward approach to developing and
contributing to Unleash.

Building (prod) should only happen **explicitly** and when needed.

## Before PR (current behavior)

- Clone the project;
- Open 2 terminals: One for `unleash` and another for
`unleash/frontend`;
- On `unleash`: 
  - Run `yarn` (which will also build, for some reason?);
  - Run `yarn start:dev` to start backend in dev mode (`tsc-watch`);
- On `unleash/frontend`:
  - Run `yarn` (which will also build, for some reason?);
  - Run `yarn start` to start frontend in dev mode (`vite`);

So it seems to me like we build unnecessarily every time we install
dependencies. Neither dev scripts need to build the project, as backend
uses `tsc-watch` and frontend uses `vite`. I'm unsure why this is the
case, as building can take a very long time.


![image](https://github.com/Unleash/unleash/assets/14320932/5ecb7df1-e5b4-4d70-ba7e-97119f5d1116)

There's also some complexity in the way we need to split the terminal to
`cd` into `frontend` and treat it as a different project. The fact that
we have different script names is also confusing (`yarn start`, `yarn
start:dev`, etc).

## After PR

- Clone the project;
- Run `yarn` to install all dependencies;
- Run `yarn dev` to get started developing Unleash;

Running `yarn` should take care of everything needed to start
developing. This includes installing dependencies for frontend as well.
It should not build projects if we are not being explicit about it,
especially since we don't need to build them at this stage.


![image](https://github.com/Unleash/unleash/assets/14320932/614e42fc-3467-432f-91fc-624b1b35c7c1)

Running `yarn dev` should start the project in dev mode. This means
running both projects in `dev` mode, which for `backend` means running
`tsc-watch` and for `frontend` means running `vite`.

Here this PR attempts to provide a better DX by using
[concurrently](https://www.npmjs.com/package/concurrently) and
[wait-on](https://www.npmjs.com/package/wait-on) - This means both tasks
are ran simultaneously, stdout is labeled accordingly, and are stopped
together. It also means that `frontend` waits for `backend` to be
serving at `4242` before starting, since `frontend` starts pretty much
immediately with `vite` and `backend` takes a bit longer. Of course,
when the `backend` is hot-reloading you may still find some
`ECONNREFUSED`s on `frontend` stdout while it recompiles.


![image](https://github.com/Unleash/unleash/assets/14320932/8bde8ee2-3cad-4e3f-a0db-9eed60cfb04d)

No more splitting your terminal and treating `frontend` as a separate
project.

## Discussion points

Maybe there's a better alternative to `tsc-watch`? I briefly explored
some alternatives and while they had a much faster starting speed,
hot-reload was sometimes slower. IMO we should aspire to run
`src/server-dev.ts` directly and only compile when needed.

Running `dev:backend` still serves a version of the frontend (at 4242).
**Why? Can we remove that behavior?**
I can't imagine a scenario in dev where we wouldn't want to run the
latest version of the frontend with `vite`.

~~**Note:** This PR removes all other out-of-scope scripts to focus on
this revamp. If we decide to merge it, we should evaluate what other
existing scripts we still want to include. May be a good opportunity to
clean up unused ones and only include the ones we really use. This
includes scripts that our GH actions rely on.~~

**Update:** In an effort to minimize impact surface of this PR and make
it a bit more ready for merging:
- It updates some docs in
2a4ff805e8
and
1bbc488251
to reflect our new simplified flow;
- It includes the old package scripts for now in
039bc04699;
- It updates some of our GH actions to reflect the new scripts in
7782cb9b12;

Given its current status I'll promote the PR to "ready for review". 

I still think we should have a second look at our existing scripts and
GH actions to see what we really need and/or should adapt, but it should
be a team effort so we have a broader context. Maybe on a follow-up PR.

Does this require any changes to related projects (e.g. Enterprise)?

---------

Co-authored-by: Gastón Fournier <gaston@getunleash.io>
2023-05-12 11:23:22 +01:00
Gastón Fournier
0e80484068
docs: update documentation and dev server use of passord (#3564)
## About the changes
Update `passord` documentation with `password`. Note this was not a typo
but just Norwegian:
https://dictionary.cambridge.org/dictionary/english-norwegian/password
```shell
grep passord * -R -l | grep -v .git | grep -v dist | grep -v v3 | xargs sed -i 's/passord/password/g'
```
The script above avoids updating v3 because of legacy reasons

Related to #1265
2023-04-19 13:29:18 +02:00
sjaanus
c4da10b15f
Docker cross-compilation with buildx (#2003)
* Build docker test

* Change platform to build on amd64

* Put back buildplatform

* Run frontend as separate docker task

* Increase timeout

* Update docs
2022-08-30 12:39:28 +00:00
Gard Rimestad
5d5fc37dfd
Feat/docker container on main builds (#1762)
* feat: build docker containers when pushing to main

The intent here is to publish a docker container for every build of
main. This will make it easier to run the tip of main.
2022-06-28 16:13:00 +02:00
Thomas Heartman
7d1a5c2012
docs: add "how to run for development" to CONTRIBUTING.md (#1600)
* docs: add "how to run" to CONTRIBUTING.md

* docs: Refer to the how-to run section from getting started

* Update CONTRIBUTING.md

Co-authored-by: sighphyre <liquidwicked64@gmail.com>

Co-authored-by: sighphyre <liquidwicked64@gmail.com>
2022-05-18 10:16:04 +00:00
sighphyre
48a9e218e5 docs: update contribution guidelines with information about our stale and no response bots 2022-04-21 14:21:21 +02:00
Ivar Conradi Østhus
cf5878a4b3
chore: update release steps in CONTRIBUTING.md 2022-04-06 21:01:28 +02:00
Ivar Conradi Østhus
fe45c69fb6
chore: add check-relase script as part of perversion validations. 2022-04-06 20:34:15 +02:00
Ivar Conradi Østhus
ffec4f6342 fix: rename websitev2 to website 2021-10-26 11:25:19 +02:00
David Alpert
0681a7b1d3
chore(node-version): move node spec to .node-version (#1034)
placing the required node version in a .node-version
file allows it to be read programatically by node
version managers like nodenv, asdf, etc
2021-10-17 15:26:59 +02:00
David Alpert
1d828e8190
docs: add reference to developer-guide (#1035) 2021-10-17 15:21:25 +02:00
Ivar Conradi Østhus
2bcdb5ec31
fix: Controller wraps handler with try/catch (#909)
By having the controller perform try/catch around the
handler function allows us to add extra safety to all
our controllers and safeguards that we will always catch
exceptions thrown by a controller method.
2021-08-13 10:36:19 +02:00
Ivar Conradi Østhus
496d9d38a6
fix: update README.md 2021-06-04 19:31:28 +02:00
Christopher Kolstad
c224786f29
feat: update docs to match v4.
Co-authored-by: Ivar Conradi Østhus <ivarconr@gmail.com>
Co-authored-by: Fredrik Oseberg <fredrik.no@gmail.com>
2021-05-18 11:19:33 +02:00