From 76cd0224de50ded0903a6db7135a24d5fc90d6cd Mon Sep 17 00:00:00 2001 From: Leo Vasanko Date: Tue, 2 Jun 2026 22:45:09 +0000 Subject: [PATCH] Attempt build fix to allow running from git. --- pyproject.toml | 7 +++++++ scripts/fastapi-vue/build-frontend.py | 19 ++++++++++++++++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 4e45128..f2cdb82 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -38,6 +38,13 @@ only-packages = true [tool.hatch.build.targets.sdist.hooks.custom] path = "scripts/fastapi-vue/build-frontend.py" +[tool.hatch.build.targets.sdist.force-include] +"scripts/fastapi-vue/build-frontend.py" = "scripts/fastapi-vue/build-frontend.py" +"scripts/fastapi-vue/buildutil.py" = "scripts/fastapi-vue/buildutil.py" + +[tool.hatch.build.targets.wheel.hooks.custom] +path = "scripts/fastapi-vue/build-frontend.py" + [tool.uv] package = true diff --git a/scripts/fastapi-vue/build-frontend.py b/scripts/fastapi-vue/build-frontend.py index 2f3d60f..e92fc12 100644 --- a/scripts/fastapi-vue/build-frontend.py +++ b/scripts/fastapi-vue/build-frontend.py @@ -14,4 +14,21 @@ from buildutil import build class CustomBuildHook(BuildHookInterface): def initialize(self, version, build_data) -> None: super().initialize(version, build_data) - build("frontend") + root = Path(self.root) + frontend_src = root / "frontend" + frontend_build = root / "mediahive" / "frontend-build" + + # When building a wheel from sdist, frontend sources may be omitted + # while prebuilt assets are already present in mediahive/frontend-build. + if frontend_src.exists(): + build(str(frontend_src)) + return + + if frontend_build.exists(): + return + + msg = ( + "Frontend build is missing. Expected either source directory " + f"'{frontend_src}' or prebuilt assets in '{frontend_build}'." + ) + raise RuntimeError(msg)