mirror of
https://github.com/apache/superset.git
synced 2026-05-24 17:25:20 +00:00
The local-extensions watcher previously surfaced spurious reloads under Docker on macOS (VirtioFS / osxfs generates inotify events on every read, not just writes), and rebuilds that wrote many files at once produced one restart per file. It also touched superset/__init__.py to trigger Flask's reloader, which then meant any Python read of that file also looked like a change and recursed. Changes: - Watcher only acts on FileCreated/Modified/Moved events, verifies the file content actually changed via SHA-256, and debounces to one trigger per second. - Use a dedicated sentinel file (superset/extensions/.reload_trigger) that Python never reads, registered with Flask via --extra-files. The watcher ensures the sentinel exists on startup. - Bootstrap excludes superset/__init__.py from the file watcher so the old trigger path can't reintroduce the loop. - docker-compose mounts ./local_extensions:/app/local_extensions so the bind path matches LOCAL_EXTENSIONS in the dev superset_config. - Extension content endpoint and FRONTEND_REGEX accept nested paths inside frontend/dist so extensions can serve worker / WASM / chunk subfolders. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
3.6 KiB
Executable File
3.6 KiB
Executable File