git: 30e39d6277fc - main - cad/freecad: update to 0.21.0

From: Christoph Moench-Tegeder <cmt_at_FreeBSD.org>
Date: Sat, 05 Aug 2023 15:16:49 UTC
The branch main has been updated by cmt:

URL: https://cgit.FreeBSD.org/ports/commit/?id=30e39d6277fcacc32740feaf969a6358b5fa03a4

commit 30e39d6277fcacc32740feaf969a6358b5fa03a4
Author:     Christoph Moench-Tegeder <cmt@FreeBSD.org>
AuthorDate: 2023-08-05 15:14:01 +0000
Commit:     Christoph Moench-Tegeder <cmt@FreeBSD.org>
CommitDate: 2023-08-05 15:16:37 +0000

    cad/freecad: update to 0.21.0
    
    Release Notes: https://wiki.freecad.org/Release_notes_0.21
---
 cad/freecad/Makefile                               |  44 +-
 cad/freecad/distinfo                               |   6 +-
 .../files/patch-src_Mod_Import_App_ImportOCAF2.h   |  10 -
 .../patch-src_Mod_MeshPart_App_CMakeLists.txt      |  12 +
 .../files/patch-src_Mod_Part_App_OCCError.h        |  12 -
 ...atch-src_Mod_Raytracing_App_AppRaytracingPy.cpp |  38 --
 .../patch-src_Mod_Raytracing_App_LuxFeature.cpp    |  41 --
 .../patch-src_Mod_Raytracing_App_RayFeature.cpp    |  30 -
 cad/freecad/pkg-plist                              | 678 +++++++++++++--------
 9 files changed, 477 insertions(+), 394 deletions(-)

diff --git a/cad/freecad/Makefile b/cad/freecad/Makefile
index f7e8b0a5d287..7051fac59702 100644
--- a/cad/freecad/Makefile
+++ b/cad/freecad/Makefile
@@ -1,9 +1,5 @@
 PORTNAME=	FreeCAD
-DISTVERSION=	0.20.2
-PORTREVISION=	5
-# use these for bugfixes/snapshots
-# DISTVERSION=	0.18-16093 # git rev-list --count
-# DISTVERSIONSUFFIX=	-g690774c0e
+DISTVERSION=	0.21.0
 CATEGORIES=	cad
 
 MAINTAINER=	cmt@FreeBSD.org
@@ -13,14 +9,19 @@ WWW=		https://www.freecadweb.org/
 LICENSE=	LGPL20+
 LICENSE_FILE=	${WRKSRC}/LICENSE
 
-BUILD_DEPENDS=	pyside_tool.py:devel/pyside2-tools@${PY_FLAVOR} \
+BUILD_DEPENDS=	doxygen:devel/doxygen \
+		pybind11-config:devel/py-pybind11@${PY_FLAVOR} \
+		pyside_tool.py:devel/pyside2-tools@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}pivy>0:graphics/py-pivy@${PY_FLAVOR} \
 		${PYTHON_SITELIBDIR}/matplotlib/__init__.py:math/py-matplotlib@${PY_FLAVOR} \
+		${PYTHON_INCLUDEDIR}/CXX/Config.hxx:devel/py-cxx \
 		swig:devel/swig
 LIB_DEPENDS=	libexpat.so:textproc/expat2 \
 		libfreetype.so:print/freetype2 \
 		${PY_BOOST} \
 		libpyside2.cpython-${PYTHON_SUFFIX}${PYTHON_ABIVER}.so:devel/pyside2@${PY_FLAVOR} \
 		libCoin.so:graphics/Coin \
+		libfmt.so:devel/libfmt \
 		libpng.so:graphics/png \
 		libtiff.so:graphics/tiff \
 		libvtksys-${VTK_VER}.so:math/vtk${VTK_VER:R} \
@@ -30,7 +31,7 @@ LIB_DEPENDS=	libexpat.so:textproc/expat2 \
 		libarea.so:devel/libarea \
 		libmed.so:french/med \
 		libshiboken2.cpython-${PYTHON_SUFFIX}${PYTHON_ABIVER}.so:devel/shiboken2@${PY_FLAVOR} \
-		libhdf5-110.so:science/hdf5-110
+		libhdf5.so:science/hdf5
 
 RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}pivy>0:graphics/py-pivy@${PY_FLAVOR} \
 		${PYTHON_SITELIBDIR}/matplotlib/__init__.py:math/py-matplotlib@${PY_FLAVOR}
@@ -41,9 +42,9 @@ USES=		dos2unix compiler:c++17-lang cmake cpe gl eigen:3 fortran jpeg \
 USE_GITHUB=	yes
 USE_XORG=	ice sm x11 xext xt
 USE_GL=		gl glu
-USE_QT=		buildtools concurrent core declarative gui location network \
-		opengl printsupport qmake:build svg webchannel widgets xml \
-		xmlpatterns
+USE_QT=		buildtools concurrent core declarative designer gui \
+		linguisttools location network opengl printsupport \
+		qmake:build svg webchannel widgets xml xmlpatterns
 USE_LDCONFIG=	yes
 
 CPE_VENDOR=	freecad_project
@@ -53,6 +54,7 @@ VTK_VER=	9.2
 DOS2UNIX_GLOB=	*.txt *.h *.cpp *.py *.qss *.csv *.pov *.stp *.ui *.wrl *.WRL
 SHEBANG_FILES=	src/Tools/freecad-thumbnailer
 
+# our HDF5/CMake integration is messy, so workarounds are required below
 CMAKE_ARGS+=	-DOCC_INCLUDE_DIR="${LOCALBASE}/include/OpenCASCADE" \
 		-DOPENMPI_INCLUDE_DIRS="${LOCALBASE}/mpi/openmpi/include" \
 		-DBUILD_QT5="ON" \
@@ -60,16 +62,30 @@ CMAKE_ARGS+=	-DOCC_INCLUDE_DIR="${LOCALBASE}/include/OpenCASCADE" \
 		-DPYTHON_INCLUDE_DIR="${PYTHON_INCLUDEDIR}" \
 		-DPYTHON_PACKAGES_PATH="${PYTHON_SITELIBDIR}" \
 		-DPYTHON_EXECUTABLE="${PYTHON_CMD}" \
-		-DBUILD_ASSEMBLY="OFF" -DBUILD_FLAT_MESH="ON" \
-		-DHDF5_CFLAGS="-I${LOCALBASE}/include/hdf5-110" \
+		-DPYCXX_INCLUDE_DIR="${PYTHON_INCLUDEDIR}" \
+		-DBUILD_ASSEMBLY="OFF" \
+		-DBUILD_DESIGNER_PLUGIN="ON" \
+		-DBUILD_FLAT_MESH="ON" \
+		-DBUILD_VR="OFF" \
+		-DFREECAD_USE_EXTERNAL_FMT="ON" \
+		-DFREECAD_CREATE_MAC_APP="OFF" \
+		-DFREECAD_FREECAD_LIBPACK_USE="OFF" \
+		-DFREECAD_USE_EXTERNAL_KDL="OFF" \
+		-DFREECAD_USE_EXTERNAL_SMESH="OFF" \
+		-DFREECAD_USE_FREETYPE="ON" \
+		-DFREECAD_USE_PYBIND11="ON" \
+		-Dpybind11_DIR="${PYTHON_SITELIBDIR}/pybind11/share/cmake/pybind11" \
+		-DHDF5_CFLAGS="-I${LOCALBASE}/include" \
 		-DHDF5_FOUND=TRUE \
-		-DHDF5_INCLUDE_DIRS="${LOCALBASE}/include/hdf5-110" \
-		-DHDF5_LIBRARIES="-L${LOCALBASE}/lib -lhdf5-110" \
+		-DHDF5_VERSION="1.12.2" \
+		-DHDF5_INCLUDE_DIRS="${LOCALBASE}/include/hdf5" \
+		-DHDF5_LIBRARIES="-L${LOCALBASE}/lib -lhdf5" \
 		-DHDF5_LIBRARY_DIRS="${LOCALBASE}/lib" \
 		-DPYSIDE2RCCBINARY="${RCC}" \
 		-DPYSIDE2UICBINARY="${UIC}" \
 		-DBUILD_ENABLE_CXX_STD=C++17
 
+
 CMAKE_INSTALL_PREFIX=	${PREFIX}/${PORTNAME}
 # Install XDG icons and files to the standard path
 CMAKE_ARGS+=	-DXDG_DATADIR="${PREFIX}/share"
diff --git a/cad/freecad/distinfo b/cad/freecad/distinfo
index 94f9a3e40388..fbe59cefabec 100644
--- a/cad/freecad/distinfo
+++ b/cad/freecad/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1670364675
-SHA256 (FreeCAD-FreeCAD-0.20.2_GH0.tar.gz) = be3b0be917142d36074f58782b276973890a3fad850bc1db2db99a5ad0c8732b
-SIZE (FreeCAD-FreeCAD-0.20.2_GH0.tar.gz) = 75558140
+TIMESTAMP = 1691075290
+SHA256 (FreeCAD-FreeCAD-0.21.0_GH0.tar.gz) = 31a7f9aef99763904d7ffa9fd2d06e2e318e10e5306dac04710234a564fa778b
+SIZE (FreeCAD-FreeCAD-0.21.0_GH0.tar.gz) = 66086371
diff --git a/cad/freecad/files/patch-src_Mod_Import_App_ImportOCAF2.h b/cad/freecad/files/patch-src_Mod_Import_App_ImportOCAF2.h
deleted file mode 100644
index 807f2c01750e..000000000000
--- a/cad/freecad/files/patch-src_Mod_Import_App_ImportOCAF2.h
+++ /dev/null
@@ -1,10 +0,0 @@
---- src/Mod/Import/App/ImportOCAF2.h.orig	2023-01-21 23:09:25.522104000 +0100
-+++ src/Mod/Import/App/ImportOCAF2.h	2023-01-21 23:09:52.176852000 +0100
-@@ -30,6 +30,7 @@
- #include <TDF_LabelMapHasher.hxx>
- #include <climits>
- #include <string>
-+#include <array>
- #include <set>
- #include <map>
- #include <unordered_map>
diff --git a/cad/freecad/files/patch-src_Mod_MeshPart_App_CMakeLists.txt b/cad/freecad/files/patch-src_Mod_MeshPart_App_CMakeLists.txt
new file mode 100644
index 000000000000..afd5191ccffe
--- /dev/null
+++ b/cad/freecad/files/patch-src_Mod_MeshPart_App_CMakeLists.txt
@@ -0,0 +1,12 @@
+diff --git src/Mod/MeshPart/App/CMakeLists.txt src/Mod/MeshPart/App/CMakeLists.txt
+index 6ee9deb4eb..6fb25015e3 100644
+--- src/Mod/MeshPart/App/CMakeLists.txt
++++ src/Mod/MeshPart/App/CMakeLists.txt
+@@ -21,6 +21,7 @@ include_directories(
+     ${PYTHON_INCLUDE_DIRS}
+     ${SMESH_INCLUDE_DIR}
+     ${VTK_INCLUDE_DIRS}
++    ${pybind11_INCLUDE_DIR}
+     ${EIGEN3_INCLUDE_DIR}
+ )
+ 
diff --git a/cad/freecad/files/patch-src_Mod_Part_App_OCCError.h b/cad/freecad/files/patch-src_Mod_Part_App_OCCError.h
deleted file mode 100644
index 02f00c05cee2..000000000000
--- a/cad/freecad/files/patch-src_Mod_Part_App_OCCError.h
+++ /dev/null
@@ -1,12 +0,0 @@
---- src/Mod/Part/App/OCCError.h.orig	2022-12-06 23:30:48.794152000 +0100
-+++ src/Mod/Part/App/OCCError.h	2022-12-06 23:31:40.841019000 +0100
-@@ -50,7 +50,9 @@
- # include <Standard_Overflow.hxx>
- # include <Standard_ProgramError.hxx>
- # include <Standard_RangeError.hxx>
-+# if OCC_VERSION_HEX <= 0x070600
- # include <Standard_TooManyUsers.hxx>
-+# endif
- # include <Standard_TypeMismatch.hxx>
- # include <Standard_Underflow.hxx>
- 
diff --git a/cad/freecad/files/patch-src_Mod_Raytracing_App_AppRaytracingPy.cpp b/cad/freecad/files/patch-src_Mod_Raytracing_App_AppRaytracingPy.cpp
deleted file mode 100644
index b2b35586f377..000000000000
--- a/cad/freecad/files/patch-src_Mod_Raytracing_App_AppRaytracingPy.cpp
+++ /dev/null
@@ -1,38 +0,0 @@
---- src/Mod/Raytracing/App/AppRaytracingPy.cpp.orig	2019-10-04 10:44:17 UTC
-+++ src/Mod/Raytracing/App/AppRaytracingPy.cpp
-@@ -105,13 +105,13 @@ class Module : public Py::ExtensionModule<Module> (pri
- 
-         PovTools::writeShape(out,PartName,aShape,(float)0.1);
-         // This must not be done in PovTools::writeShape!
--        out << "// instance to render" << endl
--            << "object {" << PartName << endl
--            << "  texture {" << endl
--            << "      pigment {color rgb <"<<r<<","<<g<<","<<b<<">}" << endl
--            << "      finish {StdFinish } //definition on top of the project" << endl
--            << "  }" << endl
--            << "}" << endl   ;
-+        out << "// instance to render" << std::endl
-+            << "object {" << PartName << std::endl
-+            << "  texture {" << std::endl
-+            << "      pigment {color rgb <"<<r<<","<<g<<","<<b<<">}" << std::endl
-+            << "      finish {StdFinish } //definition on top of the project" << std::endl
-+            << "  }" << std::endl
-+            << "}" << std::endl   ;
-         return Py::String(out.str());
-     }
-     Py::Object getPartAsLux(const Py::Tuple& args)
-@@ -128,10 +128,10 @@ class Module : public Py::ExtensionModule<Module> (pri
- 
-         // write a material entry
-         // This must not be done in PovTools::writeShape!
--        out << "MakeNamedMaterial \"FreeCADMaterial_" << PartName << "\"" << endl;
--        out << "    \"color Kd\" [" << r << " " << g << " " << b << "]" << endl;
--        out << "    \"float sigma\" [0.000000000000000]" << endl;
--        out << "    \"string type\" [\"matte\"]" << endl << endl;
-+        out << "MakeNamedMaterial \"FreeCADMaterial_" << PartName << "\"" << std::endl;
-+        out << "    \"color Kd\" [" << r << " " << g << " " << b << "]" << std::endl;
-+        out << "    \"float sigma\" [0.000000000000000]" << std::endl;
-+        out << "    \"string type\" [\"matte\"]" << std::endl << std::endl;
- 
-         LuxTools::writeShape(out,PartName,aShape,(float)0.1);
-         return Py::String(out.str());
diff --git a/cad/freecad/files/patch-src_Mod_Raytracing_App_LuxFeature.cpp b/cad/freecad/files/patch-src_Mod_Raytracing_App_LuxFeature.cpp
deleted file mode 100644
index 96118c364569..000000000000
--- a/cad/freecad/files/patch-src_Mod_Raytracing_App_LuxFeature.cpp
+++ /dev/null
@@ -1,41 +0,0 @@
---- src/Mod/Raytracing/App/LuxFeature.cpp.orig	2019-10-04 10:45:53 UTC
-+++ src/Mod/Raytracing/App/LuxFeature.cpp
-@@ -88,23 +88,23 @@ App::DocumentObjectExecReturn *LuxFeature::execute(voi
-     const App::Color& c = Color.getValue();
-     long t = Transparency.getValue();
-     if (t == 0) {
--        result << "MakeNamedMaterial \"FreeCADMaterial_" << Name << "\"" << endl
--               << "    \"color Kd\" [" << c.r << " " << c.g << " " << c.b << "]" << endl
--               << "    \"float sigma\" [0.000000000000000]" << endl
--               << "    \"string type\" [\"matte\"]" << endl << endl;
-+        result << "MakeNamedMaterial \"FreeCADMaterial_" << Name << "\"" << std::endl
-+               << "    \"color Kd\" [" << c.r << " " << c.g << " " << c.b << "]" << std::endl
-+               << "    \"float sigma\" [0.000000000000000]" << std::endl
-+               << "    \"string type\" [\"matte\"]" << std::endl << std::endl;
-     } else {
-         float trans = t/100.0f;
--        result << "MakeNamedMaterial \"FreeCADMaterial_Base_" << Name << "\"" << endl
--               << "    \"color Kd\" [" << c.r << " " << c.g << " " << c.b << "]" << endl
--               << "    \"float sigma\" [0.000000000000000]" << endl
--               << "    \"string type\" [\"matte\"]" << endl << endl
--               << "MakeNamedMaterial \"FreeCADMaterial_Null_" << Name << "\"" << endl
--               << "    \"string type\" [\"null\"]" << endl << endl
--               << "MakeNamedMaterial \"FreeCADMaterial_" << Name << "\"" << endl
--               << "    \"string namedmaterial1\" [\"FreeCADMaterial_Null_" << Name << "\"]" << endl
--               << "    \"string namedmaterial2\" [\"FreeCADMaterial_Base_" << Name << "\"]" << endl
--               << "    \"float amount\" [" << trans << "]" << endl
--               << "    \"string type\" [\"mix\"]" << endl << endl;
-+        result << "MakeNamedMaterial \"FreeCADMaterial_Base_" << Name << "\"" << std::endl
-+               << "    \"color Kd\" [" << c.r << " " << c.g << " " << c.b << "]" << std::endl
-+               << "    \"float sigma\" [0.000000000000000]" << std::endl
-+               << "    \"string type\" [\"matte\"]" << std::endl << std::endl
-+               << "MakeNamedMaterial \"FreeCADMaterial_Null_" << Name << "\"" << std::endl
-+               << "    \"string type\" [\"null\"]" << std::endl << std::endl
-+               << "MakeNamedMaterial \"FreeCADMaterial_" << Name << "\"" << std::endl
-+               << "    \"string namedmaterial1\" [\"FreeCADMaterial_Null_" << Name << "\"]" << std::endl
-+               << "    \"string namedmaterial2\" [\"FreeCADMaterial_Base_" << Name << "\"]" << std::endl
-+               << "    \"float amount\" [" << trans << "]" << std::endl
-+               << "    \"string type\" [\"mix\"]" << std::endl << std::endl;
-     }
-     
-     LuxTools::writeShape(result,Name.c_str(),shape);
diff --git a/cad/freecad/files/patch-src_Mod_Raytracing_App_RayFeature.cpp b/cad/freecad/files/patch-src_Mod_Raytracing_App_RayFeature.cpp
deleted file mode 100644
index 92c0f65afdfe..000000000000
--- a/cad/freecad/files/patch-src_Mod_Raytracing_App_RayFeature.cpp
+++ /dev/null
@@ -1,30 +0,0 @@
---- src/Mod/Raytracing/App/RayFeature.cpp.orig	2019-10-04 10:45:11 UTC
-+++ src/Mod/Raytracing/App/RayFeature.cpp
-@@ -81,19 +81,19 @@ App::DocumentObjectExecReturn *RayFeature::execute(voi
-     // This must not be done in PovTools::writeShape!
-     long t = Transparency.getValue();
-     const App::Color& c = Color.getValue();
--    result << "// instance to render" << endl
--           << "object {" << Name << endl
--           << " texture {" << endl;
-+    result << "// instance to render" << std::endl
-+           << "object {" << Name << std::endl
-+           << " texture {" << std::endl;
-     if (t == 0) {
--        result << "      pigment {color rgb <"<<c.r<<","<<c.g<<","<<c.b<<">}" << endl;
-+        result << "      pigment {color rgb <"<<c.r<<","<<c.g<<","<<c.b<<">}" << std::endl;
-     }
-     else {
-         float trans = t/100.0f;
--        result << "      pigment {color rgb <"<<c.r<<","<<c.g<<","<<c.b<<"> transmit "<<trans<<"}" << endl;
-+        result << "      pigment {color rgb <"<<c.r<<","<<c.g<<","<<c.b<<"> transmit "<<trans<<"}" << std::endl;
-     }
--    result << "      finish {StdFinish } //definition on top of the project" << endl
--           << "  }" << endl
--           << "}" << endl   ;
-+    result << "      finish {StdFinish } //definition on top of the project" << std::endl
-+           << "  }" << std::endl
-+           << "}" << std::endl   ;
- 
-     // Apply the resulting fragment
-     Result.setValue(result.str().c_str());
diff --git a/cad/freecad/pkg-plist b/cad/freecad/pkg-plist
index 7bd8392bfc8d..1b865df2c071 100644
--- a/cad/freecad/pkg-plist
+++ b/cad/freecad/pkg-plist
@@ -1,61 +1,133 @@
 FreeCAD/Ext/PySide/QtCore.py
 FreeCAD/Ext/PySide/QtGui.py
+FreeCAD/Ext/PySide/QtNetwork.py
 FreeCAD/Ext/PySide/QtSvg.py
 FreeCAD/Ext/PySide/QtUiTools.py
+FreeCAD/Ext/PySide/QtWebEngineWidgets.py
+FreeCAD/Ext/PySide/QtWidgets.py
 FreeCAD/Ext/PySide/__init__.py
 FreeCAD/Ext/freecad/UiTools.py
 FreeCAD/Ext/freecad/__init__.py
 FreeCAD/Ext/freecad/gui/RemoteDebugger.py
 FreeCAD/Ext/freecad/gui/RemoteDebugger.ui
+FreeCAD/Ext/freecad/project_utility.py
 FreeCAD/Ext/lazy_loader/__init__.py
 FreeCAD/Ext/lazy_loader/lazy_loader.py
 FreeCAD/Mod/AddonManager/ALLOWED_PYTHON_PACKAGES.txt
 FreeCAD/Mod/AddonManager/Addon.py
 FreeCAD/Mod/AddonManager/AddonManager.py
 FreeCAD/Mod/AddonManager/AddonManager.ui
+FreeCAD/Mod/AddonManager/AddonManagerOptions.py
 FreeCAD/Mod/AddonManager/AddonManagerOptions.ui
+FreeCAD/Mod/AddonManager/AddonManagerOptions_AddCustomRepository.ui
 FreeCAD/Mod/AddonManager/AddonManagerTest/__init__.py
 FreeCAD/Mod/AddonManager/AddonManagerTest/app/__init__.py
+FreeCAD/Mod/AddonManager/AddonManagerTest/app/mocks.py
 FreeCAD/Mod/AddonManager/AddonManagerTest/app/test_addon.py
+FreeCAD/Mod/AddonManager/AddonManagerTest/app/test_dependency_installer.py
+FreeCAD/Mod/AddonManager/AddonManagerTest/app/test_freecad_interface.py
+FreeCAD/Mod/AddonManager/AddonManagerTest/app/test_git.py
+FreeCAD/Mod/AddonManager/AddonManagerTest/app/test_installer.py
 FreeCAD/Mod/AddonManager/AddonManagerTest/app/test_macro.py
+FreeCAD/Mod/AddonManager/AddonManagerTest/app/test_macro_parser.py
+FreeCAD/Mod/AddonManager/AddonManagerTest/app/test_metadata.py
+FreeCAD/Mod/AddonManager/AddonManagerTest/app/test_uninstaller.py
 FreeCAD/Mod/AddonManager/AddonManagerTest/app/test_utilities.py
 FreeCAD/Mod/AddonManager/AddonManagerTest/data/DoNothing.FCMacro
+FreeCAD/Mod/AddonManager/AddonManagerTest/data/MacrosRecipesWikiPage.zip
+FreeCAD/Mod/AddonManager/AddonManagerTest/data/TestWorkbench.zip
 FreeCAD/Mod/AddonManager/AddonManagerTest/data/__init__.py
+FreeCAD/Mod/AddonManager/AddonManagerTest/data/addon_update_stats.json
 FreeCAD/Mod/AddonManager/AddonManagerTest/data/bad_macro_metadata.FCStd
 FreeCAD/Mod/AddonManager/AddonManagerTest/data/combination.xml
+FreeCAD/Mod/AddonManager/AddonManagerTest/data/corrupted_metadata.zip
 FreeCAD/Mod/AddonManager/AddonManagerTest/data/depends_on_all_workbenches.xml
+FreeCAD/Mod/AddonManager/AddonManagerTest/data/git_submodules.txt
 FreeCAD/Mod/AddonManager/AddonManagerTest/data/good_macro_metadata.FCStd
 FreeCAD/Mod/AddonManager/AddonManagerTest/data/good_package.xml
+FreeCAD/Mod/AddonManager/AddonManagerTest/data/icon_cache.zip
+FreeCAD/Mod/AddonManager/AddonManagerTest/data/icon_cache.zip.sha1
 FreeCAD/Mod/AddonManager/AddonManagerTest/data/macro_only.xml
 FreeCAD/Mod/AddonManager/AddonManagerTest/data/macro_template.FCStd
+FreeCAD/Mod/AddonManager/AddonManagerTest/data/metadata.zip
 FreeCAD/Mod/AddonManager/AddonManagerTest/data/missing_macro_metadata.FCStd
 FreeCAD/Mod/AddonManager/AddonManagerTest/data/prefpack_only.xml
+FreeCAD/Mod/AddonManager/AddonManagerTest/data/test_addon_with_fcmacro.zip
+FreeCAD/Mod/AddonManager/AddonManagerTest/data/test_github_style_repo.zip
+FreeCAD/Mod/AddonManager/AddonManagerTest/data/test_repo.zip
+FreeCAD/Mod/AddonManager/AddonManagerTest/data/test_simple_repo.zip
 FreeCAD/Mod/AddonManager/AddonManagerTest/data/test_version_detection.xml
 FreeCAD/Mod/AddonManager/AddonManagerTest/data/workbench_only.xml
 FreeCAD/Mod/AddonManager/AddonManagerTest/gui/__init__.py
+FreeCAD/Mod/AddonManager/AddonManagerTest/gui/gui_mocks.py
 FreeCAD/Mod/AddonManager/AddonManagerTest/gui/test_gui.py
 FreeCAD/Mod/AddonManager/AddonManagerTest/test_information.md
+FreeCAD/Mod/AddonManager/AddonManagerTest/gui/test_installer_gui.py
+FreeCAD/Mod/AddonManager/AddonManagerTest/gui/test_uninstaller_gui.py
+FreeCAD/Mod/AddonManager/AddonManagerTest/gui/test_update_all_gui.py
+FreeCAD/Mod/AddonManager/AddonManagerTest/gui/test_workers_startup.py
+FreeCAD/Mod/AddonManager/AddonManagerTest/gui/test_workers_utility.py
 FreeCAD/Mod/AddonManager/AddonManager_rc.py
 FreeCAD/Mod/AddonManager/Init.py
 FreeCAD/Mod/AddonManager/InitGui.py
 FreeCAD/Mod/AddonManager/NetworkManager.py
+FreeCAD/Mod/AddonManager/PythonDependencyUpdateDialog.ui
 FreeCAD/Mod/AddonManager/TestAddonManagerApp.py
 FreeCAD/Mod/AddonManager/TestAddonManagerGui.py
 FreeCAD/Mod/AddonManager/add_toolbar_button_dialog.ui
+FreeCAD/Mod/AddonManager/addonmanager_connection_checker.py
+FreeCAD/Mod/AddonManager/addonmanager_dependency_installer.py
+FreeCAD/Mod/AddonManager/addonmanager_devmode.py
+FreeCAD/Mod/AddonManager/addonmanager_devmode_add_content.py
+FreeCAD/Mod/AddonManager/addonmanager_devmode_license_selector.py
+FreeCAD/Mod/AddonManager/addonmanager_devmode_licenses_table.py
+FreeCAD/Mod/AddonManager/addonmanager_devmode_metadata_checker.py
+FreeCAD/Mod/AddonManager/addonmanager_devmode_people_table.py
+FreeCAD/Mod/AddonManager/addonmanager_devmode_person_editor.py
+FreeCAD/Mod/AddonManager/addonmanager_devmode_predictor.py
+FreeCAD/Mod/AddonManager/addonmanager_devmode_validators.py
+FreeCAD/Mod/AddonManager/addonmanager_firstrun.py
+FreeCAD/Mod/AddonManager/addonmanager_freecad_interface.py
+FreeCAD/Mod/AddonManager/addonmanager_git.py
+FreeCAD/Mod/AddonManager/addonmanager_installer.py
+FreeCAD/Mod/AddonManager/addonmanager_installer_gui.py
 FreeCAD/Mod/AddonManager/addonmanager_macro.py
+FreeCAD/Mod/AddonManager/addonmanager_macro_parser.py
+FreeCAD/Mod/AddonManager/addonmanager_metadata.py
+FreeCAD/Mod/AddonManager/addonmanager_pyside_interface.py
+FreeCAD/Mod/AddonManager/addonmanager_uninstaller.py
+FreeCAD/Mod/AddonManager/addonmanager_uninstaller_gui.py
+FreeCAD/Mod/AddonManager/addonmanager_update_all_gui.py
 FreeCAD/Mod/AddonManager/addonmanager_utilities.py
-FreeCAD/Mod/AddonManager/addonmanager_workers.py
+FreeCAD/Mod/AddonManager/addonmanager_workers_installation.py
+FreeCAD/Mod/AddonManager/addonmanager_workers_startup.py
+FreeCAD/Mod/AddonManager/addonmanager_workers_utility.py
 FreeCAD/Mod/AddonManager/change_branch.py
 FreeCAD/Mod/AddonManager/change_branch.ui
 FreeCAD/Mod/AddonManager/compact_view.py
 FreeCAD/Mod/AddonManager/dependency_resolution_dialog.ui
+FreeCAD/Mod/AddonManager/developer_mode.ui
+FreeCAD/Mod/AddonManager/developer_mode_add_content.ui
+FreeCAD/Mod/AddonManager/developer_mode_advanced_freecad_versions.ui
+FreeCAD/Mod/AddonManager/developer_mode_copyright_info.ui
+FreeCAD/Mod/AddonManager/developer_mode_dependencies.ui
+FreeCAD/Mod/AddonManager/developer_mode_edit_dependency.ui
+FreeCAD/Mod/AddonManager/developer_mode_freecad_versions.ui
+FreeCAD/Mod/AddonManager/developer_mode_license.ui
+FreeCAD/Mod/AddonManager/developer_mode_licenses_table.ui
+FreeCAD/Mod/AddonManager/developer_mode_people.ui
+FreeCAD/Mod/AddonManager/developer_mode_people_table.ui
+FreeCAD/Mod/AddonManager/developer_mode_select_from_list.ui
+FreeCAD/Mod/AddonManager/developer_mode_tags.ui
 FreeCAD/Mod/AddonManager/expanded_view.py
 FreeCAD/Mod/AddonManager/first_run.ui
 FreeCAD/Mod/AddonManager/install_to_toolbar.py
 FreeCAD/Mod/AddonManager/loading.html
+FreeCAD/Mod/AddonManager/manage_python_dependencies.py
 FreeCAD/Mod/AddonManager/package_details.py
 FreeCAD/Mod/AddonManager/package_list.py
 FreeCAD/Mod/AddonManager/select_toolbar_dialog.ui
+FreeCAD/Mod/AddonManager/update_all.ui
 FreeCAD/Mod/Arch/Arch.py
 FreeCAD/Mod/Arch/ArchAxis.py
 FreeCAD/Mod/Arch/ArchAxisSystem.py
@@ -105,6 +177,8 @@ FreeCAD/Mod/Arch/TestArch.py
 FreeCAD/Mod/Arch/exportIFC.py
 FreeCAD/Mod/Arch/exportIFCHelper.py
 FreeCAD/Mod/Arch/exportIFCStructuralTools.py
+FreeCAD/Mod/Arch/ifc_objects.py
+FreeCAD/Mod/Arch/ifc_viewproviders.py
 FreeCAD/Mod/Arch/import3DS.py
 FreeCAD/Mod/Arch/importDAE.py
 FreeCAD/Mod/Arch/importIFC.py
@@ -117,10 +191,8 @@ FreeCAD/Mod/Arch/importSH3D.py
 FreeCAD/Mod/Arch/importSHP.py
 FreeCAD/Mod/Arch/importWebGL.py
 FreeCAD/Mod/Draft/Draft.py
-FreeCAD/Mod/Draft/DraftFillet.py
 FreeCAD/Mod/Draft/DraftGeomUtils.py
 FreeCAD/Mod/Draft/DraftGui.py
-FreeCAD/Mod/Draft/DraftLayer.py
 FreeCAD/Mod/Draft/DraftTools.py
 FreeCAD/Mod/Draft/DraftVecUtils.py
 FreeCAD/Mod/Draft/Draft_rc.py
@@ -172,7 +244,6 @@ FreeCAD/Mod/Draft/draftguitools/README.md
 FreeCAD/Mod/Draft/draftguitools/__init__.py
 FreeCAD/Mod/Draft/draftguitools/gui_annotationstyleeditor.py
 FreeCAD/Mod/Draft/draftguitools/gui_arcs.py
-FreeCAD/Mod/Draft/draftguitools/gui_array_simple.py
 FreeCAD/Mod/Draft/draftguitools/gui_arrays.py
 FreeCAD/Mod/Draft/draftguitools/gui_base.py
 FreeCAD/Mod/Draft/draftguitools/gui_base_original.py
@@ -184,7 +255,6 @@ FreeCAD/Mod/Draft/draftguitools/gui_dimension_ops.py
 FreeCAD/Mod/Draft/draftguitools/gui_dimensions.py
 FreeCAD/Mod/Draft/draftguitools/gui_downgrade.py
 FreeCAD/Mod/Draft/draftguitools/gui_draft2sketch.py
-FreeCAD/Mod/Draft/draftguitools/gui_drawing.py
 FreeCAD/Mod/Draft/draftguitools/gui_edit.py
 FreeCAD/Mod/Draft/draftguitools/gui_edit_arch_objects.py
 FreeCAD/Mod/Draft/draftguitools/gui_edit_base_object.py
@@ -247,7 +317,6 @@ FreeCAD/Mod/Draft/draftmake/make_circulararray.py
 FreeCAD/Mod/Draft/draftmake/make_clone.py
 FreeCAD/Mod/Draft/draftmake/make_copy.py
 FreeCAD/Mod/Draft/draftmake/make_dimension.py
-FreeCAD/Mod/Draft/draftmake/make_drawingview.py
 FreeCAD/Mod/Draft/draftmake/make_ellipse.py
 FreeCAD/Mod/Draft/draftmake/make_facebinder.py
 FreeCAD/Mod/Draft/draftmake/make_fillet.py
@@ -280,7 +349,6 @@ FreeCAD/Mod/Draft/draftobjects/clone.py
 FreeCAD/Mod/Draft/draftobjects/dimension.py
 FreeCAD/Mod/Draft/draftobjects/draft_annotation.py
 FreeCAD/Mod/Draft/draftobjects/draftlink.py
-FreeCAD/Mod/Draft/draftobjects/drawingview.py
 FreeCAD/Mod/Draft/draftobjects/ellipse.py
 FreeCAD/Mod/Draft/draftobjects/facebinder.py
 FreeCAD/Mod/Draft/draftobjects/fillet.py
@@ -311,6 +379,7 @@ FreeCAD/Mod/Draft/drafttests/__init__.py
 FreeCAD/Mod/Draft/drafttests/auxiliary.py
 FreeCAD/Mod/Draft/drafttests/draft_test_objects.py
 FreeCAD/Mod/Draft/drafttests/test_airfoildat.py
+FreeCAD/Mod/Draft/drafttests/test_array.py
 FreeCAD/Mod/Draft/drafttests/test_creation.py
 FreeCAD/Mod/Draft/drafttests/test_draftgeomutils.py
 FreeCAD/Mod/Draft/drafttests/test_dwg.py
@@ -362,18 +431,14 @@ FreeCAD/Mod/Draft/importDWG.py
 FreeCAD/Mod/Draft/importDXF.py
 FreeCAD/Mod/Draft/importOCA.py
 FreeCAD/Mod/Draft/importSVG.py
-FreeCAD/Mod/Drawing/DrawingExample.py
-FreeCAD/Mod/Drawing/DrawingPatterns.py
-FreeCAD/Mod/Drawing/DrawingTests.py
-FreeCAD/Mod/Drawing/Init.py
-FreeCAD/Mod/Drawing/InitGui.py
-FreeCAD/Mod/Drawing/README.md
 FreeCAD/Mod/Fem/Init.py
 FreeCAD/Mod/Fem/InitGui.py
 FreeCAD/Mod/Fem/ObjectsFem.py
+FreeCAD/Mod/Fem/Resources/ui/BodyHeatSource.ui
 FreeCAD/Mod/Fem/Resources/ui/ConstraintCentrif.ui
 FreeCAD/Mod/Fem/Resources/ui/ConstraintSectionPrint.ui
 FreeCAD/Mod/Fem/Resources/ui/ConstraintTie.ui
+FreeCAD/Mod/Fem/Resources/ui/CurrentDensity.ui
 FreeCAD/Mod/Fem/Resources/ui/ElectrostaticPotential.ui
 FreeCAD/Mod/Fem/Resources/ui/ElementFluid1D.ui
 FreeCAD/Mod/Fem/Resources/ui/ElementGeometry1D.ui
@@ -381,6 +446,8 @@ FreeCAD/Mod/Fem/Resources/ui/ElementGeometry2D.ui
 FreeCAD/Mod/Fem/Resources/ui/ElementRotation1D.ui
 FreeCAD/Mod/Fem/Resources/ui/FlowVelocity.ui
 FreeCAD/Mod/Fem/Resources/ui/InitialFlowVelocity.ui
+FreeCAD/Mod/Fem/Resources/ui/InitialPressure.ui
+FreeCAD/Mod/Fem/Resources/ui/Magnetization.ui
 FreeCAD/Mod/Fem/Resources/ui/Material.ui
 FreeCAD/Mod/Fem/Resources/ui/MaterialReinforcement.ui
 FreeCAD/Mod/Fem/Resources/ui/MeshBoundaryLayer.ui
@@ -430,8 +497,16 @@ FreeCAD/Mod/Fem/femexamples/constraint_tie.py
 FreeCAD/Mod/Fem/femexamples/constraint_transform_beam_hinged.py
 FreeCAD/Mod/Fem/femexamples/constraint_transform_torque.py
 FreeCAD/Mod/Fem/femexamples/elmer_nonguitutorial01_eigenvalue_of_elastic_beam.py
+FreeCAD/Mod/Fem/femexamples/equation_deformation_spring_elmer.py
 FreeCAD/Mod/Fem/femexamples/equation_electrostatics_capacitance_two_balls.py
 FreeCAD/Mod/Fem/femexamples/equation_electrostatics_electricforce_elmer_nongui6.py
+FreeCAD/Mod/Fem/femexamples/equation_flow_elmer_2D.py
+FreeCAD/Mod/Fem/femexamples/equation_flow_initial_elmer_2D.py
+FreeCAD/Mod/Fem/femexamples/equation_flow_turbulent_elmer_2D.py
+FreeCAD/Mod/Fem/femexamples/equation_flux_elmer.py
+FreeCAD/Mod/Fem/femexamples/equation_magnetodynamics_2D_elmer.py
+FreeCAD/Mod/Fem/femexamples/equation_magnetodynamics_elmer.py
+FreeCAD/Mod/Fem/femexamples/equation_magnetostatics_2D_elmer.py
 FreeCAD/Mod/Fem/femexamples/examplesgui.py
 FreeCAD/Mod/Fem/femexamples/frequency_beamsimple.py
 FreeCAD/Mod/Fem/femexamples/manager.py
@@ -470,8 +545,6 @@ FreeCAD/Mod/Fem/femexamples/meshes/mesh_section_print_tetra10.py
 FreeCAD/Mod/Fem/femexamples/meshes/mesh_selfweight_cantilever_tetra10.py
 FreeCAD/Mod/Fem/femexamples/meshes/mesh_square_pipe_end_twisted_tria6.py
 FreeCAD/Mod/Fem/femexamples/meshes/mesh_thermomech_bimetall_tetra10.py
-FreeCAD/Mod/Fem/femexamples/meshes/mesh_thermomech_flow1d_seg3.py
-FreeCAD/Mod/Fem/femexamples/meshes/mesh_thermomech_spine_tetra10.py
 FreeCAD/Mod/Fem/femexamples/meshes/mesh_transform_beam_hinged_tetra10.py
 FreeCAD/Mod/Fem/femexamples/meshes/mesh_transform_torque_tetra10.py
 FreeCAD/Mod/Fem/femexamples/meshes/mesh_truss_crane_seg2.py
@@ -481,8 +554,6 @@ FreeCAD/Mod/Fem/femexamples/rc_wall_2d.py
 FreeCAD/Mod/Fem/femexamples/square_pipe_end_twisted_edgeforces.py
 FreeCAD/Mod/Fem/femexamples/square_pipe_end_twisted_nodeforces.py
 FreeCAD/Mod/Fem/femexamples/thermomech_bimetall.py
-FreeCAD/Mod/Fem/femexamples/thermomech_flow1d.py
-FreeCAD/Mod/Fem/femexamples/thermomech_spine.py
 FreeCAD/Mod/Fem/femexamples/truss_3d_cs_circle_ele_seg2.py
 FreeCAD/Mod/Fem/femexamples/truss_3d_cs_circle_ele_seg3.py
 FreeCAD/Mod/Fem/femguiobjects/__init__.py
@@ -517,9 +588,12 @@ FreeCAD/Mod/Fem/femobjects/base_fempythonobject.py
 FreeCAD/Mod/Fem/femobjects/constant_vacuumpermittivity.py
 FreeCAD/Mod/Fem/femobjects/constraint_bodyheatsource.py
 FreeCAD/Mod/Fem/femobjects/constraint_centrif.py
+FreeCAD/Mod/Fem/femobjects/constraint_currentdensity.py
 FreeCAD/Mod/Fem/femobjects/constraint_electrostaticpotential.py
 FreeCAD/Mod/Fem/femobjects/constraint_flowvelocity.py
 FreeCAD/Mod/Fem/femobjects/constraint_initialflowvelocity.py
+FreeCAD/Mod/Fem/femobjects/constraint_initialpressure.py
+FreeCAD/Mod/Fem/femobjects/constraint_magnetization.py
 FreeCAD/Mod/Fem/femobjects/constraint_sectionprint.py
 FreeCAD/Mod/Fem/femobjects/constraint_selfweight.py
 FreeCAD/Mod/Fem/femobjects/constraint_tie.py
@@ -568,14 +642,26 @@ FreeCAD/Mod/Fem/femsolver/calculix/write_step_output.py
 FreeCAD/Mod/Fem/femsolver/calculix/writer.py
 FreeCAD/Mod/Fem/femsolver/elmer/__init__.py
 FreeCAD/Mod/Fem/femsolver/elmer/equations/__init__.py
+FreeCAD/Mod/Fem/femsolver/elmer/equations/deformation.py
+FreeCAD/Mod/Fem/femsolver/elmer/equations/deformation_writer.py
 FreeCAD/Mod/Fem/femsolver/elmer/equations/elasticity.py
+FreeCAD/Mod/Fem/femsolver/elmer/equations/elasticity_writer.py
 FreeCAD/Mod/Fem/femsolver/elmer/equations/electricforce.py
+FreeCAD/Mod/Fem/femsolver/elmer/equations/electricforce_writer.py
 FreeCAD/Mod/Fem/femsolver/elmer/equations/electrostatic.py
+FreeCAD/Mod/Fem/femsolver/elmer/equations/electrostatic_writer.py
 FreeCAD/Mod/Fem/femsolver/elmer/equations/equation.py
 FreeCAD/Mod/Fem/femsolver/elmer/equations/flow.py
+FreeCAD/Mod/Fem/femsolver/elmer/equations/flow_writer.py
 FreeCAD/Mod/Fem/femsolver/elmer/equations/flux.py
+FreeCAD/Mod/Fem/femsolver/elmer/equations/flux_writer.py
 FreeCAD/Mod/Fem/femsolver/elmer/equations/heat.py
+FreeCAD/Mod/Fem/femsolver/elmer/equations/heat_writer.py
 FreeCAD/Mod/Fem/femsolver/elmer/equations/linear.py
+FreeCAD/Mod/Fem/femsolver/elmer/equations/magnetodynamic.py
+FreeCAD/Mod/Fem/femsolver/elmer/equations/magnetodynamic2D.py
+FreeCAD/Mod/Fem/femsolver/elmer/equations/magnetodynamic2D_writer.py
+FreeCAD/Mod/Fem/femsolver/elmer/equations/magnetodynamic_writer.py
 FreeCAD/Mod/Fem/femsolver/elmer/equations/nonlinear.py
 FreeCAD/Mod/Fem/femsolver/elmer/sifio.py
 FreeCAD/Mod/Fem/femsolver/elmer/solver.py
@@ -608,10 +694,14 @@ FreeCAD/Mod/Fem/femsolver/z88/solver.py
 FreeCAD/Mod/Fem/femsolver/z88/tasks.py
 FreeCAD/Mod/Fem/femsolver/z88/writer.py
 FreeCAD/Mod/Fem/femtaskpanels/__init__.py
+FreeCAD/Mod/Fem/femtaskpanels/task_constraint_bodyheatsource.py
 FreeCAD/Mod/Fem/femtaskpanels/task_constraint_centrif.py
+FreeCAD/Mod/Fem/femtaskpanels/task_constraint_currentdensity.py
 FreeCAD/Mod/Fem/femtaskpanels/task_constraint_electrostaticpotential.py
 FreeCAD/Mod/Fem/femtaskpanels/task_constraint_flowvelocity.py
 FreeCAD/Mod/Fem/femtaskpanels/task_constraint_initialflowvelocity.py
+FreeCAD/Mod/Fem/femtaskpanels/task_constraint_initialpressure.py
+FreeCAD/Mod/Fem/femtaskpanels/task_constraint_magnetization.py
 FreeCAD/Mod/Fem/femtaskpanels/task_constraint_sectionprint.py
 FreeCAD/Mod/Fem/femtaskpanels/task_constraint_tie.py
 FreeCAD/Mod/Fem/femtaskpanels/task_element_fluid1D.py
@@ -687,17 +777,6 @@ FreeCAD/Mod/Fem/femtest/data/calculix/material_nonlinear.inp
 FreeCAD/Mod/Fem/femtest/data/calculix/square_pipe_end_twisted_edgeforces.inp
 FreeCAD/Mod/Fem/femtest/data/calculix/square_pipe_end_twisted_nodeforces.inp
 FreeCAD/Mod/Fem/femtest/data/calculix/thermomech_bimetall.inp
-FreeCAD/Mod/Fem/femtest/data/calculix/thermomech_flow1D.FCStd
-FreeCAD/Mod/Fem/femtest/data/calculix/thermomech_flow1D.dat
-FreeCAD/Mod/Fem/femtest/data/calculix/thermomech_flow1D.frd
-FreeCAD/Mod/Fem/femtest/data/calculix/thermomech_flow1D.inp
-FreeCAD/Mod/Fem/femtest/data/calculix/thermomech_flow1D_expected_values
-FreeCAD/Mod/Fem/femtest/data/calculix/thermomech_flow1D_inout_nodes.txt
-FreeCAD/Mod/Fem/femtest/data/calculix/thermomech_spine.FCStd
-FreeCAD/Mod/Fem/femtest/data/calculix/thermomech_spine.dat
-FreeCAD/Mod/Fem/femtest/data/calculix/thermomech_spine.frd
-FreeCAD/Mod/Fem/femtest/data/calculix/thermomech_spine.inp
-FreeCAD/Mod/Fem/femtest/data/calculix/thermomech_spine_expected_values
 FreeCAD/Mod/Fem/femtest/data/elmer/ELMERSOLVER_STARTINFO
 FreeCAD/Mod/Fem/femtest/data/elmer/__init__.py
 FreeCAD/Mod/Fem/femtest/data/elmer/box_static_0_mm.sif
@@ -782,9 +861,12 @@ FreeCAD/Mod/Fem/femviewprovider/view_base_femobject.py
 FreeCAD/Mod/Fem/femviewprovider/view_constant_vacuumpermittivity.py
 FreeCAD/Mod/Fem/femviewprovider/view_constraint_bodyheatsource.py
 FreeCAD/Mod/Fem/femviewprovider/view_constraint_centrif.py
+FreeCAD/Mod/Fem/femviewprovider/view_constraint_currentdensity.py
 FreeCAD/Mod/Fem/femviewprovider/view_constraint_electrostaticpotential.py
 FreeCAD/Mod/Fem/femviewprovider/view_constraint_flowvelocity.py
 FreeCAD/Mod/Fem/femviewprovider/view_constraint_initialflowvelocity.py
+FreeCAD/Mod/Fem/femviewprovider/view_constraint_initialpressure.py
+FreeCAD/Mod/Fem/femviewprovider/view_constraint_magnetization.py
 FreeCAD/Mod/Fem/femviewprovider/view_constraint_sectionprint.py
 FreeCAD/Mod/Fem/femviewprovider/view_constraint_selfweight.py
 FreeCAD/Mod/Fem/femviewprovider/view_constraint_tie.py
@@ -838,13 +920,8 @@ FreeCAD/Mod/Idf/Idflibs/TSS0P_8.stp
 FreeCAD/Mod/Idf/Idflibs/VC0603_SMD.stp
 FreeCAD/Mod/Idf/Idflibs/footprints_models.csv
 FreeCAD/Mod/Idf/Init.py
-FreeCAD/Mod/Image/ImageTools/_CommandImageScaling.py
-FreeCAD/Mod/Image/ImageTools/__init__.py
-FreeCAD/Mod/Image/Init.py
-FreeCAD/Mod/Image/InitGui.py
 FreeCAD/Mod/Import/Init.py
 FreeCAD/Mod/Import/InitGui.py
-FreeCAD/Mod/Import/gzip_utf8.py
 FreeCAD/Mod/Import/stepZ.py
 FreeCAD/Mod/Inspection/Init.py
 FreeCAD/Mod/Inspection/InitGui.py
@@ -853,6 +930,8 @@ FreeCAD/Mod/Material/InitGui.py
 FreeCAD/Mod/Material/Material.py
 FreeCAD/Mod/Material/MaterialEditor.py
 FreeCAD/Mod/Material/Material_rc.py
+FreeCAD/Mod/Material/Resources/icons/preview-rendered.svg
+FreeCAD/Mod/Material/Resources/icons/preview-vector.svg
 FreeCAD/Mod/Material/Templatematerial.yml
 FreeCAD/Mod/Material/importFCMat.py
 FreeCAD/Mod/Material/materials-editor.ui
@@ -866,6 +945,7 @@ FreeCAD/Mod/Mesh/App/TestData/NASTRAN_Test_GRID_CTRIA3.bdf
 FreeCAD/Mod/Mesh/BuildRegularGeoms.py
 FreeCAD/Mod/Mesh/Init.py
 FreeCAD/Mod/Mesh/InitGui.py
+FreeCAD/Mod/Mesh/MeshEnums.py
 FreeCAD/Mod/Mesh/MeshTestsApp.py
 FreeCAD/Mod/MeshPart/Init.py
 FreeCAD/Mod/MeshPart/InitGui.py
@@ -904,6 +984,7 @@ FreeCAD/Mod/Part/AttachmentEditor/FrozenClass.py
 FreeCAD/Mod/Part/AttachmentEditor/TaskAttachmentEditor.py
 FreeCAD/Mod/Part/AttachmentEditor/TaskAttachmentEditor.ui
 FreeCAD/Mod/Part/AttachmentEditor/__init__.py
+FreeCAD/Mod/Part/BOPTools/BOPFeatures.py
 FreeCAD/Mod/Part/BOPTools/GeneralFuseResult.py
 FreeCAD/Mod/Part/BOPTools/JoinAPI.py
 FreeCAD/Mod/Part/BOPTools/JoinFeatures.py
@@ -916,6 +997,7 @@ FreeCAD/Mod/Part/BasicShapes/CommandShapes.py
 FreeCAD/Mod/Part/BasicShapes/ShapeContent.py
 FreeCAD/Mod/Part/BasicShapes/Shapes.py
 FreeCAD/Mod/Part/BasicShapes/TaskTube.ui
+FreeCAD/Mod/Part/BasicShapes/Utils.py
 FreeCAD/Mod/Part/BasicShapes/ViewProviderShapes.py
 FreeCAD/Mod/Part/BasicShapes/__init__.py
 FreeCAD/Mod/Part/CompoundTools/CompoundFilter.py
@@ -930,6 +1012,8 @@ FreeCAD/Mod/Part/MakeBottle.py
 FreeCAD/Mod/Part/PartEnums.py
 FreeCAD/Mod/Part/TestPartApp.py
 FreeCAD/Mod/Part/TestPartGui.py
+FreeCAD/Mod/Part/parttests/ColorPerFaceTest.py
+FreeCAD/Mod/Part/parttests/TopoShapeListTest.py
 FreeCAD/Mod/Part/parttests/__init__.py
 FreeCAD/Mod/Part/parttests/part_test_objects.py
 FreeCAD/Mod/Part/parttests/regression_tests.py
@@ -937,6 +1021,8 @@ FreeCAD/Mod/PartDesign/Init.py
 FreeCAD/Mod/PartDesign/InitGui.py
 FreeCAD/Mod/PartDesign/InvoluteGearFeature.py
 FreeCAD/Mod/PartDesign/InvoluteGearFeature.ui
+FreeCAD/Mod/PartDesign/PartDesignTests/Fixtures/InternalInvoluteGear_v0-20.FCStd
+FreeCAD/Mod/PartDesign/PartDesignTests/Fixtures/InvoluteGear_v0-20.FCStd
 FreeCAD/Mod/PartDesign/PartDesignTests/TestBoolean.py
 FreeCAD/Mod/PartDesign/PartDesignTests/TestChamfer.py
 FreeCAD/Mod/PartDesign/PartDesignTests/TestDatum.py
@@ -980,7 +1066,6 @@ FreeCAD/Mod/PartDesign/WizardShaft/__init__.py
 FreeCAD/Mod/PartDesign/__init__.py
 FreeCAD/Mod/PartDesign/fcgear/__init__.py
 FreeCAD/Mod/PartDesign/fcgear/fcgear.py
-FreeCAD/Mod/PartDesign/fcgear/fcgeardialog.py
 FreeCAD/Mod/PartDesign/fcgear/involute.py
 FreeCAD/Mod/PartDesign/fcgear/svggear.py
 FreeCAD/Mod/PartDesign/fcsprocket/__init__.py
@@ -994,208 +1079,240 @@ FreeCAD/Mod/Path/Data/Threads/imperial-internal-3B.csv
 FreeCAD/Mod/Path/Data/Threads/metric-external-4G6G.csv
 FreeCAD/Mod/Path/Data/Threads/metric-external-6G.csv
 FreeCAD/Mod/Path/Data/Threads/metric-internal-6H.csv
-FreeCAD/Mod/Path/Generators/drill_generator.py
-FreeCAD/Mod/Path/Generators/helix_generator.py
-FreeCAD/Mod/Path/Generators/rotation_generator.py
-FreeCAD/Mod/Path/Generators/threadmilling_generator.py
-FreeCAD/Mod/Path/Generators/toolchange_generator.py
 FreeCAD/Mod/Path/Images/Ops/chamfer.svg
 FreeCAD/Mod/Path/Images/Tools/drill.svg
 FreeCAD/Mod/Path/Images/Tools/endmill.svg
 FreeCAD/Mod/Path/Images/Tools/v-bit.svg
 FreeCAD/Mod/Path/Init.py
 FreeCAD/Mod/Path/InitGui.py
+FreeCAD/Mod/Path/Path/Base/Drillable.py
+FreeCAD/Mod/Path/Path/Base/FeedRate.py
+FreeCAD/Mod/Path/Path/Base/Generator/dogboneII.py
+FreeCAD/Mod/Path/Path/Base/Generator/drill.py
+FreeCAD/Mod/Path/Path/Base/Generator/helix.py
+FreeCAD/Mod/Path/Path/Base/Generator/rotation.py
+FreeCAD/Mod/Path/Path/Base/Generator/threadmilling.py
+FreeCAD/Mod/Path/Path/Base/Generator/toolchange.py
+FreeCAD/Mod/Path/Path/Base/Gui/GetPoint.py
+FreeCAD/Mod/Path/Path/Base/Gui/IconViewProvider.py
+FreeCAD/Mod/Path/Path/Base/Gui/PreferencesAdvanced.py
+FreeCAD/Mod/Path/Path/Base/Gui/PropertyBag.py
+FreeCAD/Mod/Path/Path/Base/Gui/PropertyEditor.py
+FreeCAD/Mod/Path/Path/Base/Gui/SetupSheet.py
+FreeCAD/Mod/Path/Path/Base/Gui/SetupSheetOpPrototype.py
+FreeCAD/Mod/Path/Path/Base/Gui/Util.py
+FreeCAD/Mod/Path/Path/Base/Gui/__init__.py
+FreeCAD/Mod/Path/Path/Base/Language.py
+FreeCAD/Mod/Path/Path/Base/MachineState.py
+FreeCAD/Mod/Path/Path/Base/Property.py
+FreeCAD/Mod/Path/Path/Base/PropertyBag.py
+FreeCAD/Mod/Path/Path/Base/SetupSheet.py
+FreeCAD/Mod/Path/Path/Base/SetupSheetOpPrototype.py
+FreeCAD/Mod/Path/Path/Base/Util.py
+FreeCAD/Mod/Path/Path/Base/__init__.py
+FreeCAD/Mod/Path/Path/Dressup/Boundary.py
+FreeCAD/Mod/Path/Path/Dressup/DogboneII.py
+FreeCAD/Mod/Path/Path/Dressup/Gui/AxisMap.py
+FreeCAD/Mod/Path/Path/Dressup/Gui/Boundary.py
+FreeCAD/Mod/Path/Path/Dressup/Gui/Dogbone.py
+FreeCAD/Mod/Path/Path/Dressup/Gui/DogboneII.py
+FreeCAD/Mod/Path/Path/Dressup/Gui/Dragknife.py
+FreeCAD/Mod/Path/Path/Dressup/Gui/LeadInOut.py
+FreeCAD/Mod/Path/Path/Dressup/Gui/Preferences.py
+FreeCAD/Mod/Path/Path/Dressup/Gui/RampEntry.py
+FreeCAD/Mod/Path/Path/Dressup/Gui/TagPreferences.py
+FreeCAD/Mod/Path/Path/Dressup/Gui/Tags.py
+FreeCAD/Mod/Path/Path/Dressup/Gui/ZCorrect.py
+FreeCAD/Mod/Path/Path/Dressup/Gui/__init__.py
+FreeCAD/Mod/Path/Path/Dressup/Tags.py
+FreeCAD/Mod/Path/Path/Dressup/Utils.py
+FreeCAD/Mod/Path/Path/Dressup/__init__.py
+FreeCAD/Mod/Path/Path/Geom.py
+FreeCAD/Mod/Path/Path/GuiInit.py
+FreeCAD/Mod/Path/Path/Log.py
+FreeCAD/Mod/Path/Path/Main/Gui/Camotics.py
+FreeCAD/Mod/Path/Path/Main/Gui/Fixture.py
+FreeCAD/Mod/Path/Path/Main/Gui/Inspect.py
+FreeCAD/Mod/Path/Path/Main/Gui/Job.py
+FreeCAD/Mod/Path/Path/Main/Gui/JobCmd.py
+FreeCAD/Mod/Path/Path/Main/Gui/JobDlg.py
+FreeCAD/Mod/Path/Path/Main/Gui/PreferencesJob.py
+FreeCAD/Mod/Path/Path/Main/Gui/Sanity.py
+FreeCAD/Mod/Path/Path/Main/Gui/Simulator.py
+FreeCAD/Mod/Path/Path/Main/Gui/__init__.py
+FreeCAD/Mod/Path/Path/Main/Job.py
+FreeCAD/Mod/Path/Path/Main/Stock.py
+FreeCAD/Mod/Path/Path/Main/__init__.py
+FreeCAD/Mod/Path/Path/Op/Adaptive.py
+FreeCAD/Mod/Path/Path/Op/Area.py
+FreeCAD/Mod/Path/Path/Op/Base.py
+FreeCAD/Mod/Path/Path/Op/CircularHoleBase.py
+FreeCAD/Mod/Path/Path/Op/Custom.py
+FreeCAD/Mod/Path/Path/Op/Deburr.py
+FreeCAD/Mod/Path/Path/Op/Drilling.py
+FreeCAD/Mod/Path/Path/Op/Engrave.py
+FreeCAD/Mod/Path/Path/Op/EngraveBase.py
+FreeCAD/Mod/Path/Path/Op/FeatureExtension.py
+FreeCAD/Mod/Path/Path/Op/Gui/Adaptive.py
+FreeCAD/Mod/Path/Path/Op/Gui/Array.py
+FreeCAD/Mod/Path/Path/Op/Gui/Base.py
+FreeCAD/Mod/Path/Path/Op/Gui/CircularHoleBase.py
+FreeCAD/Mod/Path/Path/Op/Gui/Comment.py
+FreeCAD/Mod/Path/Path/Op/Gui/Copy.py
+FreeCAD/Mod/Path/Path/Op/Gui/Custom.py
+FreeCAD/Mod/Path/Path/Op/Gui/Deburr.py
+FreeCAD/Mod/Path/Path/Op/Gui/Drilling.py
+FreeCAD/Mod/Path/Path/Op/Gui/Engrave.py
+FreeCAD/Mod/Path/Path/Op/Gui/FeatureExtension.py
+FreeCAD/Mod/Path/Path/Op/Gui/Helix.py
+FreeCAD/Mod/Path/Path/Op/Gui/Hop.py
+FreeCAD/Mod/Path/Path/Op/Gui/MillFace.py
+FreeCAD/Mod/Path/Path/Op/Gui/Pocket.py
+FreeCAD/Mod/Path/Path/Op/Gui/PocketBase.py
+FreeCAD/Mod/Path/Path/Op/Gui/PocketShape.py
+FreeCAD/Mod/Path/Path/Op/Gui/Probe.py
+FreeCAD/Mod/Path/Path/Op/Gui/Profile.py
+FreeCAD/Mod/Path/Path/Op/Gui/Selection.py
+FreeCAD/Mod/Path/Path/Op/Gui/SimpleCopy.py
+FreeCAD/Mod/Path/Path/Op/Gui/Slot.py
+FreeCAD/Mod/Path/Path/Op/Gui/Stop.py
+FreeCAD/Mod/Path/Path/Op/Gui/Surface.py
+FreeCAD/Mod/Path/Path/Op/Gui/ThreadMilling.py
+FreeCAD/Mod/Path/Path/Op/Gui/Vcarve.py
+FreeCAD/Mod/Path/Path/Op/Gui/Waterline.py
+FreeCAD/Mod/Path/Path/Op/Gui/__init__.py
+FreeCAD/Mod/Path/Path/Op/Helix.py
+FreeCAD/Mod/Path/Path/Op/MillFace.py
+FreeCAD/Mod/Path/Path/Op/Pocket.py
+FreeCAD/Mod/Path/Path/Op/PocketBase.py
+FreeCAD/Mod/Path/Path/Op/PocketShape.py
+FreeCAD/Mod/Path/Path/Op/Probe.py
+FreeCAD/Mod/Path/Path/Op/Profile.py
+FreeCAD/Mod/Path/Path/Op/Slot.py
+FreeCAD/Mod/Path/Path/Op/Surface.py
+FreeCAD/Mod/Path/Path/Op/SurfaceSupport.py
+FreeCAD/Mod/Path/Path/Op/ThreadMilling.py
+FreeCAD/Mod/Path/Path/Op/Util.py
+FreeCAD/Mod/Path/Path/Op/Vcarve.py
+FreeCAD/Mod/Path/Path/Op/Waterline.py
+FreeCAD/Mod/Path/Path/Op/__init__.py
+FreeCAD/Mod/Path/Path/Post/Command.py
+FreeCAD/Mod/Path/Path/Post/Processor.py
+FreeCAD/Mod/Path/Path/Post/Utils.py
+FreeCAD/Mod/Path/Path/Post/UtilsArguments.py
+FreeCAD/Mod/Path/Path/Post/UtilsExport.py
+FreeCAD/Mod/Path/Path/Post/UtilsParse.py
+FreeCAD/Mod/Path/Path/Post/__init__.py
+FreeCAD/Mod/Path/Path/Post/scripts/KineticNCBeamicon2_post.py
+FreeCAD/Mod/Path/Path/Post/scripts/__init__.py
+FreeCAD/Mod/Path/Path/Post/scripts/centroid_post.py
+FreeCAD/Mod/Path/Path/Post/scripts/comparams_post.py
+FreeCAD/Mod/Path/Path/Post/scripts/dxf_post.py
+FreeCAD/Mod/Path/Path/Post/scripts/dynapath_post.py
+FreeCAD/Mod/Path/Path/Post/scripts/example_pre.py
+FreeCAD/Mod/Path/Path/Post/scripts/fablin_post.py
+FreeCAD/Mod/Path/Path/Post/scripts/fangling_post.py
+FreeCAD/Mod/Path/Path/Post/scripts/fanuc_post.py
+FreeCAD/Mod/Path/Path/Post/scripts/gcode_pre.py
+FreeCAD/Mod/Path/Path/Post/scripts/grbl_post.py
+FreeCAD/Mod/Path/Path/Post/scripts/heidenhain_post.py
+FreeCAD/Mod/Path/Path/Post/scripts/jtech_post.py
+FreeCAD/Mod/Path/Path/Post/scripts/linuxcnc_post.py
+FreeCAD/Mod/Path/Path/Post/scripts/mach3_mach4_post.py
+FreeCAD/Mod/Path/Path/Post/scripts/marlin_post.py
+FreeCAD/Mod/Path/Path/Post/scripts/nccad_post.py
+FreeCAD/Mod/Path/Path/Post/scripts/opensbp_post.py
+FreeCAD/Mod/Path/Path/Post/scripts/opensbp_pre.py
+FreeCAD/Mod/Path/Path/Post/scripts/philips_post.py
+FreeCAD/Mod/Path/Path/Post/scripts/refactored_centroid_post.py
+FreeCAD/Mod/Path/Path/Post/scripts/refactored_grbl_post.py
+FreeCAD/Mod/Path/Path/Post/scripts/refactored_linuxcnc_post.py
+FreeCAD/Mod/Path/Path/Post/scripts/refactored_mach3_mach4_post.py
+FreeCAD/Mod/Path/Path/Post/scripts/refactored_test_post.py
+FreeCAD/Mod/Path/Path/Post/scripts/rml_post.py
+FreeCAD/Mod/Path/Path/Post/scripts/rrf_post.py
+FreeCAD/Mod/Path/Path/Post/scripts/slic3r_pre.py
+FreeCAD/Mod/Path/Path/Post/scripts/smoothie_post.py
+FreeCAD/Mod/Path/Path/Post/scripts/uccnc_post.py
+FreeCAD/Mod/Path/Path/Preferences.py
+FreeCAD/Mod/Path/Path/Tool/Bit.py
+FreeCAD/Mod/Path/Path/Tool/Controller.py
+FreeCAD/Mod/Path/Path/Tool/Gui/Bit.py
+FreeCAD/Mod/Path/Path/Tool/Gui/BitCmd.py
+FreeCAD/Mod/Path/Path/Tool/Gui/BitEdit.py
+FreeCAD/Mod/Path/Path/Tool/Gui/BitLibrary.py
+FreeCAD/Mod/Path/Path/Tool/Gui/BitLibraryCmd.py
+FreeCAD/Mod/Path/Path/Tool/Gui/Controller.py
+FreeCAD/Mod/Path/Path/Tool/Gui/__init__.py
+FreeCAD/Mod/Path/Path/Tool/__init__.py
+FreeCAD/Mod/Path/Path/__init__.py
 FreeCAD/Mod/Path/PathCommands.py
-FreeCAD/Mod/Path/PathFeedRate.py
-FreeCAD/Mod/Path/PathMachineState.py
 FreeCAD/Mod/Path/PathPythonGui/__init__.py
 FreeCAD/Mod/Path/PathPythonGui/simple_edit_panel.py
-FreeCAD/Mod/Path/PathScripts/PathAdaptive.py
-FreeCAD/Mod/Path/PathScripts/PathAdaptiveGui.py
-FreeCAD/Mod/Path/PathScripts/PathAreaOp.py
-FreeCAD/Mod/Path/PathScripts/PathArray.py
-FreeCAD/Mod/Path/PathScripts/PathCircularHoleBase.py
-FreeCAD/Mod/Path/PathScripts/PathCircularHoleBaseGui.py
-FreeCAD/Mod/Path/PathScripts/PathComment.py
-FreeCAD/Mod/Path/PathScripts/PathCopy.py
-FreeCAD/Mod/Path/PathScripts/PathCustom.py
-FreeCAD/Mod/Path/PathScripts/PathCustomGui.py
-FreeCAD/Mod/Path/PathScripts/PathDeburr.py
-FreeCAD/Mod/Path/PathScripts/PathDeburrGui.py
-FreeCAD/Mod/Path/PathScripts/PathDressup.py
-FreeCAD/Mod/Path/PathScripts/PathDressupAxisMap.py
-FreeCAD/Mod/Path/PathScripts/PathDressupDogbone.py
-FreeCAD/Mod/Path/PathScripts/PathDressupDragknife.py
-FreeCAD/Mod/Path/PathScripts/PathDressupHoldingTags.py
-FreeCAD/Mod/Path/PathScripts/PathDressupLeadInOut.py
-FreeCAD/Mod/Path/PathScripts/PathDressupPathBoundary.py
-FreeCAD/Mod/Path/PathScripts/PathDressupPathBoundaryGui.py
-FreeCAD/Mod/Path/PathScripts/PathDressupRampEntry.py
-FreeCAD/Mod/Path/PathScripts/PathDressupTag.py
-FreeCAD/Mod/Path/PathScripts/PathDressupTagGui.py
-FreeCAD/Mod/Path/PathScripts/PathDressupTagPreferences.py
-FreeCAD/Mod/Path/PathScripts/PathDressupZCorrect.py
-FreeCAD/Mod/Path/PathScripts/PathDrilling.py
-FreeCAD/Mod/Path/PathScripts/PathDrillingGui.py
-FreeCAD/Mod/Path/PathScripts/PathEngrave.py
-FreeCAD/Mod/Path/PathScripts/PathEngraveBase.py
-FreeCAD/Mod/Path/PathScripts/PathEngraveGui.py
-FreeCAD/Mod/Path/PathScripts/PathFeatureExtensions.py
-FreeCAD/Mod/Path/PathScripts/PathFeatureExtensionsGui.py
-FreeCAD/Mod/Path/PathScripts/PathFixture.py
-FreeCAD/Mod/Path/PathScripts/PathGeom.py
-FreeCAD/Mod/Path/PathScripts/PathGetPoint.py
-FreeCAD/Mod/Path/PathScripts/PathGui.py
-FreeCAD/Mod/Path/PathScripts/PathGuiInit.py
-FreeCAD/Mod/Path/PathScripts/PathHelix.py
-FreeCAD/Mod/Path/PathScripts/PathHelixGui.py
-FreeCAD/Mod/Path/PathScripts/PathHop.py
-FreeCAD/Mod/Path/PathScripts/PathIconViewProvider.py
-FreeCAD/Mod/Path/PathScripts/PathInspect.py
-FreeCAD/Mod/Path/PathScripts/PathJob.py
-FreeCAD/Mod/Path/PathScripts/PathJobCmd.py
-FreeCAD/Mod/Path/PathScripts/PathJobDlg.py
-FreeCAD/Mod/Path/PathScripts/PathJobGui.py
-FreeCAD/Mod/Path/PathScripts/PathLog.py
-FreeCAD/Mod/Path/PathScripts/PathMillFace.py
-FreeCAD/Mod/Path/PathScripts/PathMillFaceGui.py
-FreeCAD/Mod/Path/PathScripts/PathOp.py
-FreeCAD/Mod/Path/PathScripts/PathOpGui.py
-FreeCAD/Mod/Path/PathScripts/PathOpTools.py
-FreeCAD/Mod/Path/PathScripts/PathPocket.py
-FreeCAD/Mod/Path/PathScripts/PathPocketBase.py
-FreeCAD/Mod/Path/PathScripts/PathPocketBaseGui.py
-FreeCAD/Mod/Path/PathScripts/PathPocketGui.py
-FreeCAD/Mod/Path/PathScripts/PathPocketShape.py
-FreeCAD/Mod/Path/PathScripts/PathPocketShapeGui.py
-FreeCAD/Mod/Path/PathScripts/PathPost.py
-FreeCAD/Mod/Path/PathScripts/PathPostProcessor.py
-FreeCAD/Mod/Path/PathScripts/PathPreferences.py
-FreeCAD/Mod/Path/PathScripts/PathPreferencesAdvanced.py
-FreeCAD/Mod/Path/PathScripts/PathPreferencesPathDressup.py
-FreeCAD/Mod/Path/PathScripts/PathPreferencesPathJob.py
-FreeCAD/Mod/Path/PathScripts/PathProbe.py
-FreeCAD/Mod/Path/PathScripts/PathProbeGui.py
-FreeCAD/Mod/Path/PathScripts/PathProfile.py
*** 522 LINES SKIPPED ***