conda-forge / libignition-rendering4-feedstock

A conda-smithy repository for libignition-rendering4.
BSD 3-Clause "New" or "Revised" License
2 stars 5 forks source link

libignition-rendering4 v6_6.0.0 #19

Closed regro-cf-autotick-bot closed 2 years ago

regro-cf-autotick-bot commented 2 years ago

It is very likely that the current package version for this feedstock is out of date. Notes for merging this PR:

  1. Feel free to push to the bot's branch to update this PR if needed.
  2. The bot will almost always only open one PR per version. Checklist before merging this PR:
    • [ ] Dependencies have been updated if changed: see upstream
    • [ ] Tests have passed
    • [ ] Updated license if changed and license_file is packaged

Note that the bot will stop issuing PRs if more than 3 Version bump PRs generated by the bot are open. If you don't want to package a particular version please close the PR.

NEW: If you want these PRs to be merged automatically, make an issue with code>@conda-forge-admin,</codeplease add bot automerge in the title and merge the resulting PR. This command will add our new bot automerge feature to your feedstock!

If this PR was opened in error or needs to be updated please add the bot-rerun label to this PR. The bot will close this PR and schedule another one. If you do not have permissions to add this label, you can use the phrase code>@<space/conda-forge-admin, please rerun bot in a PR comment to have the conda-forge-admin add it for you.

This PR was created by the regro-cf-autotick-bot. The regro-cf-autotick-bot is a service to automatically track the dependency graph, migrate packages, and propose package version updates for conda-forge. If you would like a local version of this bot, you might consider using rever. Rever is a tool for automating software releases and forms the backbone of the bot's conda-forge PRing capability. Rever is both conda (conda install -c conda-forge rever) and pip (pip install re-ver) installable. Finally, feel free to drop us a line if there are any issues! This PR was generated by https://github.com/regro/autotick-bot/actions/runs/1293598365, please use this URL for debugging

Dependency Analysis

Please note that this analysis is highly experimental. The aim here is to make maintenance easier by inspecting the package's dependencies. Importantly this analysis does not support optional dependencies, please double check those before making changes. If you do not want hinting of this kind ever please add bot: inspection: false to your conda-forge.yml. If you encounter issues with this feature please ping the bot team conda-forge/bot.

Analysis of the source code shows a discrepancy between the library's imports and the package's stated requirements in the meta.yaml.

Packages found by inspection but not in the meta.yaml:

conda-forge-linter commented 2 years 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.

traversaro commented 2 years ago

Blocked by https://github.com/conda-forge/libignition-math4-feedstock/pull/18 .

traversaro commented 2 years ago

There is some interesting build failures when using ogre1.10 only on Linux and macOS (not on Windows):

[ 77%] Building CXX object ogre/src/CMakeFiles/ignition-rendering6-ogre.dir/OgreCOMVisual.cc.o
In file included from /Users/runner/miniforge3/conda-bld/libignition-rendering6_1633293895514/work/ogre/src/OgreCOMVisual.cc:18:
In file included from /Users/runner/miniforge3/conda-bld/libignition-rendering6_1633293895514/work/ogre/include/ignition/rendering/ogre/OgreCOMVisual.hh:24:
In file included from /Users/runner/miniforge3/conda-bld/libignition-rendering6_1633293895514/work/ogre/include/ignition/rendering/ogre/OgreIncludes.hh:68:
/Users/runner/miniforge3/conda-bld/libignition-rendering6_1633293895514/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placeh/include/OGRE/Terrain/OgreTerrainPaging.h:33:10: fatal error: 'OgrePagedWorldSection.h' file not found
#include "OgrePagedWorldSection.h"
         ^~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
make[2]: *** [ogre/src/CMakeFiles/ignition-rendering6-ogre.dir/build.make:104: ogre/src/CMakeFiles/ignition-rendering6-ogre.dir/OgreCOMVisual.cc.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:2847: ogre/src/CMakeFiles/ignition-rendering6-ogre.dir/all] Error 2
make: *** [Makefile:146: all] Error 2
Traceback (most recent call last):
traversaro commented 2 years ago

I think there is some regression related to https://github.com/ignitionrobotics/ign-rendering/pull/376 . I reverted it that part for now in our recipe.

traversaro commented 2 years ago

I think there is some regression related to ignitionrobotics/ign-rendering#376 . I reverted it that part for now in our recipe.

The failures could also be related to ignition-cmake 2.9.0 and some related changes:

In particular in that changes there is a lot of code that is conditional on:

All aspects related to the failures of this PR.

traversaro commented 2 years ago

Reverting to finding ogre like:

ign_find_package(IgnOGRE VERSION 1.8.0
  COMPONENTS ${ign_ogre_components}
  REQUIRED_BY ogre
  PRIVATE_FOR ogre)

Results in compilation working fine, but tests on macOS failing tests failing like:

2021-10-04T15:42:37.4423990Z       Start  1: UNIT_ArrowVisual_TEST
2021-10-04T15:42:40.0987940Z  1/76 Test  #1: UNIT_ArrowVisual_TEST .................***Exception: SegFault  2.73 sec
2021-10-04T15:42:40.1002540Z [==========] Running 2 tests from 1 test case.
2021-10-04T15:42:40.1047910Z [----------] Global test environment set-up.
2021-10-04T15:42:40.1056740Z [----------] 2 tests from ArrowVisual/ArrowVisualTest
2021-10-04T15:42:40.1065720Z [ RUN      ] ArrowVisual/ArrowVisualTest.ArrowVisual/ogre
2021-10-04T15:42:40.1068440Z [Err] [OgreRenderEngine.cc:465] Unable to load Ogre Plugin[$PREFIX/lib/OGRE/libRenderSystem_GL]. Rendering will not be possible.Make sure you have installed OGRE properly.
2021-10-04T15:42:40.1071500Z [Err] [OgreRenderEngine.cc:508] unable to find OpenGL rendering system. OGRE is probably installed incorrectly. Double check the OGRE cmake output, and make sure OpenGL is enabled.
2021-10-04T15:42:40.1072650Z 
2021-10-04T15:42:40.1381570Z       Start  2: check_UNIT_ArrowVisual_TEST
2021-10-04T15:42:40.2151560Z  2/76 Test  #2: check_UNIT_ArrowVisual_TEST ...........   Passed    0.08 sec
2021-10-04T15:42:45.5931940Z 
2021-10-04T15:42:45.5933180Z The following tests FAILED:
2021-10-04T15:42:45.5935640Z      1 - UNIT_ArrowVisual_TEST (SEGFAULT)

Interestingly, the same test pass fine (at least for ogre 1.12, that was the one that was working fine even when 1.10 had compilation problems) before the revert of the find_package(IgnOgre) changes.

traversaro commented 2 years ago

As a compromise before the unpatched version (in which tests were passing on macOS with ogre 1.12) I tried to search passing as VERSION of find_package(IgnOgre ..) 1.10 .

traversaro commented 2 years ago

So, small recap after all the experiments in CI. Compilation or tests are failing either on linux_64_ogre1.10, osx osx_64_ogre1.10, osx_64_ogre1.12 depending on the CMake code. I do not report the results on osx_arm64_ogre1.1* as those are cross-compilation jobs whose compilation fails whenever the equivalent osx_64 job fail, and for which tests are not running. linux_64_ogre1.12 and windows jobs always succeed (note that the code path for FindIgnOGRE in ign-cmake is completly different between Windows and not-Windows: https://github.com/ignitionrobotics/ign-cmake/blob/ignition-cmake2_2.9.0/cmake/FindIgnOGRE.cmake#L62, so this could explain that).

CMake code linux_64_ogre1.10 osx_64_ogre1.10 osx_64_ogre1.12 Example jobs
ign_find_package(IgnOGRE VERSION 1.10 QUIET), also followed by a second call with the longer signature ❌, fatal error: 'OgrePagedWorldSection.h' file not found ❌, fatal error: 'OgrePagedWorldSection.h' file not found ❌, fatal error: 'OgrePagedWorldSection.h' file not found https://github.com/conda-forge/libignition-rendering4-feedstock/runs/3794212621
ign_find_package(IgnOGRE VERSION 1.10 COMPONENTS ${ign_ogre_components} REQUIRED_BY ogre PRIVATE_FOR ogre), both called one or two times, and with version 1.10 or 1.8.0 ✔️ ❌, test not passing ❌, test not passing https://github.com/conda-forge/libignition-rendering4-feedstock/runs/3796117501
traversaro commented 2 years ago

My guess is that for some reason OGRE_RESOURCE_PATH is not set correctly on macOS . This could explain also several test failures on ignition-gui for macOS . This may possibly related also to https://github.com/conda-forge/libignition-gazebo-feedstock/issues/4 .

traversaro commented 2 years ago

I printed the value of OGRE_RESOURCE_PATH and it seems ok.

traversaro commented 2 years ago

Even after the fix backported from https://github.com/ignitionrobotics/ign-rendering/pull/454, the macOS tests are segfaulting. However, also the tests in Linux seems to be passing but in a strange way. It seems that they are try to test only the disabled engines (ogre2 and optix) and they silently fail, without actually testing ogre:

2021-10-06T20:23:08.6521451Z       Start 27: UNIT_Light_TEST
2021-10-06T20:23:08.6524342Z 
2021-10-06T20:23:08.6528997Z 27: Test command: $SRC_DIR/build/bin/UNIT_Light_TEST "--gtest_output=xml:$SRC_DIR/build/test_results/UNIT_Light_TEST.xml"
2021-10-06T20:23:08.6533669Z 27: Test timeout computed to be: 240
2021-10-06T20:23:08.6901375Z 27: [==========] Running 2 tests from 1 test case.
2021-10-06T20:23:08.6903015Z 27: [----------] Global test environment set-up.
2021-10-06T20:23:08.6903778Z 27: [----------] 2 tests from Light/LightTest
2021-10-06T20:23:08.6926958Z 27: [ RUN      ] Light/LightTest.Light/ogre2
2021-10-06T20:23:08.6928030Z 27: [Err] [RenderEngineManager.cc:461] Failed to load plugin [ogre2] : couldn't find shared library.
2021-10-06T20:23:08.6928662Z 27: [       OK ] Light/LightTest.Light/ogre2 (1 ms)
2021-10-06T20:23:08.6929012Z 27: [ RUN      ] Light/LightTest.Light/optix
2021-10-06T20:23:08.6929765Z 27: [Err] [RenderEngineManager.cc:461] Failed to load plugin [optix] : couldn't find shared library.
2021-10-06T20:23:08.6930290Z 27: [       OK ] Light/LightTest.Light/optix (0 ms)
2021-10-06T20:23:08.6930806Z 27: [----------] 2 tests from Light/LightTest (1 ms total)
2021-10-06T20:23:08.6931140Z 27: 
2021-10-06T20:23:08.6931565Z 27: [----------] Global test environment tear-down
2021-10-06T20:23:08.6931937Z 27: [==========] 2 tests from 1 test case ran. (1 ms total)
2021-10-06T20:23:08.6932260Z 27: [  PASSED  ] 2 tests.
2021-10-06T20:23:08.6932619Z 27/76 Test #27: UNIT_Light_TEST .......................   Passed    0.04 sec

This would explain why the test suite was passing fine on all old releases.

traversaro commented 2 years ago

Even after the fix backported from ignitionrobotics/ign-rendering#454, the macOS tests are segfaulting. However, also the tests in Linux seems to be passing but in a strange way. It seems that they are try to test only the disabled engines (ogre2 and optix) and they silently fail, without actually testing ogre. This would explain why the test suite was passing fine on all old releases.

It seems that this is expected as the render engines to tests are hardcoded: https://github.com/ignitionrobotics/ign-rendering/blob/ign-rendering6/test/test_config.h.in#L14 .

To specify other render engines, it is possible to use the RENDER_ENGINE_VALUES env variable: https://github.com/ignitionrobotics/ign-rendering/blob/7b9ac811c6f6489935681047987291c4cb938b6b/tutorials/02_install.md#testing .

traversaro commented 2 years ago

Great, progress. Now also Windows and Linux fail. : )

Windows fail with errors like:

2021-10-07T08:16:05.2373939Z  5/39 Test  #5: UNIT_Camera_TEST .................***Failed    0.14 sec
2021-10-07T08:16:05.2375104Z [==========] Running 5 tests from 1 test case.
2021-10-07T08:16:05.2375856Z [----------] Global test environment set-up.
2021-10-07T08:16:05.2376389Z [----------] 5 tests from Camera/CameraTest
2021-10-07T08:16:05.2377028Z [ RUN      ] Camera/CameraTest.ViewProjectionMatrix/ogre
2021-10-07T08:16:05.2377865Z unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
2021-10-07T08:16:05.2378971Z [  FAILED  ] Camera/CameraTest.ViewProjectionMatrix/ogre, where GetParam() = "ogre" (28 ms)
2021-10-07T08:16:05.2379697Z [ RUN      ] Camera/CameraTest.RenderTexture/ogre
2021-10-07T08:16:05.2381231Z [Err] [%SRC_DIR%\ogre\src\OgreRenderEngine.cc:399] Unable to create Ogre root
2021-10-07T08:16:05.2382021Z unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
2021-10-07T08:16:05.2382720Z [  FAILED  ] Camera/CameraTest.RenderTexture/ogre, where GetParam() = "ogre" (2 ms)
2021-10-07T08:16:05.2383489Z [ RUN      ] Camera/CameraTest.TrackFollow/ogre
2021-10-07T08:16:05.2384557Z [Err] [%SRC_DIR%\ogre\src\OgreRenderEngine.cc:399] Unable to create Ogre root
2021-10-07T08:16:05.2385325Z unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
2021-10-07T08:16:05.2386261Z [  FAILED  ] Camera/CameraTest.TrackFollow/ogre, where GetParam() = "ogre" (1 ms)
2021-10-07T08:16:05.2387086Z [ RUN      ] Camera/CameraTest.AddRemoveRenderPass/ogre
2021-10-07T08:16:05.2387758Z [Err] [%SRC_DIR%\ogre\src\OgreRenderEngine.cc:399] Unable to create Ogre root
2021-10-07T08:16:05.2388533Z unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
2021-10-07T08:16:05.2389324Z [  FAILED  ] Camera/CameraTest.AddRemoveRenderPass/ogre, where GetParam() = "ogre" (2 ms)
2021-10-07T08:16:05.2390015Z [ RUN      ] Camera/CameraTest.VisibilityMask/ogre
2021-10-07T08:16:05.2390724Z [Err] [%SRC_DIR%\ogre\src\OgreRenderEngine.cc:399] Unable to create Ogre root
2021-10-07T08:16:05.2391445Z unknown file: error: SEH exception with code 0xc0000005 thrown in the test body.
2021-10-07T08:16:05.2393739Z [  FAILED  ] Camera/CameraTest.VisibilityMask/ogre, where GetParam() = "ogre" (2 ms)
2021-10-07T08:16:05.2394638Z [----------] 5 tests from Camera/CameraTest (35 ms total)

Linux fails (but silently passes) with errors like:

71: [Msg] Loading plugin [ignition-rendering-ogre]
71: Error while loading the library [$PREFIX/lib/ign-rendering-6/engine-plugins/libignition-rendering-ogre.so]: libGL.so.1: cannot open shared object file: No such file or directory
71: [Err] [RenderEngineManager.cc:470] Failed to load plugin [ignition-rendering-ogre] : couldn't load library on path [$PREFIX/lib/ign-rendering-6/engine-plugins/libignition-rendering-ogre.so].
71: [Dbg] [Utils_TEST.cc:50] Engine 'ogre' is not supported

This is probably just some yum packages related to libgl missing in the test machine.

traversaro commented 2 years ago

This is probably just some yum packages related to libgl missing in the test machine.

See https://conda-forge.org/docs/maintainer/knowledge_base.html#libgl .

traversaro commented 2 years ago

@conda-forge-admin please rerender

traversaro commented 2 years ago

So, we finally reached a point in which all the tests are failing. However, especially the Linux tests are clearly failing because the display can't be opened, and this is kind of expected on a CI environment in which Xvfb is not running (see https://github.com/conda-forge/conda-forge.github.io/issues/399). So, at this point I think it make sense to disable the test suite, and just check manually if the examples are working.

First of all, I tested on macOS the examples\simple_demo and it seems to be working fine (thanks to the backport of https://github.com/ignitionrobotics/ign-rendering/pull/454 ) : Screenshot 2021-10-07 at 12 42 00

traversaro commented 2 years ago

Apparently, the simple_demo example is not supported on Windows. However, in general the library is working on Linux and macOS, so this is already a progress w.r.t. to the existing situation, so I think it make sense to disable the tests, and merge the PR.

traversaro commented 2 years ago

@conda-forge-admin please rerender