From 202d802f613c8d6ff7a5b1b2e314920db31831d3 Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Fri, 28 Jul 2023 13:36:40 +0200 Subject: [PATCH 01/26] Move the required plugins list to before it's actually checked Cuz ya know. If you don't set the data before checking, you will have a baaaad time. --- cura/CuraApplication.py | 56 ++++++++++++++++++++++------------------- 1 file changed, 30 insertions(+), 26 deletions(-) diff --git a/cura/CuraApplication.py b/cura/CuraApplication.py index 889e442eaa..64d88d13dc 100755 --- a/cura/CuraApplication.py +++ b/cura/CuraApplication.py @@ -495,6 +495,36 @@ class CuraApplication(QtApplication): def startSplashWindowPhase(self) -> None: """Runs preparations that needs to be done before the starting process.""" + self.setRequiredPlugins([ + # Misc.: + "ConsoleLogger", # You want to be able to read the log if something goes wrong. + "CuraEngineBackend", # Cura is useless without this one since you can't slice. + "FileLogger", # You want to be able to read the log if something goes wrong. + "XmlMaterialProfile", # Cura crashes without this one. + "Marketplace", + # This contains the interface to enable/disable plug-ins, so if you disable it you can't enable it back. + "PrepareStage", # Cura is useless without this one since you can't load models. + "PreviewStage", # This shows the list of the plugin views that are installed in Cura. + "MonitorStage", # Major part of Cura's functionality. + "LocalFileOutputDevice", # Major part of Cura's functionality. + "LocalContainerProvider", # Cura is useless without any profiles or setting definitions. + + # Views: + "SimpleView", # Dependency of SolidView. + "SolidView", # Displays models. Cura is useless without it. + + # Readers & Writers: + "GCodeWriter", # Cura is useless if it can't write its output. + "STLReader", # Most common model format, so disabling this makes Cura 90% useless. + "3MFWriter", # Required for writing project files. + + # Tools: + "CameraTool", # Needed to see the scene. Cura is useless without it. + "SelectionTool", # Dependency of the rest of the tools. + "TranslateTool", # You'll need this for almost every print. + ]) + # Plugins need to be set here, since in the super the check is done if they are actually loaded. + super().startSplashWindowPhase() if not self.getIsHeadLess(): @@ -503,33 +533,7 @@ class CuraApplication(QtApplication): except FileNotFoundError: Logger.log("w", "Unable to find the window icon.") - self.setRequiredPlugins([ - # Misc.: - "ConsoleLogger", #You want to be able to read the log if something goes wrong. - "CuraEngineBackend", #Cura is useless without this one since you can't slice. - "FileLogger", #You want to be able to read the log if something goes wrong. - "XmlMaterialProfile", #Cura crashes without this one. - "Marketplace", #This contains the interface to enable/disable plug-ins, so if you disable it you can't enable it back. - "PrepareStage", #Cura is useless without this one since you can't load models. - "PreviewStage", #This shows the list of the plugin views that are installed in Cura. - "MonitorStage", #Major part of Cura's functionality. - "LocalFileOutputDevice", #Major part of Cura's functionality. - "LocalContainerProvider", #Cura is useless without any profiles or setting definitions. - # Views: - "SimpleView", #Dependency of SolidView. - "SolidView", #Displays models. Cura is useless without it. - - # Readers & Writers: - "GCodeWriter", #Cura is useless if it can't write its output. - "STLReader", #Most common model format, so disabling this makes Cura 90% useless. - "3MFWriter", #Required for writing project files. - - # Tools: - "CameraTool", #Needed to see the scene. Cura is useless without it. - "SelectionTool", #Dependency of the rest of the tools. - "TranslateTool", #You'll need this for almost every print. - ]) self._i18n_catalog = i18nCatalog("cura") self._update_platform_activity_timer = QTimer() From 8572589a2d11849e40d8b3ddd33a7cd0e165315e Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Fri, 4 Aug 2023 12:51:07 +0200 Subject: [PATCH 02/26] Revert "Disable Small Skin Area feature for now :-/" This reverts commit 1f7c11667fb577c6593faf09eb5b242c59426092. --- resources/definitions/fdmprinter.def.json | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index d1c532a32d..79c6d457a2 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -1665,16 +1665,15 @@ { "label": "Small Top/Bottom Width", "description": "Small top/bottom regions are filled with walls instead of the default top/bottom pattern. This helps to avoids jerky motions.", - "value": "0", - "default_value": 0, + "value": "skin_line_width * 2", + "default_value": 1, "minimum_value": "0", "maximum_value_warning": "skin_line_width * 10", "type": "float", - "enabled": false, + "enabled": "(top_layers > 0 or bottom_layers > 0) and top_bottom_pattern != 'concentric'", "limit_to_extruder": "top_bottom_extruder_nr", "settable_per_mesh": true, - "unit": "mm", - "comment": "Disabled for 5.4.x, as we're worried about micro-segments in the infill. Also disabled in the engine, so forcing this > 0 will not do anything at the moment." + "unit": "mm" }, "skin_no_small_gaps_heuristic": { From 836bf65d20bcea01e82cd777b8a49b411b4eb4ec Mon Sep 17 00:00:00 2001 From: Remco Burema Date: Fri, 4 Aug 2023 14:24:31 +0200 Subject: [PATCH 03/26] Reduce maximum warning value for small top/bottom skin. While the current solution works well for values smaller than this (and that's mostly what we'd need it for), it becomes clear beyond this value (if you'd like to set it that hight for some reason) that the current solution needs to be improved (for example by adding these small skin areas to the already existing wall areas. -- Lift the solution out of the fill as it where. WHat happens when it becomes larger it that it's very likely that it'll generate a dot as middle walls on the 'outsides' of any small area connected to a larger one. done as part of CURA-10670 --- resources/definitions/fdmprinter.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 79c6d457a2..b1e82c0b65 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -1668,7 +1668,7 @@ "value": "skin_line_width * 2", "default_value": 1, "minimum_value": "0", - "maximum_value_warning": "skin_line_width * 10", + "maximum_value_warning": "skin_line_width * 3", "type": "float", "enabled": "(top_layers > 0 or bottom_layers > 0) and top_bottom_pattern != 'concentric'", "limit_to_extruder": "top_bottom_extruder_nr", From 3f5ea6f6e2344ca33dd9b1e6683de6fda255ac26 Mon Sep 17 00:00:00 2001 From: Thomas Rahm <67757218+ThomasRahm@users.noreply.github.com> Date: Sat, 5 Aug 2023 07:05:16 +0200 Subject: [PATCH 04/26] Change minimum support area to be 0 when tree supports are used --- resources/definitions/elegoo_base.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/elegoo_base.def.json b/resources/definitions/elegoo_base.def.json index b0a0717c59..c54a388806 100644 --- a/resources/definitions/elegoo_base.def.json +++ b/resources/definitions/elegoo_base.def.json @@ -69,7 +69,7 @@ "material_print_temperature_layer_0": { "value": "210 if material_print_temperature < 210 else material_print_temperature" }, "min_infill_area": { "value": "5" }, "minimum_interface_area": { "default_value": 10 }, - "minimum_support_area": { "default_value": 3 }, + "minimum_support_area": { "value": "3 if support_structure == 'normal' else 0" }, "optimize_wall_printing_order": { "default_value": true }, "prime_tower_brim_enable": { "default_value": true }, "prime_tower_min_volume": { "value": "(layer_height) * (prime_tower_size / 2)**2 * 3 * 0.5 " }, From 56b15a284c60cb1ad34309adea0ca6f4fcb90c0c Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Wed, 9 Aug 2023 22:52:31 +0200 Subject: [PATCH 05/26] Add fluid motion related settings CURA-10811 --- resources/definitions/fdmprinter.def.json | 33 +++++++++++++++++++++-- resources/setting_visibility/expert.cfg | 4 +++ 2 files changed, 35 insertions(+), 2 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index fca9e69310..ac52e9d52f 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -6794,8 +6794,7 @@ "maximum_value_warning": "0.3", "settable_per_mesh": true }, - "meshfix_maximum_extrusion_area_deviation": - { + "meshfix_maximum_extrusion_area_deviation": { "label": "Maximum Extrusion Area Deviation", "description": "The maximum extrusion area deviation allowed when removing intermediate points from a straight line. An intermediate point may serve as width-changing point in a long straight line. Therefore, if it is removed, it will cause the line to have a uniform width and, as a result, lose (or gain) a bit of extrusion area. If you increase this you may notice slight under- (or over-) extrusion in between straight parallel walls, as more intermediate width-changing points will be allowed to be removed. Your print will be less accurate, but the g-code will be smaller.", "type": "float", @@ -6805,6 +6804,36 @@ "minimum_value_warning": "500", "maximum_value_warning": "100000", "settable_per_mesh": true + }, + "meshfix_fluid_motion_enabled": { + "label": "Enable Fluid Motion", + "description": "When enabled tool paths are corrected for printers with smooth motion planners. Small movements that deviate from the general tool path direction are smoothed to improve fluid motions.", + "type": "bool", + "default_value": true + }, + "meshfix_fluid_motion_shift_distance": { + "label": "Fluid Motion Shift Distance", + "description": "Distance points are shifted to smooth the path", + "enabled": "meshfix_fluid_motion_enabled", + "type": "float", + "unit": "mm", + "default_value": 0.3 + }, + "meshfix_fluid_motion_small_distance": { + "label": "Fluid Motion Small Distance", + "description": "Distance points are shifted to smooth the path", + "enabled": "meshfix_fluid_motion_enabled", + "unit": "mm", + "type": "float", + "default_value": 0.001 + }, + "meshfix_fluid_motion_angle": { + "label": "Fluid Motion Angle", + "description": "Threshold angle of smooth toolpath transitions", + "enabled": "meshfix_fluid_motion_enabled", + "type": "float", + "unit": "\u00b0", + "default_value": 5 } } }, diff --git a/resources/setting_visibility/expert.cfg b/resources/setting_visibility/expert.cfg index 6517728968..9247ad1b9e 100644 --- a/resources/setting_visibility/expert.cfg +++ b/resources/setting_visibility/expert.cfg @@ -365,6 +365,10 @@ multiple_mesh_overlap carve_multiple_volumes alternate_carve_order remove_empty_first_layers +meshfix_fluid_motion_enabled +meshfix_fluid_motion_shift_distance +meshfix_fluid_motion_small_distance +meshfix_fluid_motion_angle [blackmagic] print_sequence From b93be35b89446921be5d1ead9d3625b6c57cf295 Mon Sep 17 00:00:00 2001 From: casperlamboo Date: Wed, 9 Aug 2023 20:53:36 +0000 Subject: [PATCH 06/26] Applied printer-linter format --- resources/definitions/fdmprinter.def.json | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index ac52e9d52f..8f5a40f25c 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -6794,7 +6794,8 @@ "maximum_value_warning": "0.3", "settable_per_mesh": true }, - "meshfix_maximum_extrusion_area_deviation": { + "meshfix_maximum_extrusion_area_deviation": + { "label": "Maximum Extrusion Area Deviation", "description": "The maximum extrusion area deviation allowed when removing intermediate points from a straight line. An intermediate point may serve as width-changing point in a long straight line. Therefore, if it is removed, it will cause the line to have a uniform width and, as a result, lose (or gain) a bit of extrusion area. If you increase this you may notice slight under- (or over-) extrusion in between straight parallel walls, as more intermediate width-changing points will be allowed to be removed. Your print will be less accurate, but the g-code will be smaller.", "type": "float", @@ -6805,13 +6806,15 @@ "maximum_value_warning": "100000", "settable_per_mesh": true }, - "meshfix_fluid_motion_enabled": { + "meshfix_fluid_motion_enabled": + { "label": "Enable Fluid Motion", "description": "When enabled tool paths are corrected for printers with smooth motion planners. Small movements that deviate from the general tool path direction are smoothed to improve fluid motions.", "type": "bool", "default_value": true }, - "meshfix_fluid_motion_shift_distance": { + "meshfix_fluid_motion_shift_distance": + { "label": "Fluid Motion Shift Distance", "description": "Distance points are shifted to smooth the path", "enabled": "meshfix_fluid_motion_enabled", @@ -6819,7 +6822,8 @@ "unit": "mm", "default_value": 0.3 }, - "meshfix_fluid_motion_small_distance": { + "meshfix_fluid_motion_small_distance": + { "label": "Fluid Motion Small Distance", "description": "Distance points are shifted to smooth the path", "enabled": "meshfix_fluid_motion_enabled", @@ -6827,7 +6831,8 @@ "type": "float", "default_value": 0.001 }, - "meshfix_fluid_motion_angle": { + "meshfix_fluid_motion_angle": + { "label": "Fluid Motion Angle", "description": "Threshold angle of smooth toolpath transitions", "enabled": "meshfix_fluid_motion_enabled", From 4a559e812abe259286a2a5ca1e6fe0991ec2a318 Mon Sep 17 00:00:00 2001 From: Saumya Jain <70144862+saumyaj3@users.noreply.github.com> Date: Thu, 10 Aug 2023 10:06:09 +0200 Subject: [PATCH 07/26] Update fdmprinter.def.json removed warning CURA-10670 --- resources/definitions/fdmprinter.def.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index b1e82c0b65..cfc6fe03dd 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -1668,7 +1668,6 @@ "value": "skin_line_width * 2", "default_value": 1, "minimum_value": "0", - "maximum_value_warning": "skin_line_width * 3", "type": "float", "enabled": "(top_layers > 0 or bottom_layers > 0) and top_bottom_pattern != 'concentric'", "limit_to_extruder": "top_bottom_extruder_nr", @@ -8119,4 +8118,4 @@ } } } -} \ No newline at end of file +} From c74748dbb327bbe244b8d2d6eb12a0d5ecf2e768 Mon Sep 17 00:00:00 2001 From: saumyaj3 Date: Thu, 10 Aug 2023 08:07:17 +0000 Subject: [PATCH 08/26] Applied printer-linter format --- resources/definitions/fdmprinter.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index cfc6fe03dd..bfa62e3eaf 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -8118,4 +8118,4 @@ } } } -} +} \ No newline at end of file From 00607cf157f45321ddeb79f017fd8ec2a8022293 Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Thu, 10 Aug 2023 12:18:54 +0200 Subject: [PATCH 09/26] Use more reasonable settings values for fluid motion CURA-10811 --- resources/definitions/fdmprinter.def.json | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 8f5a40f25c..18806da422 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -6820,25 +6820,31 @@ "enabled": "meshfix_fluid_motion_enabled", "type": "float", "unit": "mm", - "default_value": 0.3 + "default_value": 0.1, + "minimum_value": "0.01", + "maximum_value": "1" }, - "meshfix_fluid_motion_small_distance": - { + "meshfix_fluid_motion_small_distance": { "label": "Fluid Motion Small Distance", "description": "Distance points are shifted to smooth the path", "enabled": "meshfix_fluid_motion_enabled", "unit": "mm", "type": "float", - "default_value": 0.001 + "default_value": 0.01, + "minimum_value": "0.01", + "maximum_value": "0.1" }, - "meshfix_fluid_motion_angle": - { + "meshfix_fluid_motion_angle": { "label": "Fluid Motion Angle", - "description": "Threshold angle of smooth toolpath transitions", + "description": "Threshold angle of smooth toolpath transitions. If a toolpath deviates more then this angle from the general direction it is smoothed.", "enabled": "meshfix_fluid_motion_enabled", "type": "float", "unit": "\u00b0", - "default_value": 5 + "default_value": 15, + "maximum_value": "90", + "minimum_value": "0", + "minimum_value_warning": "1", + "maximum_value_warning": "35" } } }, From 99bcec18d653283080a881c02f831f7aba30c188 Mon Sep 17 00:00:00 2001 From: casperlamboo Date: Thu, 10 Aug 2023 10:20:25 +0000 Subject: [PATCH 10/26] Applied printer-linter format --- resources/definitions/fdmprinter.def.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 18806da422..0ecc8957cd 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -6824,7 +6824,8 @@ "minimum_value": "0.01", "maximum_value": "1" }, - "meshfix_fluid_motion_small_distance": { + "meshfix_fluid_motion_small_distance": + { "label": "Fluid Motion Small Distance", "description": "Distance points are shifted to smooth the path", "enabled": "meshfix_fluid_motion_enabled", @@ -6834,7 +6835,8 @@ "minimum_value": "0.01", "maximum_value": "0.1" }, - "meshfix_fluid_motion_angle": { + "meshfix_fluid_motion_angle": + { "label": "Fluid Motion Angle", "description": "Threshold angle of smooth toolpath transitions. If a toolpath deviates more then this angle from the general direction it is smoothed.", "enabled": "meshfix_fluid_motion_enabled", From 1d6df4cd8831f7ee5d95473f9e152cba4a8bbbdc Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Thu, 10 Aug 2023 12:23:48 +0200 Subject: [PATCH 11/26] Update copy CURA-7913 --- resources/definitions/fdmprinter.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/fdmprinter.def.json b/resources/definitions/fdmprinter.def.json index 0ecc8957cd..3d95c3af50 100644 --- a/resources/definitions/fdmprinter.def.json +++ b/resources/definitions/fdmprinter.def.json @@ -6838,7 +6838,7 @@ "meshfix_fluid_motion_angle": { "label": "Fluid Motion Angle", - "description": "Threshold angle of smooth toolpath transitions. If a toolpath deviates more then this angle from the general direction it is smoothed.", + "description": "If a toolpath-segment deviates more than this angle from the general motion it is smoothed.", "enabled": "meshfix_fluid_motion_enabled", "type": "float", "unit": "\u00b0", From 596b3930b6a3ae40b77d42680c2604d8ee01d851 Mon Sep 17 00:00:00 2001 From: MariMakes <40423138+MariMakes@users.noreply.github.com> Date: Tue, 15 Aug 2023 14:01:22 +0200 Subject: [PATCH 12/26] Align Licences to LGPLv3 As discussed in https://github.com/Ultimaker/Cura/issues/15731, we should align these licences under the LGPLv3 because they fall under the Cura umbrella. --- plugins/PostProcessingPlugin/PostProcessingPlugin.py | 2 +- plugins/PostProcessingPlugin/PostProcessingPlugin.qml | 2 +- plugins/PostProcessingPlugin/Script.py | 2 +- plugins/PostProcessingPlugin/scripts/ChangeAtZ.py | 2 +- plugins/PostProcessingPlugin/scripts/ColorMix.py | 2 +- plugins/PostProcessingPlugin/scripts/FilamentChange.py | 2 +- plugins/PostProcessingPlugin/scripts/RetractContinue.py | 2 +- plugins/PostProcessingPlugin/scripts/SearchAndReplace.py | 2 +- plugins/PostProcessingPlugin/scripts/Stretch.py | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/plugins/PostProcessingPlugin/PostProcessingPlugin.py b/plugins/PostProcessingPlugin/PostProcessingPlugin.py index fbb4214021..b3ef761af5 100644 --- a/plugins/PostProcessingPlugin/PostProcessingPlugin.py +++ b/plugins/PostProcessingPlugin/PostProcessingPlugin.py @@ -1,5 +1,5 @@ # Copyright (c) 2018 Jaime van Kessel, Ultimaker B.V. -# The PostProcessingPlugin is released under the terms of the AGPLv3 or higher. +# The PostProcessingPlugin is released under the terms of the LGPLv3 or higher. import configparser # The script lists are stored in metadata as serialised config files. import importlib.util diff --git a/plugins/PostProcessingPlugin/PostProcessingPlugin.qml b/plugins/PostProcessingPlugin/PostProcessingPlugin.qml index a80f304aaa..0f379479ba 100644 --- a/plugins/PostProcessingPlugin/PostProcessingPlugin.qml +++ b/plugins/PostProcessingPlugin/PostProcessingPlugin.qml @@ -1,5 +1,5 @@ // Copyright (c) 2022 Jaime van Kessel, Ultimaker B.V. -// The PostProcessingPlugin is released under the terms of the AGPLv3 or higher. +// The PostProcessingPlugin is released under the terms of the LGPLv3 or higher. import QtQuick 2.2 import QtQuick.Controls 2.15 diff --git a/plugins/PostProcessingPlugin/Script.py b/plugins/PostProcessingPlugin/Script.py index 1cc9b59c9c..be661e0889 100644 --- a/plugins/PostProcessingPlugin/Script.py +++ b/plugins/PostProcessingPlugin/Script.py @@ -1,6 +1,6 @@ # Copyright (c) 2015 Jaime van Kessel # Copyright (c) 2018 Ultimaker B.V. -# The PostProcessingPlugin is released under the terms of the AGPLv3 or higher. +# The PostProcessingPlugin is released under the terms of the LGPLv3 or higher. from typing import Optional, Any, Dict, TYPE_CHECKING, List from UM.Signal import Signal, signalemitter diff --git a/plugins/PostProcessingPlugin/scripts/ChangeAtZ.py b/plugins/PostProcessingPlugin/scripts/ChangeAtZ.py index 91b36389f3..2930623a93 100644 --- a/plugins/PostProcessingPlugin/scripts/ChangeAtZ.py +++ b/plugins/PostProcessingPlugin/scripts/ChangeAtZ.py @@ -1,7 +1,7 @@ # ChangeAtZ script - Change printing parameters at a given height # This script is the successor of the TweakAtZ plugin for legacy Cura. # It contains code from the TweakAtZ plugin V1.0-V4.x and from the ExampleScript by Jaime van Kessel, Ultimaker B.V. -# It runs with the PostProcessingPlugin which is released under the terms of the AGPLv3 or higher. +# It runs with the PostProcessingPlugin which is released under the terms of the LGPLv3 or higher. # This script is licensed under the Creative Commons - Attribution - Share Alike (CC BY-SA) terms # Authors of the ChangeAtZ plugin / script: diff --git a/plugins/PostProcessingPlugin/scripts/ColorMix.py b/plugins/PostProcessingPlugin/scripts/ColorMix.py index dacb40e905..534c0208cf 100644 --- a/plugins/PostProcessingPlugin/scripts/ColorMix.py +++ b/plugins/PostProcessingPlugin/scripts/ColorMix.py @@ -1,6 +1,6 @@ # ColorMix script - 2-1 extruder color mix and blending # This script is specific for the Geeetech A10M dual extruder but should work with other Marlin printers. -# It runs with the PostProcessingPlugin which is released under the terms of the AGPLv3 or higher. +# It runs with the PostProcessingPlugin which is released under the terms of the LGPLv3 or higher. # This script is licensed under the Creative Commons - Attribution - Share Alike (CC BY-SA) terms #Authors of the 2-1 ColorMix plug-in / script: diff --git a/plugins/PostProcessingPlugin/scripts/FilamentChange.py b/plugins/PostProcessingPlugin/scripts/FilamentChange.py index d3c1e60192..93941c0992 100644 --- a/plugins/PostProcessingPlugin/scripts/FilamentChange.py +++ b/plugins/PostProcessingPlugin/scripts/FilamentChange.py @@ -1,5 +1,5 @@ # Copyright (c) 2023 Ultimaker B.V. -# The PostProcessingPlugin is released under the terms of the AGPLv3 or higher. +# The PostProcessingPlugin is released under the terms of the LGPLv3 or higher. # Modification 06.09.2020 # add checkbox, now you can choose and use configuration from the firmware itself. diff --git a/plugins/PostProcessingPlugin/scripts/RetractContinue.py b/plugins/PostProcessingPlugin/scripts/RetractContinue.py index b5ea4d4eda..eaa15e0942 100644 --- a/plugins/PostProcessingPlugin/scripts/RetractContinue.py +++ b/plugins/PostProcessingPlugin/scripts/RetractContinue.py @@ -1,5 +1,5 @@ # Copyright (c) 2023 UltiMaker B.V. -# The PostProcessingPlugin is released under the terms of the AGPLv3 or higher. +# The PostProcessingPlugin is released under the terms of the LGPLv3 or higher. from ..Script import Script diff --git a/plugins/PostProcessingPlugin/scripts/SearchAndReplace.py b/plugins/PostProcessingPlugin/scripts/SearchAndReplace.py index 40a56ace57..7a12c229cc 100644 --- a/plugins/PostProcessingPlugin/scripts/SearchAndReplace.py +++ b/plugins/PostProcessingPlugin/scripts/SearchAndReplace.py @@ -1,5 +1,5 @@ # Copyright (c) 2017 Ghostkeeper -# The PostProcessingPlugin is released under the terms of the AGPLv3 or higher. +# The PostProcessingPlugin is released under the terms of the LGPLv3 or higher. import re #To perform the search and replace. diff --git a/plugins/PostProcessingPlugin/scripts/Stretch.py b/plugins/PostProcessingPlugin/scripts/Stretch.py index 8d35f68822..ab964d160a 100644 --- a/plugins/PostProcessingPlugin/scripts/Stretch.py +++ b/plugins/PostProcessingPlugin/scripts/Stretch.py @@ -1,4 +1,4 @@ -# This PostProcessingPlugin script is released under the terms of the AGPLv3 or higher. +# This PostProcessingPlugin script is released under the terms of the LGPLv3 or higher. """ Copyright (c) 2017 Christophe Baribaud 2017 Python implementation of https://github.com/electrocbd/post_stretch From 8698fd66860c65fb74320bba36fc59998c24165c Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 15 Aug 2023 16:10:04 +0200 Subject: [PATCH 13/26] Create FUNDING.yml --- FUNDING.yml | 1 + 1 file changed, 1 insertion(+) create mode 100644 FUNDING.yml diff --git a/FUNDING.yml b/FUNDING.yml new file mode 100644 index 0000000000..2d108a74e1 --- /dev/null +++ b/FUNDING.yml @@ -0,0 +1 @@ +github: [ultimaker] From bb79282f9595e25c5d040f709162525795f2e05f Mon Sep 17 00:00:00 2001 From: Jaime van Kessel Date: Tue, 15 Aug 2023 16:51:50 +0200 Subject: [PATCH 14/26] Update version & releasedate in CITATION.cff --- CITATION.cff | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CITATION.cff b/CITATION.cff index 627cfa2515..7a93bbf099 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -18,8 +18,8 @@ url: "https://ultimaker.com/software/ultimaker-cura" repository-code: "https://github.com/Ultimaker/Cura" license: LGPL-3.0 license-url: "https://github.com/Ultimaker/Cura/blob/main/LICENSE" -version: 5.2.1 -date-released: "2022-10-19" +version: 5.4.0 +date-released: "2023-07-04" keywords: - Ultimaker - Cura From 64715aeb33c90e79c546fbaa342aff2d59e99550 Mon Sep 17 00:00:00 2001 From: Casper Lamboo Date: Fri, 18 Aug 2023 09:50:46 +0200 Subject: [PATCH 15/26] Fix printer definition for SV02 CURA-10949 --- resources/definitions/SV02.def.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/definitions/SV02.def.json b/resources/definitions/SV02.def.json index 95b165075b..b603900f47 100644 --- a/resources/definitions/SV02.def.json +++ b/resources/definitions/SV02.def.json @@ -59,7 +59,7 @@ "machine_width": { "default_value": 280 }, "material_diameter": { "default_value": 1.75 }, "material_initial_print_temperature": { "value": "material_print_temperature" }, - "prime_tower_min_volume": { "value": "((reveOrValue('layer_height'))/2" }, + "prime_tower_min_volume": { "value": "((resolveOrValue('layer_height'))/2" }, "prime_tower_position_x": { "value": "240" }, "prime_tower_position_y": { "value": "190" }, "prime_tower_size": { "value": "30" }, @@ -73,4 +73,4 @@ "top_bottom_thickness": { "default_value": 1 }, "wall_0_wipe_dist": { "value": 0.0 } } -} \ No newline at end of file +} From 8ee48434e7af6f197b942ec219339688a1bfd666 Mon Sep 17 00:00:00 2001 From: casperlamboo Date: Fri, 18 Aug 2023 07:51:51 +0000 Subject: [PATCH 16/26] Applied printer-linter format --- resources/definitions/SV02.def.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/definitions/SV02.def.json b/resources/definitions/SV02.def.json index b603900f47..728a6c6242 100644 --- a/resources/definitions/SV02.def.json +++ b/resources/definitions/SV02.def.json @@ -73,4 +73,4 @@ "top_bottom_thickness": { "default_value": 1 }, "wall_0_wipe_dist": { "value": 0.0 } } -} +} \ No newline at end of file From a077dc4b5e53bb63a1d40274f977fd3f4eb3fdee Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Fri, 18 Aug 2023 11:32:20 +0200 Subject: [PATCH 17/26] Always force detection of default profile Contributes to CURA-10855 --- .github/workflows/cura-installer.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/cura-installer.yml b/.github/workflows/cura-installer.yml index 9572b31aee..e5a205a770 100644 --- a/.github/workflows/cura-installer.yml +++ b/.github/workflows/cura-installer.yml @@ -155,7 +155,7 @@ jobs: sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-10 10 - name: Create the default Conan profile - run: conan profile new default --detect + run: conan profile new default --detect --force - name: Configure GPG Key Linux (Bash) if: ${{ runner.os == 'Linux' }} From 83d2c8154b26fb36b312bb129c1b28489f2f4056 Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Fri, 18 Aug 2023 21:21:36 +0200 Subject: [PATCH 18/26] use dedicated workflow for macos installer Contributes to CURA-8415 --- .github/workflows/installers/macos.yml | 245 +++++++++++++++++++++++++ 1 file changed, 245 insertions(+) create mode 100644 .github/workflows/installers/macos.yml diff --git a/.github/workflows/installers/macos.yml b/.github/workflows/installers/macos.yml new file mode 100644 index 0000000000..c9ac1dd159 --- /dev/null +++ b/.github/workflows/installers/macos.yml @@ -0,0 +1,245 @@ +name: Macos Installer +run-name: ${{ inputs.cura_conan_version }} for Macos-${{ inputs.architecture }} by @${{ github.actor }} + +on: + workflow_dispatch: + inputs: + cura_conan_version: + description: 'Cura Conan Version' + default: 'cura/latest@ultimaker/testing' + required: true + type: string + conan_args: + description: 'Conan args: eq.: --require-override' + default: '' + required: false + type: string + enterprise: + description: 'Build Cura as an Enterprise edition' + default: false + required: true + type: boolean + staging: + description: 'Use staging API' + default: false + required: true + type: boolean + architecture: + description: 'Architecture' + required: true + default: 'X64' + type: choice + options: + - X64 + - ARM64 + workflow_call: + inputs: + cura_conan_version: + description: 'Cura Conan Version' + default: 'cura/latest@ultimaker/testing' + required: true + type: string + conan_args: + description: 'Conan args: eq.: --require-override' + default: '' + required: false + type: string + enterprise: + description: 'Build Cura as an Enterprise edition' + default: false + required: true + type: boolean + staging: + description: 'Use staging API' + default: false + required: true + type: boolean + architecture: + description: 'Architecture' + required: true + default: 'x64' + type: choice + options: + - x64 + - arm64 + +env: + CONAN_LOGIN_USERNAME_CURA: ${{ secrets.CONAN_USER }} + CONAN_PASSWORD_CURA: ${{ secrets.CONAN_PASS }} + CODESIGN_IDENTITY: ${{ secrets.CODESIGN_IDENTITY }} + MAC_NOTARIZE_USER: ${{ secrets.MAC_NOTARIZE_USER }} + MAC_NOTARIZE_PASS: ${{ secrets.MAC_NOTARIZE_PASS }} + MACOS_CERT_P12: ${{ secrets.MACOS_CERT_P12 }} + MACOS_CERT_INSTALLER_P12: ${{ secrets.MACOS_CERT_INSTALLER_P12 }} + MACOS_CERT_USER: ${{ secrets.MACOS_CERT_USER }} + MACOS_CERT_PASSPHRASE: ${{ secrets.MACOS_CERT_PASSPHRASE }} + CURA_CONAN_VERSION: ${{ inputs.cura_conan_version }} + ENTERPRISE: ${{ inputs.enterprise }} + STAGING: ${{ inputs.staging }} + +jobs: + cura-installer-create: + runs-on: [ self-hosted, "${{ inputs.architecture }}" ] + + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Setup Python and pip + uses: actions/setup-python@v4 + with: + python-version: '3.10.x' + cache: 'pip' + cache-dependency-path: .github/workflows/requirements-conan-package.txt + + - name: Install Python requirements for runner + run: pip install -r .github/workflows/requirements-conan-package.txt + + - name: Install MacOS system requirements + run: brew install cmake autoconf automake ninja create-dmg + + - name: Create the default Conan profile + run: conan profile new default --detect --force + + - name: Remove Macos keychain (Bash) + run: security delete-keychain signing_temp.keychain || true + + - name: Configure Macos keychain Developer Cert(Bash) + id: macos-keychain-developer-cert + uses: apple-actions/import-codesign-certs@v1 + with: + keychain-password: ${{ secrets.MACOS_KEYCHAIN_PASSWORD }} + p12-file-base64: ${{ secrets.MACOS_CERT_P12 }} + p12-password: ${{ secrets.MACOS_CERT_PASSPHRASE }} + + - name: Configure Macos keychain Installer Cert (Bash) + id: macos-keychain-installer-cert + uses: apple-actions/import-codesign-certs@v1 + with: + keychain-password: ${{ secrets.MACOS_KEYCHAIN_PASSWORD }} + create-keychain: false # keychain is created in previous use of action. + p12-file-base64: ${{ secrets.MACOS_CERT_INSTALLER_P12 }} + p12-password: ${{ secrets.MACOS_CERT_PASSPHRASE }} + + - name: Get Conan configuration + run: conan config install https://github.com/Ultimaker/conan-config.git + + - name: + + - name: Set Environment variables for Cura (bash) + run: | + . ./cura_inst/bin/activate_github_actions_env.sh + . ./cura_inst/bin/activate_github_actions_version_env.sh + + - name: Unlock Macos keychain (Bash) + run: security unlock -p $TEMP_KEYCHAIN_PASSWORD signing_temp.keychain + env: + TEMP_KEYCHAIN_PASSWORD: ${{ steps.macos-keychain-developer-cert.outputs.keychain-password }} + + # FIXME: This is a workaround to ensure that we use and pack a shared library for OpenSSL 1.1.1l. We currently compile + # OpenSSL statically for CPython, but our Python Dependenies (such as PyQt6) require a shared library. + # Because Conan won't allow for building the same library with two different options (easily) we need to install it explicitly + # and do a manual copy to the VirtualEnv, such that Pyinstaller can find it. + - name: Install OpenSSL shared + run: conan install openssl/1.1.1l@_/_ --build=missing --update -o openssl:shared=True -g deploy + + - name: Copy OpenSSL shared (Bash) + run: | + cp ./openssl/lib/*.so* ./cura_inst/bin/ || true + cp ./openssl/lib/*.dylib* ./cura_inst/bin/ || true + + - name: Create the Cura dist + run: pyinstaller ./cura_inst/UltiMaker-Cura.spec + + - name: Output the name file name and extension + id: filename + shell: python + run: | + import os + enterprise = "-Enterprise" if "${{ inputs.enterprise }}" == "true" else "" + installer_filename = f"UltiMaker-Cura-{os.getenv('CURA_VERSION_FULL')}{enterprise}-macos-${{ inputs.arch }}" + output_env = os.environ["GITHUB_OUTPUT"] + content = "" + if os.path.exists(output_env): + with open(output_env, "r") as f: + content = f.read() + with open(output_env, "w") as f: + f.write(content) + f.writelines(f"INSTALLER_FILENAME={installer_filename}\n") + + - name: Summarize the used Conan dependencies + shell: python + run: | + import os + import json + from pathlib import Path + + conan_install_info_path = Path("cura_inst/conan_install_info.json") + conan_info = {"installed": []} + if os.path.exists(conan_install_info_path): + with open(conan_install_info_path, "r") as f: + conan_info = json.load(f) + sorted_deps = sorted([dep["recipe"]["id"].replace('#', r' rev: ') for dep in conan_info["installed"]]) + + summary_env = os.environ["GITHUB_STEP_SUMMARY"] + content = "" + if os.path.exists(summary_env): + with open(summary_env, "r") as f: + content = f.read() + + with open(summary_env, "w") as f: + f.write(content) + f.writelines("# ${{ steps.filename.outputs.INSTALLER_FILENAME }}\n") + f.writelines("## Conan packages:\n") + for dep in sorted_deps: + f.writelines(f"`{dep}`\n") + + - name: Summarize the used Python modules + shell: python + run: | + import os + import pkg_resources + summary_env = os.environ["GITHUB_STEP_SUMMARY"] + content = "" + if os.path.exists(summary_env): + with open(summary_env, "r") as f: + content = f.read() + + with open(summary_env, "w") as f: + f.write(content) + f.writelines("## Python modules:\n") + for package in pkg_resources.working_set: + f.writelines(f"`{package.key}/{package.version}`\n") + + - name: Create the Macos dmg and pkg (Bash) + run: python ../cura_inst/packaging/MacOS/build_macos.py --source_path ../cura_inst --dist_path . --cura_conan_version $CURA_CONAN_VERSION --filename "${{ steps.filename.outputs.INSTALLER_FILENAME }}" --build_pkg --build_dmg --app_name "$CURA_APP_NAME" + working-directory: dist + + - name: Upload the pkg + uses: actions/upload-artifact@v3 + with: + name: ${{ steps.filename.outputs.INSTALLER_FILENAME }}-pkg + path: | + dist/${{ steps.filename.outputs.INSTALLER_FILENAME }}.pkg + retention-days: 5 + + - name: Upload the dmg + uses: actions/upload-artifact@v3 + with: + name: ${{ steps.filename.outputs.INSTALLER_FILENAME }}-dmg + path: | + dist/${{ steps.filename.outputs.INSTALLER_FILENAME }}.dmg + retention-days: 5 + + notify-export: + if: ${{ always() }} + needs: [ cura-installer-create ] + + uses: ultimaker/cura/.github/workflows/notify.yml@main + with: + success: ${{ contains(join(needs.*.result, ','), 'success') }} + success_title: "Create the Cura distributions" + success_body: "Installers for ${{ inputs.cura_conan_version }}" + failure_title: "Failed to create the Cura distributions" + failure_body: "Failed to create at least 1 installer for ${{ inputs.cura_conan_version }}" + secrets: inherit From 1ffd94e07c8fa2d7d2997a3d6744bcf15b0e50d4 Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Fri, 18 Aug 2023 21:28:40 +0200 Subject: [PATCH 19/26] moved macos macos installer to root workflows Contributes to CURA-8415 --- .github/workflows/{installers => }/macos.yml | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/workflows/{installers => }/macos.yml (100%) diff --git a/.github/workflows/installers/macos.yml b/.github/workflows/macos.yml similarity index 100% rename from .github/workflows/installers/macos.yml rename to .github/workflows/macos.yml From 50db1fbb620a50a33205db10e62246d0f494b26a Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Fri, 18 Aug 2023 21:33:39 +0200 Subject: [PATCH 20/26] Set arch for X64 Contributes to CURA-8415 --- .github/workflows/macos.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index c9ac1dd159..e27a3b679f 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -124,7 +124,9 @@ jobs: - name: Get Conan configuration run: conan config install https://github.com/Ultimaker/conan-config.git - - name: + - name: Set architecture conan profile + if: ${{ inputs.architecture == 'X64' }} + run: conan profile update settings.arch=x86_64 default - name: Set Environment variables for Cura (bash) run: | From 1dddb9ff89ad7caf8a3c7e90a65bf4934a4742d7 Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Fri, 18 Aug 2023 21:36:44 +0200 Subject: [PATCH 21/26] use string for workflow call Contributes to CURA-8415 --- .github/workflows/macos.yml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index e27a3b679f..bc59eb27c1 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -57,11 +57,8 @@ on: architecture: description: 'Architecture' required: true - default: 'x64' - type: choice - options: - - x64 - - arm64 + default: 'X64' + type: string env: CONAN_LOGIN_USERNAME_CURA: ${{ secrets.CONAN_USER }} From 62aa1a6af6e0d28f14db55c745a4bddc735b51b7 Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Fri, 18 Aug 2023 23:42:14 +0200 Subject: [PATCH 22/26] Setup minimum workflow for Windows Needed for the GH UI Contributes to CURA-8415 --- .github/workflows/windows.yml | 77 +++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 .github/workflows/windows.yml diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml new file mode 100644 index 0000000000..1fb38e352d --- /dev/null +++ b/.github/workflows/windows.yml @@ -0,0 +1,77 @@ +name: Windows Installer +run-name: ${{ inputs.cura_conan_version }} for Windows-${{ inputs.architecture }} by @${{ github.actor }} + +on: + workflow_dispatch: + inputs: + cura_conan_version: + description: 'Cura Conan Version' + default: 'cura/latest@ultimaker/testing' + required: true + type: string + conan_args: + description: 'Conan args: eq.: --require-override' + default: '' + required: false + type: string + enterprise: + description: 'Build Cura as an Enterprise edition' + default: false + required: true + type: boolean + staging: + description: 'Use staging API' + default: false + required: true + type: boolean + architecture: + description: 'Architecture' + required: true + default: 'X64' + type: choice + options: + - X64 + workflow_call: + inputs: + cura_conan_version: + description: 'Cura Conan Version' + default: 'cura/latest@ultimaker/testing' + required: true + type: string + conan_args: + description: 'Conan args: eq.: --require-override' + default: '' + required: false + type: string + enterprise: + description: 'Build Cura as an Enterprise edition' + default: false + required: true + type: boolean + staging: + description: 'Use staging API' + default: false + required: true + type: boolean + architecture: + description: 'Architecture' + required: true + default: 'X64' + type: string + +env: + CONAN_LOGIN_USERNAME_CURA: ${{ secrets.CONAN_USER }} + CONAN_PASSWORD_CURA: ${{ secrets.CONAN_PASS }} + WIN_CERT_INSTALLER_CER: ${{ secrets.WIN_CERT_INSTALLER_CER }} + WIN_CERT_INSTALLER_CER_PASS: ${{ secrets.WIN_CERT_INSTALLER_CER_PASS }} + CURA_CONAN_VERSION: ${{ inputs.cura_conan_version }} + ENTERPRISE: ${{ inputs.enterprise }} + STAGING: ${{ inputs.staging }} + +jobs: + cura-installer-create: + runs-on: 'windows-2022' + + steps: + - name: Checkout + uses: actions/checkout@v3 \ No newline at end of file From b681439bba3b8e81088eaa46fc97079cfe8b0b09 Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Fri, 18 Aug 2023 23:46:54 +0200 Subject: [PATCH 23/26] Setup minimum workflow for Linux Needed for the GH UI Contributes to CURA-8415 --- .github/workflows/linux.yml | 79 +++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 .github/workflows/linux.yml diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml new file mode 100644 index 0000000000..7940a8126b --- /dev/null +++ b/.github/workflows/linux.yml @@ -0,0 +1,79 @@ +name: Linux Installer +run-name: ${{ inputs.cura_conan_version }} for Linux-${{ inputs.architecture }} by @${{ github.actor }} + +on: + workflow_dispatch: + inputs: + cura_conan_version: + description: 'Cura Conan Version' + default: 'cura/latest@ultimaker/testing' + required: true + type: string + conan_args: + description: 'Conan args: eq.: --require-override' + default: '' + required: false + type: string + enterprise: + description: 'Build Cura as an Enterprise edition' + default: false + required: true + type: boolean + staging: + description: 'Use staging API' + default: false + required: true + type: boolean + architecture: + description: 'Architecture' + required: true + default: 'X64' + type: choice + options: + - X64 + workflow_call: + inputs: + cura_conan_version: + description: 'Cura Conan Version' + default: 'cura/latest@ultimaker/testing' + required: true + type: string + conan_args: + description: 'Conan args: eq.: --require-override' + default: '' + required: false + type: string + enterprise: + description: 'Build Cura as an Enterprise edition' + default: false + required: true + type: boolean + staging: + description: 'Use staging API' + default: false + required: true + type: boolean + architecture: + description: 'Architecture' + required: true + default: 'X64' + type: string + +env: + CONAN_LOGIN_USERNAME_CURA: ${{ secrets.CONAN_USER }} + CONAN_PASSWORD_CURA: ${{ secrets.CONAN_PASS }} + GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }} + CURA_CONAN_VERSION: ${{ inputs.cura_conan_version }} + ENTERPRISE: ${{ inputs.enterprise }} + STAGING: ${{ inputs.staging }} + +jobs: + cura-installer-create: + strategy: + matrix: + os: [ "ubuntu-20.04", "ubuntu-22.04" ] + runs-on: ${{ matrix.os }} + + steps: + - name: Checkout + uses: actions/checkout@v3 \ No newline at end of file From f452bcf5766519a42d791346f234f9a96ca304c5 Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Fri, 18 Aug 2023 23:54:48 +0200 Subject: [PATCH 24/26] Specify OS as UI option Contributes to CURA-8415 --- .github/workflows/linux.yml | 18 ++++++++++++++---- .github/workflows/macos.yml | 16 +++++++++++++++- .github/workflows/windows.yml | 14 +++++++++++++- 3 files changed, 42 insertions(+), 6 deletions(-) diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 7940a8126b..e307354c0a 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -31,6 +31,14 @@ on: type: choice options: - X64 + operating_system: + description: 'OS' + required: true + default: 'ubuntu-22.04' + type: choice + options: + - ubuntu-22.04 + - ubuntu-20.04 workflow_call: inputs: cura_conan_version: @@ -58,6 +66,11 @@ on: required: true default: 'X64' type: string + operating_system: + description: 'OS' + required: true + default: 'ubuntu-22.04' + type: string env: CONAN_LOGIN_USERNAME_CURA: ${{ secrets.CONAN_USER }} @@ -69,10 +82,7 @@ env: jobs: cura-installer-create: - strategy: - matrix: - os: [ "ubuntu-20.04", "ubuntu-22.04" ] - runs-on: ${{ matrix.os }} + runs-on: ${{ inputs.operating_system }} steps: - name: Checkout diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index bc59eb27c1..1a9b8809e3 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -32,6 +32,15 @@ on: options: - X64 - ARM64 + operating_system: + description: 'OS' + required: true + default: 'macos-11' + type: choice + options: + - self-hosted + - macos-11 + - macos-12 workflow_call: inputs: cura_conan_version: @@ -59,6 +68,11 @@ on: required: true default: 'X64' type: string + operating_system: + description: 'OS' + required: true + default: 'macos-11' + type: string env: CONAN_LOGIN_USERNAME_CURA: ${{ secrets.CONAN_USER }} @@ -76,7 +90,7 @@ env: jobs: cura-installer-create: - runs-on: [ self-hosted, "${{ inputs.architecture }}" ] + runs-on: ${{ inputs.operating_system }} steps: - name: Checkout diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 1fb38e352d..d76a44d917 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -31,6 +31,13 @@ on: type: choice options: - X64 + operating_system: + description: 'OS' + required: true + default: 'windows-2022' + type: choice + options: + - windows-2022 workflow_call: inputs: cura_conan_version: @@ -58,6 +65,11 @@ on: required: true default: 'X64' type: string + operating_system: + description: 'OS' + required: true + default: 'windows-2022' + type: string env: CONAN_LOGIN_USERNAME_CURA: ${{ secrets.CONAN_USER }} @@ -70,7 +82,7 @@ env: jobs: cura-installer-create: - runs-on: 'windows-2022' + runs-on: ${{ inputs.operating_system }} steps: - name: Checkout From 457bbb154309d831892e4aa6f49a296d8f329e2d Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Sat, 19 Aug 2023 01:44:33 +0200 Subject: [PATCH 25/26] All installers Contributes to CURA-8415 --- .github/workflows/installers.yml | 77 ++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 .github/workflows/installers.yml diff --git a/.github/workflows/installers.yml b/.github/workflows/installers.yml new file mode 100644 index 0000000000..e2fd109a57 --- /dev/null +++ b/.github/workflows/installers.yml @@ -0,0 +1,77 @@ +name: All installers +run-name: ${{ inputs.cura_conan_version }} by @${{ github.actor }} + +on: + workflow_dispatch: + inputs: + cura_conan_version: + description: 'Cura Conan Version' + default: 'cura/latest@ultimaker/testing' + required: true + type: string + conan_args: + description: 'Conan args: eq.: --require-override' + default: '' + required: false + type: string + enterprise: + description: 'Build Cura as an Enterprise edition' + default: false + required: true + type: boolean + staging: + description: 'Use staging API' + default: false + required: true + type: boolean + +jobs: + windows-installer: + uses: ./.github/workflows/windows.yml@CURA-8415_self_hosted_runner + with: + cura_conan_version: ${{ inputs.cura_conan_version }} + conan_args: ${{ inputs.conan_args }} + enterprise: ${{ inputs.enterprise }} + staging: ${{ inputs.staging }} + architecture: X64 + operating_system: windows-2022 + + linux-modern-installer: + uses: ./.github/workflows/linux.yml@CURA-8415_self_hosted_runner + with: + cura_conan_version: ${{ inputs.cura_conan_version }} + conan_args: ${{ inputs.conan_args }} + enterprise: ${{ inputs.enterprise }} + staging: ${{ inputs.staging }} + architecture: X64 + operating_system: ubuntu-22.04 + + linux-legacy-installer: + uses: ./.github/workflows/linux.yml@CURA-8415_self_hosted_runner + with: + cura_conan_version: ${{ inputs.cura_conan_version }} + conan_args: ${{ inputs.conan_args }} + enterprise: ${{ inputs.enterprise }} + staging: ${{ inputs.staging }} + architecture: X64 + operating_system: ubuntu-20.04 + + macos-installer: + uses: ./.github/workflows/macos.yml@CURA-8415_self_hosted_runner + with: + cura_conan_version: ${{ inputs.cura_conan_version }} + conan_args: ${{ inputs.conan_args }} + enterprise: ${{ inputs.enterprise }} + staging: ${{ inputs.staging }} + architecture: X64 + operating_system: macos-11.0 + + macos-arm-installer: + uses: ./.github/workflows/macos.yml@CURA-8415_self_hosted_runner + with: + cura_conan_version: ${{ inputs.cura_conan_version }} + conan_args: ${{ inputs.conan_args }} + enterprise: ${{ inputs.enterprise }} + staging: ${{ inputs.staging }} + architecture: ARM64 + operating_system: self-hosted \ No newline at end of file From fbfb4b82dd17b9173a23b0d4ac671994f1318075 Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Sat, 19 Aug 2023 01:46:07 +0200 Subject: [PATCH 26/26] Don't specify versions Contributes to CURA-8415 --- .github/workflows/installers.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/installers.yml b/.github/workflows/installers.yml index e2fd109a57..283fc76ee5 100644 --- a/.github/workflows/installers.yml +++ b/.github/workflows/installers.yml @@ -27,7 +27,7 @@ on: jobs: windows-installer: - uses: ./.github/workflows/windows.yml@CURA-8415_self_hosted_runner + uses: ./.github/workflows/windows.yml with: cura_conan_version: ${{ inputs.cura_conan_version }} conan_args: ${{ inputs.conan_args }} @@ -37,7 +37,7 @@ jobs: operating_system: windows-2022 linux-modern-installer: - uses: ./.github/workflows/linux.yml@CURA-8415_self_hosted_runner + uses: ./.github/workflows/linux.yml with: cura_conan_version: ${{ inputs.cura_conan_version }} conan_args: ${{ inputs.conan_args }} @@ -47,7 +47,7 @@ jobs: operating_system: ubuntu-22.04 linux-legacy-installer: - uses: ./.github/workflows/linux.yml@CURA-8415_self_hosted_runner + uses: ./.github/workflows/linux.yml with: cura_conan_version: ${{ inputs.cura_conan_version }} conan_args: ${{ inputs.conan_args }} @@ -57,7 +57,7 @@ jobs: operating_system: ubuntu-20.04 macos-installer: - uses: ./.github/workflows/macos.yml@CURA-8415_self_hosted_runner + uses: ./.github/workflows/macos.yml with: cura_conan_version: ${{ inputs.cura_conan_version }} conan_args: ${{ inputs.conan_args }} @@ -67,7 +67,7 @@ jobs: operating_system: macos-11.0 macos-arm-installer: - uses: ./.github/workflows/macos.yml@CURA-8415_self_hosted_runner + uses: ./.github/workflows/macos.yml with: cura_conan_version: ${{ inputs.cura_conan_version }} conan_args: ${{ inputs.conan_args }}