Thanks for the fix, Andras!
Seems like mpReviews CMake can now find SlicerDevelopmentToobox, after I added the line yesterday, but the tests are still failing
http://slicer.cdash.org/testDetails.php?test=8435164&build=1133229
When loading module "mpReview" , the dependency "SlicerDevelopmentToolbox" failed to be loaded.
Look like the edit you are mentioning are not yet integrated: SlicerDeveloperToolsForExtensions/CMakeLists.txt at master ¡ Slicer/SlicerDeveloperToolsForExtensions ¡ GitHub
i suggest you submit a PR against SlicerDeveloperToolsForExtensions and then update the Extension index.
I was not talking about the repository that you were mentioning. I am talking about SlicerDevelopmentToolbox and not about SlicerDeveloperToolsForExtensions
Sorry for the confusion.
Good new is that the additional settings contain the dependent extension paths.
That said, we still need to investigate the remaining issues.
kitware@factory-south-ubuntu:~/Dashboards/Nightly/S-0-E-b/mpReview-build$ cat AdditionalLauncherSettings.ini
[General]
additionalPathVariables=PYTHONPATH
[LibraryPaths]
1\path=/home/kitware/Dashboards/Nightly/S-0-E-b/mpReview-build/lib/Slicer-4.9/cli-modules/.
2\path=/home/kitware/Dashboards/Nightly/S-0-E-b/mpReview-build/lib/Slicer-4.9/qt-loadable-modules/.
3\path=/home/kitware/Dashboards/Nightly/S-0-E-b/SlicerDevelopmentToolbox-build/lib/Slicer-4.9/cli-modules/.
4\path=/home/kitware/Dashboards/Nightly/S-0-E-b/SlicerDevelopmentToolbox-build/lib/Slicer-4.9/qt-loadable-modules/.
size=4
[Paths]
1\path=/home/kitware/Dashboards/Nightly/S-0-E-b/mpReview-build/lib/Slicer-4.9/cli-modules/.
2\path=/home/kitware/Dashboards/Nightly/S-0-E-b/mpReview-build/bin/.
3\path=/home/kitware/Dashboards/Nightly/S-0-E-b/SlicerDevelopmentToolbox-build/lib/Slicer-4.9/cli-modules/.
4\path=/home/kitware/Dashboards/Nightly/S-0-E-b/SlicerDevelopmentToolbox-build/bin/.
size=4
[EnvironmentVariables]
[PYTHONPATH]
1\path=/home/kitware/Dashboards/Nightly/S-0-E-b/mpReview-build/lib/Slicer-4.9/qt-scripted-modules
2\path=/home/kitware/Dashboards/Nightly/S-0-E-b/mpReview-build/lib/Slicer-4.9/qt-loadable-modules/.
3\path=/home/kitware/Dashboards/Nightly/S-0-E-b/mpReview-build/lib/Slicer-4.9/qt-loadable-modules/Python
4\path=/home/kitware/Dashboards/Nightly/S-0-E-b/SlicerDevelopmentToolbox-build/lib/Slicer-4.9/qt-scripted-modules
5\path=/home/kitware/Dashboards/Nightly/S-0-E-b/SlicerDevelopmentToolbox-build/lib/Slicer-4.9/qt-loadable-modules/.
6\path=/home/kitware/Dashboards/Nightly/S-0-E-b/SlicerDevelopmentToolbox-build/lib/Slicer-4.9/qt-loadable-modules/Python
size=6
Is there a specific order in which the paths are loaded into Slicer from the AdditionalLauncherSettings.ini?
If itâs loaded in the same order, then the missing dependency makes sense to me since mpReview is would be loaded first.
Order of module class instantiation is random. Order of module widget and logic creation is based on the order determined from module dependencies.
And to clarify, currently the âGenericTestâ are executed without loading any dependencies are expected to pass independently of this.
How can it pass the generic tests without dependencies to be loaded? I an extension depends on other extensions, it wonât be available in slicer.modules unless the dependencies are available, right?
I just tried to join the weekly developer hangout but there was no response.
Is there any progress regarding this issue? Looking at todayâs dashboard [1] all Tests are failing.
Today is a project week discussion during the developer hangout. Itâs going on now but the topics arenât currently addressing development (more about coordinating projects).
The single dependency issue seems to have been resolved. I still have failing tests, but itâs not because of dependencies (see GelDosimetry).
Multiple dependencies still donât work (see SegmentRegistration - interestingly the passing tests are the real failures).
Hereâs the filtered dashboard.
(Hang on, I didnât commit the stripped quotes from around the extension dependencies)
Update: Same thing after applying the fix
Is there a way to simulate the build server locally on my system, so that I can just test that locally? Making some tiny changes and waiting 24hours to it failing again doesnât sound very productive
Yes. Itâs very simple to set up extension build on your computer. See instructions here: https://www.slicer.org/wiki/Documentation/Nightly/Developers/Build_ExtensionsIndex
Ok same thing is happening when I run the extension build locally. (see http://slicer.cdash.org/testDetails.php?test=8443330&build=1135723)
I managed to run the tests with multiple dependencies by adding the dependencies to the tests, see
and
If the Xyz_DIR variables are correctly set (you can check it on your local factory build), then the tests should run if you add these too.
This error
/Users/christian/sources/cpp/Builds/Slicer/Release/Slicer-build/lib/Slicer-4.9/qt-loadable-modules/./libvtkSlicerMarkupsModuleMRMLDisplayableManagerPythonD.dylib: malformed mach-o: load commands size (32840) > 32768
seems to be due to the limit on total size of all the load commands in the dynamic library in the MacOS loader.
I guess using a shorter build directory path would solve the issue. For example, instead of /Users/christian/sources/cpp/Builds/Slicer/Release
, you could try /Users/christian/D/S4R
.
@lassoan so does this mean that the way things work, developers cannot have python modules that are independent from Slicer? Python modules must have Slicer widget/logic in order to establish module class instantiation?