From dd89c5f65086f8c431096c3e19cfb3387cd91317 Mon Sep 17 00:00:00 2001 From: "Markus F.J. Busche" Date: Sun, 21 Sep 2025 12:28:43 +0200 Subject: [PATCH] =?UTF-8?q?build:=20setup.py=20ohne=20OctoPrint-Build-Abh?= =?UTF-8?q?=C3=A4ngigkeit=20(dict=5Fmerge=20Fallback);=20project=20require?= =?UTF-8?q?ments.txt;=20build=20script=20nutzt=20requirements.txt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- octoprint_tailscale_funnel/setup.py | 13 ++++++++++++- requirements.txt | 6 ++++++ scripts/build_plugin.sh | 7 ++++++- 3 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 requirements.txt diff --git a/octoprint_tailscale_funnel/setup.py b/octoprint_tailscale_funnel/setup.py index 20f7801..0ef0b88 100644 --- a/octoprint_tailscale_funnel/setup.py +++ b/octoprint_tailscale_funnel/setup.py @@ -88,7 +88,18 @@ setup_parameters = octoprint_setuptools.create_plugin_setup_parameters( ) if len(additional_setup_parameters): - from octoprint.util import dict_merge + try: + from octoprint.util import dict_merge + except Exception: + # Fallback to allow building without the octoprint package installed + def dict_merge(a, b): + result = dict(a) + for k, v in b.items(): + if k in result and isinstance(result[k], dict) and isinstance(v, dict): + result[k] = dict_merge(result[k], v) + else: + result[k] = v + return result setup_parameters = dict_merge(setup_parameters, additional_setup_parameters) setup(**setup_parameters) \ No newline at end of file diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..a8cfc1f --- /dev/null +++ b/requirements.txt @@ -0,0 +1,6 @@ +setuptools>=68 +wheel>=0.41 +build>=1.0 +packaging>=23 +octoprint_setuptools>=1.7.0 + diff --git a/scripts/build_plugin.sh b/scripts/build_plugin.sh index 14acf18..7d1e90f 100755 --- a/scripts/build_plugin.sh +++ b/scripts/build_plugin.sh @@ -23,7 +23,12 @@ if [[ ! -x "$VENV_DIR/bin/python" ]]; then python3 -m venv "$VENV_DIR" fi -"$VENV_DIR/bin/pip" install -q --upgrade pip setuptools wheel build packaging octoprint_setuptools +if [[ -f "$ROOT_DIR/requirements.txt" ]]; then + "$VENV_DIR/bin/pip" install -q --upgrade pip + "$VENV_DIR/bin/pip" install -q -r "$ROOT_DIR/requirements.txt" +else + "$VENV_DIR/bin/pip" install -q --upgrade pip setuptools wheel build packaging octoprint_setuptools +fi # Optional: bump version if [[ -n "$VERSION_INPUT" ]]; then