Merge branch 'main' into PP-71_allow-bridge-speeds-to-be-lower-then-cool_min_speed

This commit is contained in:
jspijker 2023-02-03 10:52:30 +01:00
commit 64112b4158
24 changed files with 755 additions and 458 deletions

View file

@ -170,9 +170,21 @@ jobs:
bump_up_release_tag = int(latest_branch_version.prerelease.split('.')[1]) + 1
actual_version = f"{latest_branch_version.major}.{latest_branch_version.minor}.{latest_branch_version.patch}-{latest_branch_version.prerelease.split('.')[0]}.{bump_up_release_tag}+{buildmetadata}{channel_metadata}"
else:
bump_up_minor = int(latest_branch_version.minor) + 1
reset_patch = 0
actual_version = f"{latest_branch_version.major}.{bump_up_minor}.{reset_patch}-alpha+{buildmetadata}{channel_metadata}"
max_branches_version = tools.Version("0.0.0")
branches_no_commits = no_commits
for branch in repo.references:
try:
if "remotes/origin" in branch.abspath:
b_version = tools.Version(branch.name.split("/")[-1])
if b_version < tools.Version("10.0.0") and b_version > max_branches_version:
max_branches_version = b_version
branches_no_commits = repo.commit().count() - branch.commit.count()
except:
pass
if max_branches_version > latest_branch_version:
actual_version = f"{max_branches_version.major}.{int(max_branches_version.minor) + 1}.0-alpha+{buildmetadata}{channel}_{branches_no_commits}"
else:
actual_version = f"{latest_branch_version.major}.{int(latest_branch_version.minor) + 1}.0-alpha+{buildmetadata}{channel_metadata}"
# %% Set the environment output
output_env = os.environ["GITHUB_OUTPUT"]

View file

@ -10,443 +10,333 @@
# requirements (use the <dep_name>/(latest)@ultimaker/testing)
#
# Subject to change in the future!
"5.3.0-beta":
requirements:
- "pyarcus/5.2.2"
- "curaengine/(latest)@ultimaker/stable"
- "pysavitar/5.2.2"
- "pynest2d/5.2.2"
- "uranium/(latest)@ultimaker/stable"
- "fdm_materials/(latest)@ultimaker/stable"
- "cura_binary_data/(latest)@ultimaker/stable"
- "cpython/3.10.4"
internal_requirements:
- "fdm_materials_private/(latest)@ultimaker/testing"
- "cura_private_data/(latest)@ultimaker/testing"
runinfo:
entrypoint: "cura_app.py"
pyinstaller:
datas:
cura_plugins:
package: "cura"
src: "plugins"
dst: "share/cura/plugins"
cura_resources:
package: "cura"
src: "resources"
dst: "share/cura/resources"
cura_private_data:
package: "cura_private_data"
src: "resources"
dst: "share/cura/resources"
internal: true
cura_private_data_plugins:
package: "cura_private_data"
src: "plugins"
dst: "share/cura/plugins"
internal: true
uranium_plugins:
package: "uranium"
src: "plugins"
dst: "share/uranium/plugins"
uranium_resources:
package: "uranium"
src: "resources"
dst: "share/uranium/resources"
uranium_um_qt_qml_um:
package: "uranium"
src: "site-packages/UM/Qt/qml/UM"
dst: "PyQt6/Qt6/qml/UM"
cura_binary_data:
package: "cura_binary_data"
src: "resources/cura/resources"
dst: "share/cura/resources"
uranium_binary_data:
package: "cura_binary_data"
src: "resources/uranium/resources"
dst: "share/uranium/resources"
windows_binary_data:
package: "cura_binary_data"
src: "windows"
dst: "share/windows"
fdm_materials:
package: "fdm_materials"
src: "materials"
dst: "share/cura/resources/materials"
fdm_materials_private:
package: "fdm_materials_private"
src: "resources/materials"
dst: "share/cura/resources/materials"
internal: true
tcl:
package: "tcl"
src: "lib/tcl8.6"
dst: "tcl"
tk:
package: "tk"
src: "lib/tk8.6"
dst: "tk"
binaries:
curaengine:
package: "curaengine"
src: "bin"
dst: "."
binary: "CuraEngine"
hiddenimports:
- "pySavitar"
- "pyArcus"
- "pynest2d"
- "PyQt6"
- "PyQt6.QtNetwork"
- "PyQt6.sip"
- "logging.handlers"
- "zeroconf"
- "fcntl"
- "stl"
- "serial"
collect_all:
- "cura"
- "UM"
- "serial"
- "Charon"
- "sqlite3"
- "trimesh"
- "win32ctypes"
- "PyQt6"
- "PyQt6.QtNetwork"
- "PyQt6.sip"
- "stl"
icon:
Windows: "./icons/Cura.ico"
Macos: "./icons/cura.icns"
Linux: "./icons/cura-128.png"
"5.4.0-alpha":
requirements:
- "pyarcus/5.2.2"
- "curaengine/(latest)@ultimaker/testing"
- "pysavitar/5.2.2"
- "pynest2d/5.2.2"
- "uranium/(latest)@ultimaker/testing"
- "fdm_materials/(latest)@ultimaker/testing"
- "cura_binary_data/(latest)@ultimaker/testing"
- "cpython/3.10.4"
internal_requirements:
- "fdm_materials_private/(latest)@ultimaker/testing"
- "cura_private_data/(latest)@ultimaker/testing"
runinfo:
entrypoint: "cura_app.py"
pyinstaller:
datas:
cura_plugins:
package: "cura"
src: "plugins"
dst: "share/cura/plugins"
cura_resources:
package: "cura"
src: "resources"
dst: "share/cura/resources"
cura_private_data:
package: "cura_private_data"
src: "resources"
dst: "share/cura/resources"
internal: true
cura_private_data_plugins:
package: "cura_private_data"
src: "plugins"
dst: "share/cura/plugins"
internal: true
uranium_plugins:
package: "uranium"
src: "plugins"
dst: "share/uranium/plugins"
uranium_resources:
package: "uranium"
src: "resources"
dst: "share/uranium/resources"
uranium_um_qt_qml_um:
package: "uranium"
src: "site-packages/UM/Qt/qml/UM"
dst: "PyQt6/Qt6/qml/UM"
cura_binary_data:
package: "cura_binary_data"
src: "resources/cura/resources"
dst: "share/cura/resources"
uranium_binary_data:
package: "cura_binary_data"
src: "resources/uranium/resources"
dst: "share/uranium/resources"
windows_binary_data:
package: "cura_binary_data"
src: "windows"
dst: "share/windows"
fdm_materials:
package: "fdm_materials"
src: "materials"
dst: "share/cura/resources/materials"
fdm_materials_private:
package: "fdm_materials_private"
src: "resources/materials"
dst: "share/cura/resources/materials"
internal: true
tcl:
package: "tcl"
src: "lib/tcl8.6"
dst: "tcl"
tk:
package: "tk"
src: "lib/tk8.6"
dst: "tk"
binaries:
curaengine:
package: "curaengine"
src: "bin"
dst: "."
binary: "CuraEngine"
hiddenimports:
- "pySavitar"
- "pyArcus"
- "pynest2d"
- "PyQt6"
- "PyQt6.QtNetwork"
- "PyQt6.sip"
- "logging.handlers"
- "zeroconf"
- "fcntl"
- "stl"
- "serial"
collect_all:
- "cura"
- "UM"
- "serial"
- "Charon"
- "sqlite3"
- "trimesh"
- "win32ctypes"
- "PyQt6"
- "PyQt6.QtNetwork"
- "PyQt6.sip"
- "stl"
icon:
Windows: "./icons/Cura.ico"
Macos: "./icons/cura.icns"
Linux: "./icons/cura-128.png"
"5.3.0":
requirements:
- "pyarcus/5.2.2"
- "curaengine/5.3.0"
- "pysavitar/5.2.2"
- "pynest2d/5.2.2"
- "uranium/5.3.0"
- "fdm_materials/5.3.0"
- "cura_binary_data/5.3.0"
- "cpython/3.10.4"
internal_requirements:
- "fdm_materials_private/(latest)@ultimaker/testing"
- "cura_private_data/(latest)@ultimaker/testing"
runinfo:
entrypoint: "cura_app.py"
pyinstaller:
datas:
cura_plugins:
package: "cura"
src: "plugins"
dst: "share/cura/plugins"
cura_resources:
package: "cura"
src: "resources"
dst: "share/cura/resources"
cura_private_data:
package: "cura_private_data"
src: "resources"
dst: "share/cura/resources"
internal: true
cura_private_data_plugins:
package: "cura_private_data"
src: "plugins"
dst: "share/cura/plugins"
internal: true
uranium_plugins:
package: "uranium"
src: "plugins"
dst: "share/uranium/plugins"
uranium_resources:
package: "uranium"
src: "resources"
dst: "share/uranium/resources"
uranium_um_qt_qml_um:
package: "uranium"
src: "site-packages/UM/Qt/qml/UM"
dst: "PyQt6/Qt6/qml/UM"
cura_binary_data:
package: "cura_binary_data"
src: "resources/cura/resources"
dst: "share/cura/resources"
uranium_binary_data:
package: "cura_binary_data"
src: "resources/uranium/resources"
dst: "share/uranium/resources"
windows_binary_data:
package: "cura_binary_data"
src: "windows"
dst: "share/windows"
fdm_materials:
package: "fdm_materials"
src: "materials"
dst: "share/cura/resources/materials"
fdm_materials_private:
package: "fdm_materials_private"
src: "resources/materials"
dst: "share/cura/resources/materials"
internal: true
tcl:
package: "tcl"
src: "lib/tcl8.6"
dst: "tcl"
tk:
package: "tk"
src: "lib/tk8.6"
dst: "tk"
binaries:
curaengine:
package: "curaengine"
src: "bin"
dst: "."
binary: "CuraEngine"
hiddenimports:
- "pySavitar"
- "pyArcus"
- "pynest2d"
- "PyQt6"
- "PyQt6.QtNetwork"
- "PyQt6.sip"
- "logging.handlers"
- "zeroconf"
- "fcntl"
- "stl"
- "serial"
collect_all:
- "cura"
- "UM"
- "serial"
- "Charon"
- "sqlite3"
- "trimesh"
- "win32ctypes"
- "PyQt6"
- "PyQt6.QtNetwork"
- "PyQt6.sip"
- "stl"
icon:
Windows: "./icons/Cura.ico"
Macos: "./icons/cura.icns"
Linux: "./icons/cura-128.png"
"5.3.0-alpha":
requirements:
- "pyarcus/5.2.2"
- "curaengine/(latest)@ultimaker/testing"
- "pysavitar/5.2.2"
- "pynest2d/5.2.2"
- "uranium/(latest)@ultimaker/testing"
- "fdm_materials/(latest)@ultimaker/testing"
- "cura_binary_data/(latest)@ultimaker/testing"
- "cpython/3.10.4"
internal_requirements:
- "fdm_materials_private/(latest)@ultimaker/testing"
- "cura_private_data/(latest)@ultimaker/testing"
runinfo:
entrypoint: "cura_app.py"
pyinstaller:
datas:
cura_plugins:
package: "cura"
src: "plugins"
dst: "share/cura/plugins"
cura_resources:
package: "cura"
src: "resources"
dst: "share/cura/resources"
cura_private_data:
package: "cura_private_data"
src: "resources"
dst: "share/cura/resources"
internal: true
cura_private_data_plugins:
package: "cura_private_data"
src: "plugins"
dst: "share/cura/plugins"
internal: true
uranium_plugins:
package: "uranium"
src: "plugins"
dst: "share/uranium/plugins"
uranium_resources:
package: "uranium"
src: "resources"
dst: "share/uranium/resources"
uranium_um_qt_qml_um:
package: "uranium"
src: "site-packages/UM/Qt/qml/UM"
dst: "PyQt6/Qt6/qml/UM"
cura_binary_data:
package: "cura_binary_data"
src: "resources/cura/resources"
dst: "share/cura/resources"
uranium_binary_data:
package: "cura_binary_data"
src: "resources/uranium/resources"
dst: "share/uranium/resources"
windows_binary_data:
package: "cura_binary_data"
src: "windows"
dst: "share/windows"
fdm_materials:
package: "fdm_materials"
src: "materials"
dst: "share/cura/resources/materials"
fdm_materials_private:
package: "fdm_materials_private"
src: "resources/materials"
dst: "share/cura/resources/materials"
internal: true
tcl:
package: "tcl"
src: "lib/tcl8.6"
dst: "tcl"
tk:
package: "tk"
src: "lib/tk8.6"
dst: "tk"
binaries:
curaengine:
package: "curaengine"
src: "bin"
dst: "."
binary: "CuraEngine"
hiddenimports:
- "pySavitar"
- "pyArcus"
- "pynest2d"
- "PyQt6"
- "PyQt6.QtNetwork"
- "PyQt6.sip"
- "logging.handlers"
- "zeroconf"
- "fcntl"
- "stl"
- "serial"
collect_all:
- "cura"
- "UM"
- "serial"
- "Charon"
- "sqlite3"
- "trimesh"
- "win32ctypes"
- "PyQt6"
- "PyQt6.QtNetwork"
- "PyQt6.sip"
- "stl"
icon:
Windows: "./icons/Cura.ico"
Macos: "./icons/cura.icns"
Linux: "./icons/cura-128.png"
requirements:
- "pyarcus/5.2.2"
- "curaengine/5.3.0"
- "pysavitar/5.2.2"
- "pynest2d/5.2.2"
- "uranium/5.3.0"
- "fdm_materials/5.3.0"
- "cura_binary_data/5.3.0"
- "cpython/3.10.4"
internal_requirements:
- "fdm_materials_private/(latest)@ultimaker/testing"
- "cura_private_data/(latest)@ultimaker/testing"
runinfo:
entrypoint: "cura_app.py"
pyinstaller:
datas:
cura_plugins:
package: "cura"
src: "plugins"
dst: "share/cura/plugins"
cura_resources:
package: "cura"
src: "resources"
dst: "share/cura/resources"
cura_private_data:
package: "cura_private_data"
src: "resources"
dst: "share/cura/resources"
internal: true
cura_private_data_plugins:
package: "cura_private_data"
src: "plugins"
dst: "share/cura/plugins"
internal: true
uranium_plugins:
package: "uranium"
src: "plugins"
dst: "share/uranium/plugins"
uranium_resources:
package: "uranium"
src: "resources"
dst: "share/uranium/resources"
uranium_um_qt_qml_um:
package: "uranium"
src: "site-packages/UM/Qt/qml/UM"
dst: "PyQt6/Qt6/qml/UM"
cura_binary_data:
package: "cura_binary_data"
src: "resources/cura/resources"
dst: "share/cura/resources"
uranium_binary_data:
package: "cura_binary_data"
src: "resources/uranium/resources"
dst: "share/uranium/resources"
windows_binary_data:
package: "cura_binary_data"
src: "windows"
dst: "share/windows"
fdm_materials:
package: "fdm_materials"
src: "materials"
dst: "share/cura/resources/materials"
fdm_materials_private:
package: "fdm_materials_private"
src: "resources/materials"
dst: "share/cura/resources/materials"
internal: true
tcl:
package: "tcl"
src: "lib/tcl8.6"
dst: "tcl"
tk:
package: "tk"
src: "lib/tk8.6"
dst: "tk"
binaries:
curaengine:
package: "curaengine"
src: "bin"
dst: "."
binary: "CuraEngine"
hiddenimports:
- "pySavitar"
- "pyArcus"
- "pynest2d"
- "PyQt6"
- "PyQt6.QtNetwork"
- "PyQt6.sip"
- "logging.handlers"
- "zeroconf"
- "fcntl"
- "stl"
- "serial"
collect_all:
- "cura"
- "UM"
- "serial"
- "Charon"
- "sqlite3"
- "trimesh"
- "win32ctypes"
- "PyQt6"
- "PyQt6.QtNetwork"
- "PyQt6.sip"
- "stl"
icon:
Windows: "./icons/Cura.ico"
Macos: "./icons/cura.icns"
Linux: "./icons/cura-128.png"
pycharm_targets:
- jinja_path: .run_templates/pycharm_cura_run.run.xml.jinja
module_name: Cura
name: cura
script_name: cura_app.py
- jinja_path: .run_templates/pycharm_cura_run.run.xml.jinja
module_name: Cura
name: cura_external_engine
parameters: --external-backend
script_name: cura_app.py
- jinja_path: .run_templates/pycharm_cura_test.run.xml.jinja
module_name: Cura
name: pytest in tests
script_name: tests/
- jinja_path: .run_templates/pycharm_cura_test.run.xml.jinja
module_name: Cura
name: pytest in TestBuildVolume.py
script_name: tests/TestBuildVolume.py
- jinja_path: .run_templates/pycharm_cura_test.run.xml.jinja
module_name: Cura
name: pytest in TestConvexHullDecorator.py
script_name: tests/TestConvexHullDecorator.py
- jinja_path: .run_templates/pycharm_cura_test.run.xml.jinja
module_name: Cura
name: pytest in TestCuraSceneNode.py
script_name: tests/TestCuraSceneNode.py
- jinja_path: .run_templates/pycharm_cura_test.run.xml.jinja
module_name: Cura
name: pytest in TestCuraSceneNode.py
script_name: tests/TestExtruderManager.py
- jinja_path: .run_templates/pycharm_cura_test.run.xml.jinja
module_name: Cura
name: pytest in TestGCodeListDecorator.py
script_name: tests/TestGCodeListDecorator.py
- jinja_path: .run_templates/pycharm_cura_test.run.xml.jinja
module_name: Cura
name: pytest in TestIntentManager.py
script_name: tests/TestIntentManager.py
- jinja_path: .run_templates/pycharm_cura_test.run.xml.jinja
module_name: Cura
name: pytest in TestLayer.py
script_name: tests/TestLayer.py
- jinja_path: .run_templates/pycharm_cura_test.run.xml.jinja
module_name: Cura
name: pytest in TestMachineAction.py
script_name: tests/TestMachineAction.py
- jinja_path: .run_templates/pycharm_cura_test.run.xml.jinja
module_name: Cura
name: pytest in TestMachineManager.py
script_name: tests/TestMachineManager.py
- jinja_path: .run_templates/pycharm_cura_test.run.xml.jinja
module_name: Cura
name: pytest in TestOAuth2.py
script_name: tests/TestOAuth2.py
- jinja_path: .run_templates/pycharm_cura_test.run.xml.jinja
module_name: Cura
name: pytest in TestObjectsModel.py
script_name: tests/TestObjectsModel.py
- jinja_path: .run_templates/pycharm_cura_test.run.xml.jinja
module_name: Cura
name: pytest in TestPrintInformation.py
script_name: tests/TestPrintInformation.py
- jinja_path: .run_templates/pycharm_cura_test.run.xml.jinja
module_name: Cura
name: pytest in TestProfileRequirements.py
script_name: tests/TestProfileRequirements.py
- jinja_path: .run_templates/pycharm_cura_test.run.xml.jinja
module_name: Cura
name: pytest in TestThemes.py
script_name: tests/TestThemes.py
- jinja_path: .run_templates/pycharm_cura_test.run.xml.jinja
module_name: Cura
name: pytest in TestContainerManager.py
script_name: tests/Settings/TestContainerManager.py
- jinja_path: .run_templates/pycharm_cura_test.run.xml.jinja
module_name: Cura
name: pytest in TestCuraContainerRegistry.py
script_name: tests/Settings/TestCuraContainerRegistry.py
- jinja_path: .run_templates/pycharm_cura_test.run.xml.jinja
module_name: Cura
name: pytest in TestCuraStackBuilder.py
script_name: tests/Settings/TestCuraStackBuilder.py
- jinja_path: .run_templates/pycharm_cura_test.run.xml.jinja
module_name: Cura
name: pytest in TestDefinitionContainer.py
script_name: tests/Settings/TestDefinitionContainer.py
- jinja_path: .run_templates/pycharm_cura_test.run.xml.jinja
module_name: Cura
name: pytest in TestExtruderStack.py
script_name: tests/Settings/TestExtruderStack.py
- jinja_path: .run_templates/pycharm_cura_test.run.xml.jinja
module_name: Cura
name: pytest in TestGlobalStack.py
script_name: tests/Settings/TestGlobalStack.py
- jinja_path: .run_templates/pycharm_cura_test.run.xml.jinja
module_name: Cura
name: pytest in TestProfiles.py
script_name: tests/Settings/TestProfiles.py
- jinja_path: .run_templates/pycharm_cura_test.run.xml.jinja
module_name: Cura
name: pytest in TestSettingInheritanceManager.py
script_name: tests/Settings/TestSettingInheritanceManager.py
- jinja_path: .run_templates/pycharm_cura_test.run.xml.jinja
module_name: Cura
name: pytest in TestSettingOverrideDecorator.py
script_name: tests/Settings/TestSettingOverrideDecorator.py
- jinja_path: .run_templates/pycharm_cura_test.run.xml.jinja
module_name: Cura
name: pytest in TestSettingVisibilityPresets.py
script_name: tests/Settings/TestSettingVisibilityPresets.py
- jinja_path: .run_templates/pycharm_cura_run.run.xml.jinja
module_name: Cura
name: cura
script_name: cura_app.py
- jinja_path: .run_templates/pycharm_cura_run.run.xml.jinja
module_name: Cura
name: cura_external_engine
parameters: --external-backend
script_name: cura_app.py
- jinja_path: .run_templates/pycharm_cura_test.run.xml.jinja
module_name: Cura
name: pytest in tests
script_name: tests/
- jinja_path: .run_templates/pycharm_cura_test.run.xml.jinja
module_name: Cura
name: pytest in TestBuildVolume.py
script_name: tests/TestBuildVolume.py
- jinja_path: .run_templates/pycharm_cura_test.run.xml.jinja
module_name: Cura
name: pytest in TestConvexHullDecorator.py
script_name: tests/TestConvexHullDecorator.py
- jinja_path: .run_templates/pycharm_cura_test.run.xml.jinja
module_name: Cura
name: pytest in TestCuraSceneNode.py
script_name: tests/TestCuraSceneNode.py
- jinja_path: .run_templates/pycharm_cura_test.run.xml.jinja
module_name: Cura
name: pytest in TestCuraSceneNode.py
script_name: tests/TestExtruderManager.py
- jinja_path: .run_templates/pycharm_cura_test.run.xml.jinja
module_name: Cura
name: pytest in TestGCodeListDecorator.py
script_name: tests/TestGCodeListDecorator.py
- jinja_path: .run_templates/pycharm_cura_test.run.xml.jinja
module_name: Cura
name: pytest in TestIntentManager.py
script_name: tests/TestIntentManager.py
- jinja_path: .run_templates/pycharm_cura_test.run.xml.jinja
module_name: Cura
name: pytest in TestLayer.py
script_name: tests/TestLayer.py
- jinja_path: .run_templates/pycharm_cura_test.run.xml.jinja
module_name: Cura
name: pytest in TestMachineAction.py
script_name: tests/TestMachineAction.py
- jinja_path: .run_templates/pycharm_cura_test.run.xml.jinja
module_name: Cura
name: pytest in TestMachineManager.py
script_name: tests/TestMachineManager.py
- jinja_path: .run_templates/pycharm_cura_test.run.xml.jinja
module_name: Cura
name: pytest in TestOAuth2.py
script_name: tests/TestOAuth2.py
- jinja_path: .run_templates/pycharm_cura_test.run.xml.jinja
module_name: Cura
name: pytest in TestObjectsModel.py
script_name: tests/TestObjectsModel.py
- jinja_path: .run_templates/pycharm_cura_test.run.xml.jinja
module_name: Cura
name: pytest in TestPrintInformation.py
script_name: tests/TestPrintInformation.py
- jinja_path: .run_templates/pycharm_cura_test.run.xml.jinja
module_name: Cura
name: pytest in TestProfileRequirements.py
script_name: tests/TestProfileRequirements.py
- jinja_path: .run_templates/pycharm_cura_test.run.xml.jinja
module_name: Cura
name: pytest in TestThemes.py
script_name: tests/TestThemes.py
- jinja_path: .run_templates/pycharm_cura_test.run.xml.jinja
module_name: Cura
name: pytest in TestContainerManager.py
script_name: tests/Settings/TestContainerManager.py
- jinja_path: .run_templates/pycharm_cura_test.run.xml.jinja
module_name: Cura
name: pytest in TestCuraContainerRegistry.py
script_name: tests/Settings/TestCuraContainerRegistry.py
- jinja_path: .run_templates/pycharm_cura_test.run.xml.jinja
module_name: Cura
name: pytest in TestCuraStackBuilder.py
script_name: tests/Settings/TestCuraStackBuilder.py
- jinja_path: .run_templates/pycharm_cura_test.run.xml.jinja
module_name: Cura
name: pytest in TestDefinitionContainer.py
script_name: tests/Settings/TestDefinitionContainer.py
- jinja_path: .run_templates/pycharm_cura_test.run.xml.jinja
module_name: Cura
name: pytest in TestExtruderStack.py
script_name: tests/Settings/TestExtruderStack.py
- jinja_path: .run_templates/pycharm_cura_test.run.xml.jinja
module_name: Cura
name: pytest in TestGlobalStack.py
script_name: tests/Settings/TestGlobalStack.py
- jinja_path: .run_templates/pycharm_cura_test.run.xml.jinja
module_name: Cura
name: pytest in TestProfiles.py
script_name: tests/Settings/TestProfiles.py
- jinja_path: .run_templates/pycharm_cura_test.run.xml.jinja
module_name: Cura
name: pytest in TestSettingInheritanceManager.py
script_name: tests/Settings/TestSettingInheritanceManager.py
- jinja_path: .run_templates/pycharm_cura_test.run.xml.jinja
module_name: Cura
name: pytest in TestSettingOverrideDecorator.py
script_name: tests/Settings/TestSettingOverrideDecorator.py
- jinja_path: .run_templates/pycharm_cura_test.run.xml.jinja
module_name: Cura
name: pytest in TestSettingVisibilityPresets.py
script_name: tests/Settings/TestSettingVisibilityPresets.py

View file

@ -27,7 +27,7 @@ class CuraConan(ConanFile):
# FIXME: Remove specific branch once merged to main
# Extending the conanfile with the UMBaseConanfile https://github.com/Ultimaker/conan-ultimaker-index/tree/CURA-9177_Fix_CI_CD/recipes/umbase
python_requires = "umbase/[>=0.1.7]@ultimaker/stable"
python_requires = "umbase/[>=0.1.7]@ultimaker/stable", "translationextractor/[>=1.0.0]@ultimaker/stable"
python_requires_extend = "umbase.UMBaseConanfile"
options = {
@ -179,7 +179,7 @@ class CuraConan(ConanFile):
cura_latest_url = self._cura_latest_url))
def _generate_pyinstaller_spec(self, location, entrypoint_location, icon_path, entitlements_file):
pyinstaller_metadata = self.conan_data[self.version]["pyinstaller"]
pyinstaller_metadata = self._um_data()["pyinstaller"]
datas = [(str(self._base_dir.joinpath("conan_install_info.json")), ".")]
for data in pyinstaller_metadata["datas"].values():
if not self.options.internal and data.get("internal", False):
@ -275,10 +275,10 @@ class CuraConan(ConanFile):
raise ConanInvalidConfiguration("Only versions 5+ are support")
def requirements(self):
for req in self.conan_data[self.version]["requirements"]:
for req in self._um_data()["requirements"]:
self.requires(req)
if self.options.internal:
for req in self.conan_data[self.version]["internal_requirements"]:
for req in self._um_data()["internal_requirements"]:
self.requires(req)
def build_requirements(self):
@ -319,19 +319,16 @@ class CuraConan(ConanFile):
if self.options.devtools:
entitlements_file = "'{}'".format(Path(self.source_folder, "packaging", "MacOS", "cura.entitlements"))
self._generate_pyinstaller_spec(location = self.generators_folder,
entrypoint_location = "'{}'".format(Path(self.source_folder, self.conan_data[self.version]["runinfo"]["entrypoint"])).replace("\\", "\\\\"),
icon_path = "'{}'".format(Path(self.source_folder, "packaging", self.conan_data[self.version]["pyinstaller"]["icon"][str(self.settings.os)])).replace("\\", "\\\\"),
entrypoint_location = "'{}'".format(Path(self.source_folder, self._um_data()["runinfo"]["entrypoint"])).replace("\\", "\\\\"),
icon_path = "'{}'".format(Path(self.source_folder, "packaging", self._um_data()["pyinstaller"]["icon"][str(self.settings.os)])).replace("\\", "\\\\"),
entitlements_file = entitlements_file if self.settings.os == "Macos" else "None")
# Update the po files
if self.settings.os != "Windows" or self.conf.get("tools.microsoft.bash:path", check_type = str):
# FIXME: once m4, autoconf, automake are Conan V2 ready use self.win_bash and add gettext as base tool_requirement
cpp_info = self.dependencies["gettext"].cpp_info
for po_file in self.source_path.joinpath("resources", "i18n").glob("**/*.po"):
pot_file = self.source_path.joinpath("resources", "i18n", po_file.with_suffix('.pot').name)
mkdir(self, str(unix_path(self, pot_file.parent)))
self.run(f"{cpp_info.bindirs[0]}/msgmerge --no-wrap --no-fuzzy-matching -width=140 -o {po_file} {po_file} {pot_file}",
env = "conanbuild", ignore_errors = True)
# Extract all the new strings and update the existing po files
extractTool = self.python_requires["translationextractor"].module.ExtractTranslations(self, self.source_path.joinpath("resources", "i18n"), "cura.pot")
extractTool.generate()
def imports(self):
self.copy("CuraEngine.exe", root_package = "curaengine", src = "@bindirs", dst = "", keep_path = False)
@ -447,8 +444,8 @@ echo "CURA_APP_NAME={{ cura_app_name }}" >> ${{ env_prefix }}GITHUB_ENV
entitlements_file = "'{}'".format(Path(self.cpp_info.res_paths[2], "MacOS", "cura.entitlements"))
self._generate_pyinstaller_spec(location = self._base_dir,
entrypoint_location = "'{}'".format(Path(self.cpp_info.bin_paths[0], self.conan_data[self.version]["runinfo"]["entrypoint"])).replace("\\", "\\\\"),
icon_path = "'{}'".format(Path(self.cpp_info.res_paths[2], self.conan_data[self.version]["pyinstaller"]["icon"][str(self.settings.os)])).replace("\\", "\\\\"),
entrypoint_location = "'{}'".format(Path(self.cpp_info.bin_paths[0], self._um_data()["runinfo"]["entrypoint"])).replace("\\", "\\\\"),
icon_path = "'{}'".format(Path(self.cpp_info.res_paths[2], self._um_data()["pyinstaller"]["icon"][str(self.settings.os)])).replace("\\", "\\\\"),
entitlements_file = entitlements_file if self.settings.os == "Macos" else "None")
def package(self):

View file

@ -6870,7 +6870,7 @@
"enabled": "extruders_enabled_count > 1 and resolveOrValue('interlocking_enable')",
"default_value": 0.8,
"value": "2 * wall_line_width_0",
"minimum_value": "0.001",
"minimum_value": "min_odd_wall_line_width",
"maximum_value": "min(0.5 * machine_width, 0.5 * machine_depth)",
"maximum_value_warning": "max(extruderValues('wall_line_width_0')) * 6",
"settable_per_mesh": true,
@ -6884,6 +6884,8 @@
"type": "float",
"enabled": "extruders_enabled_count > 1 and resolveOrValue('interlocking_enable')",
"default_value": 22.5,
"minimum_value": "0",
"maximum_value": "360",
"resolve": "min(extruderValues('interlocking_orientation'))",
"settable_per_mesh": false,
"settable_per_extruder": false
@ -6896,6 +6898,7 @@
"enabled": "extruders_enabled_count > 1 and resolveOrValue('interlocking_enable')",
"default_value": 2,
"minimum_value": "1",
"maximum_value_warning": "50",
"resolve": "max(extruderValues('interlocking_beam_layer_count'))",
"settable_per_mesh": false,
"settable_per_extruder": false
@ -6908,6 +6911,8 @@
"enabled": "extruders_enabled_count > 1 and resolveOrValue('interlocking_enable')",
"default_value": 2,
"minimum_value": "1",
"maximum_value": "10",
"maximum_value_warning": "5",
"resolve": "max(extruderValues('interlocking_depth'))",
"settable_per_mesh": false,
"settable_per_extruder": false
@ -6918,10 +6923,12 @@
"description": "The distance close to the boundary of the print where not to generate an interlocking structure as measued in number of cells times 2. If set to a value lower than the Inerlocking Depth then the interlocking structure can become visible on the outside of the print near the interfaces where two models meet.",
"type": "int",
"enabled": "extruders_enabled_count > 1 and resolveOrValue('interlocking_enable')",
"default_value": 3,
"default_value": 2,
"minimum_value": "0",
"resolve": "max(extruderValues('interlocking_boundary_avoidance'))",
"minimum_value_warning": "resolveOrValue('interlocking_depth')",
"maximum_value": "10",
"maximum_value_warning": "5",
"resolve": "max(extruderValues('interlocking_boundary_avoidance'))",
"settable_per_mesh": false,
"settable_per_extruder": false
},

View file

@ -0,0 +1,115 @@
{
"version": 2,
"name": "Gutenberg Base",
"inherits": "fdmprinter",
"metadata":
{
"visible": false,
"author": "Gutenberg Dev",
"manufacturer": "Gutenberg",
"file_formats": "text/x-gcode",
"first_start_actions": [ "MachineSettingsAction" ],
"has_machine_quality": true,
"machine_extruder_trains": { "0": "gutenberg_extruder_0" },
"preferred_material": "generic_abs",
"preferred_quality_type": "normal"
},
"overrides":
{
"acceleration_enabled": { "default_value": true },
"acceleration_layer_0": { "value": 10000 },
"acceleration_print": { "default_value": 15000 },
"acceleration_roofing": { "value": 10000 },
"acceleration_travel_layer_0": { "value": 10000 },
"acceleration_wall_0": { "value": 7500 },
"adhesion_type": { "default_value": "skirt" },
"alternate_extra_perimeter": { "default_value": true },
"bridge_fan_speed_2": { "resolve": "max(cool_fan_speed, 50)" },
"bridge_fan_speed_3": { "resolve": "max(cool_fan_speed, 20)" },
"bridge_settings_enabled": { "default_value": true },
"bridge_wall_coast": { "default_value": 10 },
"cool_fan_full_at_height": { "value": "resolveOrValue('layer_height_0') + resolveOrValue('layer_height') * max(1, cool_fan_full_layer - 1)" },
"cool_fan_full_layer": { "value": 4 },
"cool_min_layer_time": { "default_value": 15 },
"cool_min_layer_time_fan_speed_max": { "default_value": 20 },
"gantry_height": { "value": 30 },
"infill_before_walls": { "default_value": false },
"infill_enable_travel_optimization": { "default_value": true },
"jerk_roofing": { "value": 10 },
"jerk_wall_0": { "value": 10 },
"layer_height_0": { "resolve": "max(0.2, min(extruderValues('layer_height')))" },
"line_width": { "value": "machine_nozzle_size * 1.125" },
"machine_acceleration": { "default_value": 1500 },
"machine_depth": { "default_value": 165 },
"machine_end_gcode": { "default_value": "END_PRINT" },
"machine_endstop_positive_direction_x": { "default_value": true },
"machine_endstop_positive_direction_y": { "default_value": true },
"machine_endstop_positive_direction_z": { "default_value": false },
"machine_feeder_wheel_diameter": { "default_value": 7.5 },
"machine_head_with_fans_polygon":
{
"default_value": [
[-35, 65],
[-35, -50],
[35, -50],
[35, 65]
]
},
"machine_heated_bed": { "default_value": true },
"machine_height": { "default_value": 165 },
"machine_max_acceleration_x": { "default_value": 15000 },
"machine_max_acceleration_y": { "default_value": 15000 },
"machine_max_acceleration_z": { "default_value": 250 },
"machine_max_feedrate_e": { "default_value": 120 },
"machine_max_feedrate_z": { "default_value": 40 },
"machine_max_jerk_e": { "default_value": 60 },
"machine_name": { "default_value": "GUTENBERG 3DP" },
"machine_start_gcode": { "default_value": ";Simple\nSTART_PRINT EXTRUDER_TEMP={material_print_temperature_layer_0} BED_TEMP={material_bed_temperature_layer_0}\n;Or with custom bed mesh area\n;START_PRINT EXTRUDER_TEMP={material_print_temperature_layer_0} BED_TEMP={material_bed_temperature_layer_0} AREA_START=%MINX%,%MINY% AREA_END=%MAXX%,%MAXY% FILAMENT_TYPE={material_type}" },
"machine_steps_per_mm_x": { "default_value": 160 },
"machine_steps_per_mm_y": { "default_value": 160 },
"machine_steps_per_mm_z": { "default_value": 800 },
"machine_use_extruder_offset_to_offset_coords": { "value": false },
"machine_width": { "default_value": 165 },
"material_diameter": { "default_value": 1.75 },
"meshfix_maximum_resolution": { "default_value": 0.01 },
"min_infill_area": { "default_value": 5.0 },
"minimum_polygon_circumference": { "default_value": 0.2 },
"optimize_wall_printing_order": { "default_value": true },
"retraction_amount": { "default_value": 0.8 },
"retraction_combing": { "value": "'noskin'" },
"retraction_combing_max_distance": { "default_value": 10 },
"retraction_hop": { "default_value": 0.2 },
"retraction_hop_enabled": { "default_value": true },
"retraction_prime_speed":
{
"maximum_value_warning": 130,
"value": "math.ceil(retraction_speed * 0.4)"
},
"retraction_retract_speed": { "maximum_value_warning": 130 },
"retraction_speed":
{
"default_value": 35,
"maximum_value_warning": 130
},
"roofing_layer_count": { "value": 1 },
"skirt_brim_minimal_length": { "default_value": 550 },
"speed_layer_0": { "value": "math.ceil(speed_print * 0.25)" },
"speed_roofing": { "value": "math.ceil(speed_print * 0.33)" },
"speed_slowdown_layers": { "default_value": 4 },
"speed_topbottom": { "value": "math.ceil(speed_print * 0.33)" },
"speed_travel":
{
"maximum_value_warning": 501,
"value": 300
},
"speed_travel_layer_0": { "value": "math.ceil(speed_travel * 0.4)" },
"speed_wall": { "value": "math.ceil(speed_print * 0.33)" },
"speed_wall_0": { "value": "math.ceil(speed_print * 0.33)" },
"speed_wall_x": { "value": "math.ceil(speed_print * 0.66)" },
"travel_avoid_other_parts": { "default_value": false },
"wall_line_width": { "value": "machine_nozzle_size" },
"wall_overhang_angle": { "default_value": 75 },
"wall_overhang_speed_factor": { "default_value": 50 },
"zig_zaggify_infill": { "value": true }
}
}

View file

@ -0,0 +1,17 @@
{
"version": 2,
"name": "G-ZERO",
"inherits": "gutenberg_base",
"metadata":
{
"visible": true,
"quality_definition": "gutenberg_base"
},
"overrides":
{
"machine_depth": { "default_value": 200 },
"machine_height": { "default_value": 201 },
"machine_name": { "default_value": "G-ZERO" },
"machine_width": { "default_value": 250 }
}
}

View file

@ -0,0 +1,19 @@
{
"version": 2,
"name": "Toolhead",
"inherits": "fdmextruder",
"metadata":
{
"machine": "gutenberg_base",
"position": "0"
},
"overrides":
{
"extruder_nr":
{
"default_value": 0,
"maximum_value": 1
},
"material_diameter": { "default_value": 1.75 }
}
}

View file

@ -0,0 +1,57 @@
[general]
definition = gutenberg_base
name = Fast
version = 4
[metadata]
global_quality = True
quality_type = fast
setting_version = 21
type = quality
[values]
acceleration_enabled = True
acceleration_print = 15000
acceleration_roofing = 10000
acceleration_topbottom = 10000
acceleration_travel = 15000
acceleration_wall = 15000
acceleration_wall_0 = 10000
adhesion_type = skirt
alternate_extra_perimeter = False
infill_line_width = 0.5
infill_pattern = lines
infill_sparse_density = 10
layer_height = 0.2
layer_height_0 = 0.2
optimize_wall_printing_order = True
retraction_amount = 0.8
retraction_combing = noskin
retraction_hop = 0.2
retraction_hop_enabled = True
retraction_hop_only_when_collides = True
retraction_speed = 35
roofing_layer_count = 0
skin_monotonic = True
skirt_brim_speed = 45
speed_infill = 200
speed_layer_0 = 45
speed_print = 300
speed_print_layer_0 = 45
speed_roofing = 100
speed_support = 200
speed_topbottom = 150
speed_travel = 300
speed_travel_layer_0 = 150
speed_wall = 100
speed_wall_0 = 100
speed_wall_x = 150
support_angle = 46
support_enable = False
top_bottom_thickness = 0.6
travel_avoid_supports = True
wall_line_width = 0.45
wall_line_width_0 = 0.4
wall_thickness = 1.25
zig_zaggify_infill = True

View file

@ -0,0 +1,57 @@
[general]
definition = gutenberg_base
name = Fine
version = 4
[metadata]
global_quality = True
quality_type = fine
setting_version = 21
type = quality
[values]
acceleration_enabled = True
acceleration_print = 15000
acceleration_roofing = 10000
acceleration_topbottom = 10000
acceleration_travel = 15000
acceleration_wall = 7500
acceleration_wall_0 = 7500
adhesion_type = skirt
alternate_extra_perimeter = False
cool_min_layer_time = 10
infill_line_width = 0.5
infill_pattern = gyroid
infill_sparse_density = 15
inset_direction = outside_in
layer_height = 0.2
layer_height_0 = 0.2
optimize_wall_printing_order = True
retraction_amount = 0.8
retraction_combing = noskin
retraction_hop = 0.2
retraction_hop_enabled = True
retraction_hop_only_when_collides = True
retraction_speed = 35
roofing_layer_count = 1
skin_monotonic = True
skirt_brim_speed = 45
speed_infill = 150
speed_layer_0 = 45
speed_print = 100
speed_roofing = 100
speed_topbottom = 100
speed_travel = 300
speed_travel_layer_0 = 60
speed_wall = 100
speed_wall_0 = 75
speed_wall_x = 100
support_angle = 46
support_enable = False
top_bottom_thickness = 0.8
travel_avoid_supports = True
wall_line_width = 0.45
wall_line_width_0 = 0.4
wall_thickness = 1.65
zig_zaggify_infill = True

View file

@ -0,0 +1,57 @@
[general]
definition = gutenberg_base
name = Normal
version = 4
[metadata]
global_quality = True
quality_type = normal
setting_version = 21
type = quality
[values]
acceleration_enabled = True
acceleration_print = 15000
acceleration_roofing = 10000
acceleration_topbottom = 10000
acceleration_travel = 15000
acceleration_wall = 10000
acceleration_wall_0 = 7500
adhesion_type = skirt
alternate_extra_perimeter = True
bottom_layers = 3
infill_line_width = 0.5
infill_pattern = gyroid
infill_sparse_density = 15
layer_height = 0.2
layer_height_0 = 0.2
optimize_wall_printing_order = True
retraction_amount = 0.8
retraction_combing = noskin
retraction_hop = 0.2
retraction_hop_enabled = True
retraction_hop_only_when_collides = True
retraction_speed = 35
roofing_layer_count = 1
skin_monotonic = True
skirt_brim_speed = 45
speed_infill = 150
speed_layer_0 = 45
speed_print = 150
speed_roofing = 100
speed_topbottom = 100
speed_travel = 300
speed_travel_layer_0 = 100
speed_wall = 100
speed_wall_0 = 100
speed_wall_x = 150
support_angle = 46
support_enable = False
top_bottom_thickness = 0.6
top_layers = 3
travel_avoid_supports = True
wall_line_width = 0.45
wall_line_width_0 = 0.4
wall_thickness = 1.25
zig_zaggify_infill = True

View file

@ -0,0 +1,56 @@
[general]
definition = gutenberg_base
name = Strong
version = 4
[metadata]
global_quality = True
quality_type = strong
setting_version = 21
type = quality
[values]
acceleration_enabled = True
acceleration_print = 15000
acceleration_roofing = 10000
acceleration_topbottom = 10000
acceleration_travel = 15000
acceleration_wall = 10000
acceleration_wall_0 = 7500
adhesion_type = skirt
alternate_extra_perimeter = True
infill_line_width = 0.5
infill_pattern = gyroid
infill_sparse_density = 30
layer_height = 0.2
layer_height_0 = 0.2
optimize_wall_printing_order = True
retraction_amount = 0.8
retraction_combing = noskin
retraction_hop = 0.2
retraction_hop_enabled = True
retraction_hop_only_when_collides = True
retraction_speed = 35
roofing_layer_count = 1
skin_monotonic = True
skirt_brim_speed = 45
speed_infill = 150
speed_layer_0 = 45
speed_print = 100
speed_print_layer_0 = 60
speed_roofing = 100
speed_topbottom = 100
speed_travel = 300
speed_travel_layer_0 = 100
speed_wall = 100
speed_wall_0 = 75
speed_wall_x = 100
support_angle = 46
support_enable = False
top_bottom_thickness = 1
travel_avoid_supports = True
wall_line_width = 0.45
wall_line_width_0 = 0.4
wall_thickness = 2.05
zig_zaggify_infill = True

View file

@ -14,6 +14,7 @@ weight = 0
[values]
brim_width = 10
cool_min_temperature = =material_print_temperature - 10
infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'tetrahedral'
infill_wipe_dist = 0.1
machine_min_cool_heat_time_window = 15

View file

@ -13,6 +13,7 @@ weight = -2
[values]
brim_width = 20
cool_min_temperature = =material_print_temperature - 10
infill_overlap = 0
infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'tetrahedral'
infill_wipe_dist = 0.1

View file

@ -13,6 +13,7 @@ weight = -1
[values]
brim_width = 20
cool_min_temperature = =material_print_temperature - 10
infill_overlap = 0
infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'tetrahedral'
infill_wipe_dist = 0.1

View file

@ -13,6 +13,7 @@ weight = 0
[values]
brim_width = 20
cool_min_temperature = =material_print_temperature - 10
infill_overlap = 0
infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'tetrahedral'
infill_wipe_dist = 0.1

View file

@ -13,6 +13,7 @@ weight = -2
[values]
brim_width = 8.75
cool_min_temperature = =material_print_temperature - 10
gradual_infill_step_height = =5 * layer_height
infill_overlap = 0
infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'cross_3d'

View file

@ -13,6 +13,7 @@ weight = -1
[values]
brim_width = 8.75
cool_min_temperature = =material_print_temperature - 10
gradual_infill_step_height = =5 * layer_height
infill_overlap = 0
infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'cross_3d'

View file

@ -13,6 +13,7 @@ weight = 0
[values]
brim_width = 8.75
cool_min_temperature = =material_print_temperature - 10
gradual_infill_step_height = =5 * layer_height
infill_overlap = 0
infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'cross_3d'

View file

@ -13,6 +13,7 @@ weight = -2
[values]
brim_width = 25
cool_min_temperature = =material_print_temperature - 10
infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'tetrahedral'
material_print_temperature = =default_material_print_temperature - 2
multiple_mesh_overlap = 0.2

View file

@ -13,6 +13,7 @@ weight = -4
[values]
brim_width = 25
cool_min_temperature = =material_print_temperature - 10
infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'tetrahedral'
material_print_temperature = =default_material_print_temperature + 2
multiple_mesh_overlap = 0.2

View file

@ -13,6 +13,7 @@ weight = -3
[values]
brim_width = 25
cool_min_temperature = =material_print_temperature - 10
infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'tetrahedral'
layer_height = 0.3
multiple_mesh_overlap = 0.2

View file

@ -13,6 +13,7 @@ weight = -2
[values]
brim_width = 8.75
cool_min_temperature = =material_print_temperature - 10
gradual_infill_step_height = =4 * layer_height
infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'cross_3d'
infill_sparse_density = 15

View file

@ -13,6 +13,7 @@ weight = -4
[values]
brim_width = 8.75
cool_min_temperature = =material_print_temperature - 10
gradual_infill_step_height = =4 * layer_height
infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'cross_3d'
infill_sparse_density = 15

View file

@ -13,6 +13,7 @@ weight = -3
[values]
brim_width = 8.75
cool_min_temperature = =material_print_temperature - 10
gradual_infill_step_height = =4 * layer_height
infill_pattern = ='zigzag' if infill_sparse_density > 80 else 'cross_3d'
infill_sparse_density = 15