From f46170f7655c92901f30ce8ab3dee1bd83101c15 Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Tue, 17 Dec 2024 14:15:03 +0100 Subject: [PATCH 1/4] Refactor NPM generator for CLI and development support Improve the NPM generator to handle both CLI and development scenarios. Added conditional logic for CLI package deployments and development environment package generation. Simplified error handling and adjusted file-saving logic for better maintainability. NP-637 --- extensions/generators/npm.py | 43 ++++++++++++++++++++++-------------- 1 file changed, 26 insertions(+), 17 deletions(-) diff --git a/extensions/generators/npm.py b/extensions/generators/npm.py index 24b9844..722d6f7 100644 --- a/extensions/generators/npm.py +++ b/extensions/generators/npm.py @@ -1,8 +1,8 @@ +import os import json from conan import ConanFile -from conan.errors import ConanException -from conan.tools.files import copy, save +from conan.tools.files import copy, mkdir, save from pathlib import Path @@ -13,18 +13,27 @@ class npm: def generate(self): if self._conanfile.settings.os != "Emscripten": self._conanfile.output.error("Can only deploy to NPM when build for Emscripten") - raise ConanException("Can only deploy to NPM when build for Emscripten") - - root_package = [dep for dep in self._conanfile.dependencies.direct_host.values()][0] - - # Copy the *.js and *.d.ts - copy(self._conanfile, "*.js", src=root_package.package_folder, dst=self._conanfile.generators_folder) - copy(self._conanfile, "*.d.ts", src=root_package.package_folder, dst=self._conanfile.generators_folder) - - # Create the package.json - save(self._conanfile, str(Path(self._conanfile.generators_folder, "package.json")), - json.dumps(root_package.conf_info.get(f"user.{root_package.ref.name.lower()}:package_json"))) - - # Create the .npmrc file - save(self._conanfile, str(Path(self._conanfile.generators_folder, ".npmrc")), - "//npm.pkg.github.com/:_authToken=${GITHUB_TOKEN}\n@ultimaker:registry=https://npm.pkg.github.com\nalways-auth=true") + return + + if self._conanfile.display_name == "cli": # We're installing a CLI package from the conan local cache + root_package = [dep for dep in self._conanfile.dependencies.direct_host.values()][0] + src_folder = root_package.package_folder + conf_info = root_package.conf_info + name = root_package.ref.name + + # Copy the *.js and *.d.ts + copy(self._conanfile, "*.js", src=src_folder, dst=self._conanfile.generators_folder) + copy(self._conanfile, "*.d.ts", src=src_folder, dst=self._conanfile.generators_folder) + + # Create the package.json + save(self._conanfile, str(Path(self._conanfile.generators_folder, "package.json")), + json.dumps(conf_info.get(f"user.{name.lower()}:package_json"))) + + # Create the .npmrc file + save(self._conanfile, str(Path(self._conanfile.generators_folder, ".npmrc")), + "//npm.pkg.github.com/:_authToken=${GITHUB_TOKEN}\n@ultimaker:registry=https://npm.pkg.github.com\nalways-auth=true") + else: # We're generating a package for a development environment + package_json = self._conanfile.python_requires["npmpackage"].module.generate_package_json(self._conanfile, + os.path.join(self._conanfile.cpp.build.bindirs[0], self._conanfile.cpp.build.bin[0])) + save(self._conanfile, str(Path(self._conanfile.build_folder, "package.json")), + json.dumps(package_json)) From 22c7e60d26400237509e27dd5f912df65da632f7 Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Tue, 17 Dec 2024 23:31:33 +0100 Subject: [PATCH 2/4] All method printers Contribute to NP-637 & NP-553 & NP-554 --- profiles/cura_wasm.jinja | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/profiles/cura_wasm.jinja b/profiles/cura_wasm.jinja index f46195d..bcfa67b 100644 --- a/profiles/cura_wasm.jinja +++ b/profiles/cura_wasm.jinja @@ -11,7 +11,7 @@ arch=wasm [conf] tools.build:skip_test=True tools.cmake.cmake_layout:build_folder_vars=['settings.os'] -user.curator:printers=['ultimaker_sketch','ultimaker_sketch_large','ultimaker_sketch_sprint','ultimaker_method'] +user.curator:printers=['ultimaker_sketch','ultimaker_sketch_large','ultimaker_sketch_sprint','ultimaker_method','ultimaker_methodx','ultimaker_methodxl'] [options] curaengine/*:enable_plugins=False From 7a4eadcde30e8caa0615d2e2f1a1d82160d83df0 Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Tue, 17 Dec 2024 23:32:16 +0100 Subject: [PATCH 3/4] Fix indention Contribute to NP-637 --- extensions/generators/npm.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions/generators/npm.py b/extensions/generators/npm.py index 722d6f7..c7b3d2b 100644 --- a/extensions/generators/npm.py +++ b/extensions/generators/npm.py @@ -35,5 +35,5 @@ class npm: else: # We're generating a package for a development environment package_json = self._conanfile.python_requires["npmpackage"].module.generate_package_json(self._conanfile, os.path.join(self._conanfile.cpp.build.bindirs[0], self._conanfile.cpp.build.bin[0])) - save(self._conanfile, str(Path(self._conanfile.build_folder, "package.json")), + save(self._conanfile, str(Path(self._conanfile.build_folder, "package.json")), json.dumps(package_json)) From 0908d3a951e183b3f4222ae2ff90665580ebd88d Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Thu, 9 Jan 2025 02:04:21 +0100 Subject: [PATCH 4/4] Add Ultimaker_s3 Contributes to NP-555 --- profiles/cura_wasm.jinja | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/profiles/cura_wasm.jinja b/profiles/cura_wasm.jinja index bcfa67b..c8b923b 100644 --- a/profiles/cura_wasm.jinja +++ b/profiles/cura_wasm.jinja @@ -11,7 +11,7 @@ arch=wasm [conf] tools.build:skip_test=True tools.cmake.cmake_layout:build_folder_vars=['settings.os'] -user.curator:printers=['ultimaker_sketch','ultimaker_sketch_large','ultimaker_sketch_sprint','ultimaker_method','ultimaker_methodx','ultimaker_methodxl'] +user.curator:printers=['ultimaker_sketch','ultimaker_sketch_large','ultimaker_sketch_sprint','ultimaker_method','ultimaker_methodx','ultimaker_methodxl', 'ultimaker_s3'] [options] curaengine/*:enable_plugins=False