conda-forge / freecad-feedstock

A conda-smithy repository for freecad.
BSD 3-Clause "New" or "Revised" License
7 stars 22 forks source link

update to 0.20.2 #79

Closed looooo closed 1 year ago

looooo commented 1 year ago

Checklist

conda-forge-linter commented 1 year ago

Hi! This is the friendly automated conda-forge-linting service.

I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

looooo commented 1 year ago

@donovaly can you help with the compiler issues. Has anything changed regarding smesh (FEM-MESH) compared to 0.20.1? Also I am not sure about the windows issue.

adrianinsaval commented 1 year ago

~what version of occt is this using?~(7.6.3) perhaps this is the culprit? d8bc205b756 I don't think this type of include changes should be made on a stable branch

looooo commented 1 year ago

@adrianinsaval thanks for your help. not sure if this is culprit. To me it seems like the line that makes troubles look the same for master and 0.20.2. Here is the error message:

$SRC_DIR/src/Mod/Fem/App/FemMeshShapeObject.cpp:85:23: error: invalid use of incomplete type 'class SMESH_Mesh'
   85 |     newMesh.getSMesh()->ShapeToMesh(shape);
adrianinsaval commented 1 year ago

Can you try if reverting this works? It's not about that line specifically but about the includes necessary for that line to work. We've had trouble before with this kind of changes, in master it's no big deal because it's constantly being built on multiple platforms, issues are detected and solved quickly, on the stable branch the problem could have gone undetected for months until there is a point release

looooo commented 1 year ago

Here are the error messages:

linux

$SRC_DIR/src/Mod/Fem/App/FemMeshShapeObject.cpp:85:23: error: invalid use of incomplete type 'class SMESH_Mesh'
   85 |     newMesh.getSMesh()->ShapeToMesh(shape);

osx:

$SRC_DIR/src/Mod/Fem/App/FemMesh.cpp:1174:21: error: unknown type name 'string'; did you mean 'std::string'?
        std::vector<string> token_results;

win:

%SRC_DIR%\src\Mod\Fem\App\FemMesh.cpp(1298): error C2065: 'string': undeclared identifier

seems like the windows error and the osx error are nearly the same and should be fixed with https://github.com/FreeCAD/FreeCAD/commit/a96a3a505f63a589cc6dad02478c4df135cf7fdd

looooo commented 1 year ago

Can you try if reverting this works? It's not about that line specifically but about the includes necessary for that line to work. We've had trouble before with this kind of changes, in master it's no big deal because it's constantly being built on multiple platforms, issues are detected and solved quickly, on the stable branch the problem could have gone undetected for months until there is a point release

Maybe we can find the fix in the master branch and add it as a patch.

looooo commented 1 year ago

now I see a different smesh error for linux:

$SRC_DIR/src/Mod/Fem/App/HypothesisPy.cpp:60:12: fatal error: StdMeshers_TrianglePreference.hxx: No such file or directory
   60 | #  include <StdMeshers_TrianglePreference.hxx>

but this should not be a problem as smesh is version 9.8

# if SMESH_VERSION_MAJOR < 7
#  include <StdMeshers_TrianglePreference.hxx>
# endif

argh: why master works and not 0.20.2???

adrianinsaval commented 1 year ago

Try also applying https://github.com/FreeCAD/FreeCAD/commit/63cc0422991d1a797e40bf7d9b9a11661dfcb068 In the issue mentioned in the commit you linked this was brought up too

looooo commented 1 year ago

@donovaly what do you think about adding these two commits to the 0.20.2 branch? These are needed to build freecad via conda.

adrianinsaval commented 1 year ago

does that means it worked for you locally? @donovaly please refrain from back porting changes like https://github.com/FreeCAD/FreeCAD/commit/d8bc205b756ec625b510ce7276e3ee7d40ccfa15 in the future, I understand these can be beneficial so it's perfectly fine to do on master branch but IMO it's not worth the trouble in the stable branch where there is very little multi-platform testing and we are supposed to only backport bugfixes there

looooo commented 1 year ago

does that means it worked for you locally?

I didn't test locally. But as all 3 platforms reported the same issue in the last build, I hope this should be resolved.

@donovaly please refrain from back porting changes like FreeCAD/FreeCAD@d8bc205 in the future, I understand these can be beneficial so it's perfectly fine to do on master branch but IMO it's not worth the trouble in the stable branch where there is very little multi-platform testing and we are supposed to only backport bugfixes there

In addition it would be nice to have more alpha builds (which are basically snapshots of master) and less after-releases (which are divorced branches). But I guess we have a little bit more time until we see a 0.21 release.

looooo commented 1 year ago

ok windows is failing with a linking issue:

FemMeshShapeObject.cpp.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: void __cdecl StdMeshers_NumberOfSegments::SetNumberOfSegments(__int64)" (__imp_?SetNumberOfSegments@StdMeshers_NumberOfSegments@@QEAAX_J@Z) referenced in function "public: virtual class App::DocumentObjectExecReturn * __cdecl Fem::FemMeshShapeObject::execute(void)" (?execute@FemMeshShapeObject@Fem@@UEAAPEAVDocumentObjectExecReturn@App@@XZ)

https://github.com/FreeCAD/FreeCAD/pull/7496 ok this was back ported, so we should use smesh 9.9 👍

donovaly commented 1 year ago

@donovaly can you help with the compiler issues. Has anything changed regarding smesh (FEM-MESH) compared to 0.20.1? Also I am not sure about the windows issue.

Nothing changed with SMESH. I cannot remember any change inn thrid-party libraries since FC 0.20.1. Personally, I use exactly the same build environment for 0.20.1 and 0.20.2. (I only addeed 2 SSH DLLs but it turned out this is not necessary.) So using your 0.20.x setup and it should work. You can ignore Windows issues. We already have a Windows build available that was tested by the community. So once you are able to get a MacOS and Linux build, be can make the release announcement. Afterwards we can fix further issues.

( What I have is two separate build environments, one for master and Toponaming one for 0.20.x. This way I assure I can always build 0.20.x and if not, there is a bug in our Git repository, and definitely not in my third-party setup.)

Currently I am away and cannot help much.

donovaly commented 1 year ago

~what version of occt is this using?~(7.6.3) perhaps this is the culprit? d8bc205b756 I don't think this type of include changes should be made on a stable branch

Indeed, this should not have gone into the 0-20 branch. I will revert this (not sure I I can this this from my laptop, though)

adrianinsaval commented 1 year ago

no rush, the tag won't change anyways so it's fine to do it once you are back

donovaly commented 1 year ago

I will revert this (not sure I I can this this from my laptop, though)

I had a look and there are many of such commits. I cannot revert them all. However, the CI succeeds with the 0.20 branch and those commits just removed unused includes. I don't see why one needs to change SMESH. As I wrote, I use the same SMESH for all 0.20 builds purposely.

donovaly commented 1 year ago

Try also applying FreeCAD/FreeCAD@63cc042 In the issue mentioned in the commit you linked this was brought up too

Ah, yes, I backported the commit to see the SMESH version in the About dialog. And I missed to backport this commit. My fault, sorry. I backported this change now too.

Lesson learned: backport really only bugfixes, no other things, no matter how helpful they might be for maintenance.

donovaly commented 1 year ago

@donovaly what do you think about adding these two commits to the 0.20.2 branch? These are needed to build freecad via conda.

* [FreeCAD/FreeCAD@63cc042](https://github.com/FreeCAD/FreeCAD/commit/63cc0422991d1a797e40bf7d9b9a11661dfcb068)

* [FreeCAD/FreeCAD@a96a3a5](https://github.com/FreeCAD/FreeCAD/commit/a96a3a505f63a589cc6dad02478c4df135cf7fdd)

I backported them now.

donovaly commented 1 year ago

Ah, yes, I backported the commit to see the SMESH version in the About dialog.

Sorry, no, I did not backport this. So the mentioned commit does not have to be backported. However, it does not hurt to be backported, so I will leave it now in the 0-20 branch.

For the records, my WIndows build is built with SMESH 7.7.10

looooo commented 1 year ago

should we skip the tests?

======================================================================
2022-12-27T00:00:53.1931524Z ERROR: test_thermomech_flow1D (femtest.app.test_ccxtools.TestCcxTools)
2022-12-27T00:00:53.1932394Z ----------------------------------------------------------------------
2022-12-27T00:00:53.1933643Z Traceback (most recent call last):
2022-12-27T00:00:53.1934250Z   File "$PREFIX/Mod/Fem/femtest/app/test_ccxtools.py", line 150, in test_thermomech_flow1D
2022-12-27T00:00:53.1935354Z     fea = self.input_file_writing_test(
2022-12-27T00:00:53.1935889Z   File "$PREFIX/Mod/Fem/femtest/app/test_ccxtools.py", line 234, in input_file_writing_test
2022-12-27T00:00:53.1936581Z     error = fea.write_inp_file()
2022-12-27T00:00:53.1937128Z   File "$PREFIX/Mod/Fem/femtools/ccxtools.py", line 388, in write_inp_file
2022-12-27T00:00:53.1937660Z     meshdatagetter.get_mesh_sets()
2022-12-27T00:00:53.1938335Z   File "$PREFIX/Mod/Fem/femmesh/meshsetsgetter.py", line 134, in get_mesh_sets
2022-12-27T00:00:53.1938900Z     self.get_element_sets_material_and_femelement_geometry()
2022-12-27T00:00:53.1939617Z   File "$PREFIX/Mod/Fem/femmesh/meshsetsgetter.py", line 674, in get_element_sets_material_and_femelement_geometry
2022-12-27T00:00:53.1940272Z     self.get_element_fluid1D_elements()
2022-12-27T00:00:53.1940942Z   File "$PREFIX/Mod/Fem/femmesh/meshsetsgetter.py", line 615, in get_element_fluid1D_elements
2022-12-27T00:00:53.1941486Z     meshtools.get_femelement_sets(
2022-12-27T00:00:53.1941969Z   File "$PREFIX/Mod/Fem/femmesh/meshtools.py", line 488, in get_femelement_sets
2022-12-27T00:00:53.1942563Z     referenced_femelements = np.zeros((max(femelement_table.keys())+1,),dtype=np.int)
2022-12-27T00:00:53.1943333Z   File "$PREFIX/lib/python3.10/site-packages/numpy/__init__.py", line 284, in __getattr__
2022-12-27T00:00:53.1943882Z     raise AttributeError("module {!r} has no attribute "
2022-12-27T00:00:53.1944443Z AttributeError: module 'numpy' has no attribute 'int'
2022-12-27T00:00:53.1944674Z 
2022-12-27T00:00:53.1945030Z ======================================================================
2022-12-27T00:00:53.1946027Z ERROR: test_material_multiple_bendingbeam_fiveboxes (femtest.app.test_solver_calculix.TestSolverCalculix)
2022-12-27T00:00:53.1946807Z ----------------------------------------------------------------------
2022-12-27T00:00:53.1947329Z Traceback (most recent call last):
2022-12-27T00:00:53.1947855Z   File "$PREFIX/Mod/Fem/femtest/app/test_solver_calculix.py", line 294, in test_material_multiple_bendingbeam_fiveboxes
2022-12-27T00:00:53.1948434Z     self.input_file_writing_test(get_namefromdef("test_"))
2022-12-27T00:00:53.1948956Z   File "$PREFIX/Mod/Fem/femtest/app/test_solver_calculix.py", line 393, in input_file_writing_test
2022-12-27T00:00:53.1949562Z     ret = testtools.compare_inp_files(
2022-12-27T00:00:53.1950193Z   File "$PREFIX/Mod/Fem/femtest/app/support_utils.py", line 203, in compare_inp_files
2022-12-27T00:00:53.1950711Z     file2 = open(file_name2, "r")
2022-12-27T00:00:53.1952288Z FileNotFoundError: [Errno 2] No such file or directory: '/tmp/FEM_unittests/solver_calculix_material_multiple_bendingbeam_fiveboxes_5b85441ddc4e/Mesh.inp'
2022-12-27T00:00:53.1952936Z 
2022-12-27T00:00:53.1953452Z ======================================================================
2022-12-27T00:00:53.1954133Z ERROR: test_material_multiple_bendingbeam_fivefaces (femtest.app.test_solver_calculix.TestSolverCalculix)
2022-12-27T00:00:53.1955001Z ----------------------------------------------------------------------
2022-12-27T00:00:53.1955440Z Traceback (most recent call last):
2022-12-27T00:00:53.1956043Z   File "$PREFIX/Mod/Fem/femtest/app/test_solver_calculix.py", line 302, in test_material_multiple_bendingbeam_fivefaces
2022-12-27T00:00:53.1957060Z     self.input_file_writing_test(get_namefromdef("test_"))
2022-12-27T00:00:53.1957627Z   File "$PREFIX/Mod/Fem/femtest/app/test_solver_calculix.py", line 393, in input_file_writing_test
2022-12-27T00:00:53.1958105Z     ret = testtools.compare_inp_files(
2022-12-27T00:00:53.1958585Z   File "$PREFIX/Mod/Fem/femtest/app/support_utils.py", line 203, in compare_inp_files
2022-12-27T00:00:53.1959087Z     file2 = open(file_name2, "r")
2022-12-27T00:00:53.1960033Z FileNotFoundError: [Errno 2] No such file or directory: '/tmp/FEM_unittests/solver_calculix_material_multiple_bendingbeam_fivefaces_fd5beb77550b/Mesh.inp'
2022-12-27T00:00:53.1960535Z 
2022-12-27T00:00:53.1960928Z ======================================================================
2022-12-27T00:00:53.1961485Z ERROR: test_material_multiple_tensionrod_twoboxes (femtest.app.test_solver_calculix.TestSolverCalculix)
2022-12-27T00:00:53.1962255Z ----------------------------------------------------------------------
2022-12-27T00:00:53.1962869Z Traceback (most recent call last):
2022-12-27T00:00:53.1963382Z   File "$PREFIX/Mod/Fem/femtest/app/test_solver_calculix.py", line 310, in test_material_multiple_tensionrod_twoboxes
2022-12-27T00:00:53.1963978Z     self.input_file_writing_test(get_namefromdef("test_"))
2022-12-27T00:00:53.1964689Z   File "$PREFIX/Mod/Fem/femtest/app/test_solver_calculix.py", line 393, in input_file_writing_test
2022-12-27T00:00:53.1965257Z     ret = testtools.compare_inp_files(
2022-12-27T00:00:53.1965776Z   File "$PREFIX/Mod/Fem/femtest/app/support_utils.py", line 203, in compare_inp_files
2022-12-27T00:00:53.1966246Z     file2 = open(file_name2, "r")
2022-12-27T00:00:53.1966985Z FileNotFoundError: [Errno 2] No such file or directory: '/tmp/FEM_unittests/solver_calculix_material_multiple_tensionrod_twoboxes_9744579cb536/Mesh.inp'
2022-12-27T00:00:53.1967510Z 
2022-12-27T00:00:53.1967944Z ======================================================================
2022-12-27T00:00:53.1968642Z ERROR: test_thermomech_bimetall (femtest.app.test_solver_calculix.TestSolverCalculix)
2022-12-27T00:00:53.1969262Z ----------------------------------------------------------------------
2022-12-27T00:00:53.1969728Z Traceback (most recent call last):
2022-12-27T00:00:53.1970255Z   File "$PREFIX/Mod/Fem/femtest/app/test_solver_calculix.py", line 342, in test_thermomech_bimetall
2022-12-27T00:00:53.1971142Z     self.input_file_writing_test(get_namefromdef("test_"))
2022-12-27T00:00:53.1971764Z   File "$PREFIX/Mod/Fem/femtest/app/test_solver_calculix.py", line 393, in input_file_writing_test
2022-12-27T00:00:53.1972272Z     ret = testtools.compare_inp_files(
2022-12-27T00:00:53.1972728Z   File "$PREFIX/Mod/Fem/femtest/app/support_utils.py", line 203, in compare_inp_files
2022-12-27T00:00:53.1973327Z     file2 = open(file_name2, "r")
2022-12-27T00:00:53.1974286Z FileNotFoundError: [Errno 2] No such file or directory: '/tmp/FEM_unittests/solver_calculix_thermomech_bimetall_f71e7f638edc/Mesh.inp'
2022-12-27T00:00:53.1975091Z 
2022-12-27T00:00:53.1975553Z ======================================================================
2022-12-27T00:00:53.1976183Z ERROR: test_thermomech_flow1D (femtest.app.test_solver_calculix.TestSolverCalculix)
2022-12-27T00:00:53.1976897Z ----------------------------------------------------------------------
2022-12-27T00:00:53.1977446Z Traceback (most recent call last):
2022-12-27T00:00:53.1978136Z   File "$PREFIX/Mod/Fem/femtest/app/test_solver_calculix.py", line 350, in test_thermomech_flow1D
2022-12-27T00:00:53.1978713Z     self.input_file_writing_test(get_namefromdef("test_"))
2022-12-27T00:00:53.1979295Z   File "$PREFIX/Mod/Fem/femtest/app/test_solver_calculix.py", line 393, in input_file_writing_test
2022-12-27T00:00:53.1979831Z     ret = testtools.compare_inp_files(
2022-12-27T00:00:53.1980356Z   File "$PREFIX/Mod/Fem/femtest/app/support_utils.py", line 203, in compare_inp_files
2022-12-27T00:00:53.1980869Z     file2 = open(file_name2, "r")
2022-12-27T00:00:53.1981605Z FileNotFoundError: [Errno 2] No such file or directory: '/tmp/FEM_unittests/solver_calculix_thermomech_flow1D_ba93da3a4418/Mesh.inp'
2022-12-27T00:00:53.1982252Z 
2022-12-27T00:00:53.1982812Z ----------------------------------------------------------------------
donovaly commented 1 year ago

should we skip the tests?

Let's ignore them for now. The tests pass for me and for our both CIs.