# Nightly build TESTS failing for extensions with dependencies to other scriptable modules

**URL:** <https://discourse.slicer.org/t/nightly-build-tests-failing-for-extensions-with-dependencies-to-other-scriptable-modules/1483>\
**Category:** Development\
**Created:** [November 17, 2017, 7:45pm UTC](https://discourse.slicer.org/t/nightly-build-tests-failing-for-extensions-with-dependencies-to-other-scriptable-modules/1483 "2017-11-17T19:45:16Z")\
**Posts on this page:** 20\
**Page:** 2

<div class="post-metadata">

**Author:** ![cpinter](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/cpinter/32/7995_2.png) [@cpinter](https://discourse.slicer.org/u/cpinter)\
**Post date:** [November 19, 2017, 12:56am UTC](https://discourse.slicer.org/t/nightly-build-tests-failing-for-extensions-with-dependencies-to-other-scriptable-modules/1483/21 "2017-11-19T00:56:05Z")

</div>

Thanks for the fix, Andras!

---

<div class="post-metadata">

**Author:** ![che85](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/che85/32/636_2.png) [@che85](https://discourse.slicer.org/u/che85)\
**Post date:** [November 19, 2017, 7:52pm UTC](https://discourse.slicer.org/t/nightly-build-tests-failing-for-extensions-with-dependencies-to-other-scriptable-modules/1483/22 "2017-11-19T19:52:29Z")

</div>

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](http://slicer.cdash.org/testDetails.php?test=8435164&build=1133229)

```
When loading module "mpReview" , the dependency "SlicerDevelopmentToolbox" failed to be loaded.
```

---

<div class="post-metadata">

**Author:** ![jcfr](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/jcfr/32/17825_2.png) [@jcfr](https://discourse.slicer.org/u/jcfr)\
**Post date:** [November 19, 2017, 10:44pm UTC](https://discourse.slicer.org/t/nightly-build-tests-failing-for-extensions-with-dependencies-to-other-scriptable-modules/1483/23 "2017-11-19T22:44:30Z")

</div>

> [@che85](#):
>
> after I added the line yesterday, but the tests are still failing

Look like the edit you are mentioning are not yet integrated: [SlicerDeveloperToolsForExtensions/CMakeLists.txt at master · Slicer/SlicerDeveloperToolsForExtensions · GitHub](https://github.com/fbudin69500/SlicerDeveloperToolsForExtensions/blob/master/CMakeLists.txt)

i suggest you submit a PR against SlicerDeveloperToolsForExtensions and then update the Extension index.

---

<div class="post-metadata">

**Author:** ![che85](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/che85/32/636_2.png) [@che85](https://discourse.slicer.org/u/che85)\
**Post date:** [November 19, 2017, 11:03pm UTC](https://discourse.slicer.org/t/nightly-build-tests-failing-for-extensions-with-dependencies-to-other-scriptable-modules/1483/24 "2017-11-19T23:03:17Z")

</div>

I was not talking about the repository that you were mentioning. I am talking about SlicerDevelopmentToolbox and not about SlicerDeveloperToolsForExtensions

> **[GitHub - QIICR/SlicerDevelopmentToolbox: API for 3D Slicer extension...](https://github.com/QIICR/SlicerDevelopmentToolbox)**
>
> API for 3D Slicer extension development providing widgets, mixins, helpers, decorators etc. - GitHub - QIICR/SlicerDevelopmentToolbox: API for 3D Slicer extension development providing widgets, mix...

---

<div class="post-metadata">

**Author:** ![jcfr](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/jcfr/32/17825_2.png) [@jcfr](https://discourse.slicer.org/u/jcfr)\
**Post date:** [November 20, 2017, 2:05am UTC](https://discourse.slicer.org/t/nightly-build-tests-failing-for-extensions-with-dependencies-to-other-scriptable-modules/1483/25 "2017-11-20T02:05:20Z")

</div>

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.

```auto
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

```

---

<div class="post-metadata">

**Author:** ![che85](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/che85/32/636_2.png) [@che85](https://discourse.slicer.org/u/che85)\
**Post date:** [November 20, 2017, 5:36am UTC](https://discourse.slicer.org/t/nightly-build-tests-failing-for-extensions-with-dependencies-to-other-scriptable-modules/1483/26 "2017-11-20T05:36:52Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![lassoan](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/lassoan/32/13_2.png) [@lassoan](https://discourse.slicer.org/u/lassoan)\
**Post date:** [November 20, 2017, 5:51pm UTC](https://discourse.slicer.org/t/nightly-build-tests-failing-for-extensions-with-dependencies-to-other-scriptable-modules/1483/27 "2017-11-20T17:51:07Z")

</div>

Order of module class instantiation is random. Order of module widget and logic creation is based on the order determined from module dependencies.

---

<div class="post-metadata">

**Author:** ![jcfr](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/jcfr/32/17825_2.png) [@jcfr](https://discourse.slicer.org/u/jcfr)\
**Post date:** [November 20, 2017, 6:04pm UTC](https://discourse.slicer.org/t/nightly-build-tests-failing-for-extensions-with-dependencies-to-other-scriptable-modules/1483/28 "2017-11-20T18:04:33Z")

</div>

And to clarify, currently the “GenericTest” are executed without loading any dependencies are expected to pass independently of this.

---

<div class="post-metadata">

**Author:** ![che85](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/che85/32/636_2.png) [@che85](https://discourse.slicer.org/u/che85)\
**Post date:** [November 20, 2017, 6:14pm UTC](https://discourse.slicer.org/t/nightly-build-tests-failing-for-extensions-with-dependencies-to-other-scriptable-modules/1483/29 "2017-11-20T18:14:41Z")

</div>

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?

---

<div class="post-metadata">

**Author:** ![che85](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/che85/32/636_2.png) [@che85](https://discourse.slicer.org/u/che85)\
**Post date:** [November 21, 2017, 3:23pm UTC](https://discourse.slicer.org/t/nightly-build-tests-failing-for-extensions-with-dependencies-to-other-scriptable-modules/1483/30 "2017-11-21T15:23:31Z")

</div>

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.

[1] [http://slicer.cdash.org/index.php?project=Slicer4&display=project&filtercombine=and&filtercombine=and&filtercombine=or&filtercombine=or&filtercombine=or&filtercombine=or&filtercombine=or&filtercombine=or&filtercombine=or&filtercombine=or&filtercombine=or&filtercombine=or&filtercombine=or&filtercount=4&showfilters=1&filtercombine=or&field1=buildname&compare1=63&value1=SliceTracker&field2=buildname&compare2=63&value2=SlicerDevelopmentToolbox&field3=buildname&compare3=63&value3=mpReview&field4=buildname&compare4=63&value4=QuantitativeReporting](http://slicer.cdash.org/index.php?project=Slicer4&display=project&filtercombine=and&filtercombine=and&filtercombine=or&filtercombine=or&filtercombine=or&filtercombine=or&filtercombine=or&filtercombine=or&filtercombine=or&filtercombine=or&filtercombine=or&filtercombine=or&filtercombine=or&filtercount=4&showfilters=1&filtercombine=or&field1=buildname&compare1=63&value1=SliceTracker&field2=buildname&compare2=63&value2=SlicerDevelopmentToolbox&field3=buildname&compare3=63&value3=mpReview&field4=buildname&compare4=63&value4=QuantitativeReporting)

---

<div class="post-metadata">

**Author:** ![pieper](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/pieper/32/8_2.png) [@pieper](https://discourse.slicer.org/u/pieper)\
**Post date:** [November 21, 2017, 3:50pm UTC](https://discourse.slicer.org/t/nightly-build-tests-failing-for-extensions-with-dependencies-to-other-scriptable-modules/1483/31 "2017-11-21T15:50:37Z")

</div>

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).

[https://meet.google.com/wzh-syuy-otj](https://meet.google.com/wzh-syuy-otj)

---

<div class="post-metadata">

**Author:** ![cpinter](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/cpinter/32/7995_2.png) [@cpinter](https://discourse.slicer.org/u/cpinter)\
**Post date:** [November 21, 2017, 4:04pm UTC](https://discourse.slicer.org/t/nightly-build-tests-failing-for-extensions-with-dependencies-to-other-scriptable-modules/1483/32 "2017-11-21T16:04:35Z")

</div>

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](http://slicer.cdash.org/index.php?project=Slicer4&display=project&filtercombine=and&filtercombine=and&filtercombine=or&filtercombine=or&filtercombine=or&filtercombine=or&filtercombine=or&filtercombine=or&filtercount=4&showfilters=1&filtercombine=or&field1=label&compare1=63&value1=SlicerRT&field2=label&compare2=63&value2=GelDosimetry&field3=label&compare3=63&value3=FilmDosimetry&field4=label&compare4=63&value4=SegmentRegistration).

---

<div class="post-metadata">

**Author:** ![cpinter](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/cpinter/32/7995_2.png) [@cpinter](https://discourse.slicer.org/u/cpinter)\
**Post date:** [November 21, 2017, 4:22pm UTC](https://discourse.slicer.org/t/nightly-build-tests-failing-for-extensions-with-dependencies-to-other-scriptable-modules/1483/33 "2017-11-21T16:22:41Z")

</div>

(Hang on, I didn’t commit the stripped quotes from around the extension dependencies)

---

<div class="post-metadata">

**Author:** ![cpinter](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/cpinter/32/7995_2.png) [@cpinter](https://discourse.slicer.org/u/cpinter)\
**Post date:** [November 22, 2017, 1:58pm UTC](https://discourse.slicer.org/t/nightly-build-tests-failing-for-extensions-with-dependencies-to-other-scriptable-modules/1483/34 "2017-11-22T13:58:16Z")

</div>

Update: Same thing after applying the fix

---

<div class="post-metadata">

**Author:** ![che85](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/che85/32/636_2.png) [@che85](https://discourse.slicer.org/u/che85)\
**Post date:** [November 22, 2017, 3:55pm UTC](https://discourse.slicer.org/t/nightly-build-tests-failing-for-extensions-with-dependencies-to-other-scriptable-modules/1483/35 "2017-11-22T15:55:10Z")

</div>

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 😉

---

<div class="post-metadata">

**Author:** ![lassoan](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/lassoan/32/13_2.png) [@lassoan](https://discourse.slicer.org/u/lassoan)\
**Post date:** [November 22, 2017, 4:16pm UTC](https://discourse.slicer.org/t/nightly-build-tests-failing-for-extensions-with-dependencies-to-other-scriptable-modules/1483/36 "2017-11-22T16:16:24Z")

</div>

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](https://www.slicer.org/wiki/Documentation/Nightly/Developers/Build_ExtensionsIndex)

---

<div class="post-metadata">

**Author:** ![che85](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/che85/32/636_2.png) [@che85](https://discourse.slicer.org/u/che85)\
**Post date:** [November 22, 2017, 7:45pm UTC](https://discourse.slicer.org/t/nightly-build-tests-failing-for-extensions-with-dependencies-to-other-scriptable-modules/1483/37 "2017-11-22T19:45:24Z")

</div>

Ok same thing is happening when I run the extension build locally. (see [http://slicer.cdash.org/testDetails.php?test=8443330&build=1135723](http://slicer.cdash.org/testDetails.php?test=8443330&build=1135723))

---

<div class="post-metadata">

**Author:** ![cpinter](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/cpinter/32/7995_2.png) [@cpinter](https://discourse.slicer.org/u/cpinter)\
**Post date:** [November 22, 2017, 8:02pm UTC](https://discourse.slicer.org/t/nightly-build-tests-failing-for-extensions-with-dependencies-to-other-scriptable-modules/1483/38 "2017-11-22T20:02:07Z")

</div>

I managed to run the tests with multiple dependencies by adding the dependencies to the tests, see

> <https://github.com/SlicerRt/SegmentRegistration/commit/a6a710d44faaf0dc5761eec4680755fb10672906>
>
> The test now run and pass locally (except for the generic tests which have been …disabled), so there is a chance they will work on the factory as well

and

> <https://github.com/SlicerRt/SegmentRegistration/commit/08716b9e69a9ad2915d5a0c55001ebdfab890ab8>

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.

---

<div class="post-metadata">

**Author:** ![lassoan](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/lassoan/32/13_2.png) [@lassoan](https://discourse.slicer.org/u/lassoan)\
**Post date:** [November 22, 2017, 8:17pm UTC](https://discourse.slicer.org/t/nightly-build-tests-failing-for-extensions-with-dependencies-to-other-scriptable-modules/1483/39 "2017-11-22T20:17:01Z")

</div>

> [@che85](#):
>
> Ok same thing is happening when I run the extension build locally

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`.

---

<div class="post-metadata">

**Author:** ![fedorov](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/fedorov/32/14_2.png) [@fedorov](https://discourse.slicer.org/u/fedorov)\
**Post date:** [November 22, 2017, 8:41pm UTC](https://discourse.slicer.org/t/nightly-build-tests-failing-for-extensions-with-dependencies-to-other-scriptable-modules/1483/40 "2017-11-22T20:41:38Z")

</div>

> [@lassoan](#):
>
> Order of module class instantiation is random. Order of module widget and logic creation is based on the order determined from module dependencies.

@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?

[Previous page](https://discourse.slicer.org/t/nightly-build-tests-failing-for-extensions-with-dependencies-to-other-scriptable-modules/1483.md?page=1)

[Next page](https://discourse.slicer.org/t/nightly-build-tests-failing-for-extensions-with-dependencies-to-other-scriptable-modules/1483.md?page=3)
