potiuk commented on code in PR #45060:
URL: https://github.com/apache/airflow/pull/45060#discussion_r1943332556
##########
scripts/ci/pre_commit/compile_www_assets.py:
##########
@@ -71,4 +72,23 @@ def get_directory_hash(directory: Path, skip_path_regexp:
str | None = None) ->
subprocess.check_call(["yarn", "install", "--frozen-lockfile"],
cwd=os.fspath(www_directory))
subprocess.check_call(["yarn", "run", "build"],
cwd=os.fspath(www_directory), env=env)
new_hash = get_directory_hash(www_directory,
skip_path_regexp=r".*node_modules.*")
- WWW_HASH_FILE.write_text(new_hash)
+ www_hash_file.write_text(new_hash)
+
+
+def is_fab_provider_installed() -> bool:
+ return (
+ importlib.util.find_spec("airflow") is not None
Review Comment:
Well, that one will require figuring out some custom build process for FAB
provider. We have two options:
1) Add custom build steps and slightly modified `pyproject.toml` - maybe
even changing the build backend. Currently we use flit backend - which is
simple for pure-python packages without custom build steps. In Airflow we do it
using `hatchling` - and `hatch_build.py` - you will find a "custom" build step
that retrieves information from git and builds the asset using pyproject.toml.
But this is a bit problematic - because we are generating pyproject.toml for
all providers from the same template and we have simple `flit build` command to
build them.
2) Another - better IMHO opinion - way is to add pre-commit that will
compile the assets when they change and we could then commit such generated
assets as part of the provider code. That has the benefit that we would not
have to have custom build step - also I presume that FAB assets do not change
frequently (this is the main reason why we are not doing it for airflow -
because such pre-compiled assets would have to be committed after every UI
change - and this is pretty much all the time now - that would also generate
terrible conflicts to resolve while many people are working on UI in parallel.
So I'd say 2) is the right option. We already have the pre-comits that
complile UI assets for Airflow and it would be relatively straightforward to do
similar pre-commits for FAB
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]