I do like the sound of this. :thumbs-up:

________________________________
From: Jarek Potiuk <[email protected]>
Sent: Tuesday, July 19, 2022 3:00 PM
To: [email protected]
Subject: [EXTERNAL] [PROPOSAL] Simplification of www asset compilation for 
Breeze/dev env


CAUTION: This email originated from outside of the organization. Do not click 
links or open attachments unless you can confirm the sender and know the 
content is safe.


Hello everyone.

I wanted to propose a slight change (but also simplification and speedup) of 
our dev env for the www asset compilation.

I am on a spree of optimizing our CI/Dev environment (with quite a success so 
far - the new Python-based breeze is a wonderful tool that allows all kinds of 
optimizations - for one I just merged two change that will cut the build time 
for our k8s pretty much by half).

Those changes are largely transparent (just waiting time decreases for everyone 
:)) But I have one more change that might (very slightly) impact the dev 
environment, while it will also decrease the waiting/build times for breeze 
locally so I wanted to announce it here.

The PR is here: https://github.com/apache/airflow/pull/25169

The gist of the change is that it moves all "node" asset compilation out from 
the image to the host - but I am also harnessing `pre-commit`s automated 
environment setup - so you will not have to worry about node/yarn setup - 
pre-commit will do it for you.


Very little changes if you used breeze:

* when you run `start-airflow` assets will be automatically compiled by 
breeze/pre-commit (so UI will work out of the box). This previously happened 
inside the image
* when you run `prepare-airflow-package` - same thing happen - the package will 
have compiled packages ready
* the asset compilation locally caches node_modules/assets locally, so only 
first build will take more time
* you can run `breeze compile-www-assets` to force-compiling the assets any time

The benefits of the change:

* CI images will be smaller and rebuild faster (no nodejs in the images any 
more)
*  Dockerfiles are WAY simpler as they do not have to account for compiling the 
assets and optimizing it
* we used to have multiple scripts to compile assets - now we only have `breeze 
compile-www-assets` that runs 'pre-commit manual run` under the hood
* the lint pre-commits are also using the same environment, so they do not need 
the image any more - way simpler setup and execution

Overall - 400 lines of code :)

I hope you will like it.

Brent, Pierre -please take a look as it will mostly impact you (but I think the 
impact will be vastly positive).

J.





Reply via email to