InsightSoftwareConsortium / ITKRemoteModuleBuildTestPackageAction

A composite GitHub Action to build, test, and package, ITK remote modules
Apache License 2.0
3 stars 6 forks source link

Investigate accommodating ITK remote module dependencies #11

Closed tbirdso closed 1 year ago

tbirdso commented 2 years ago

Investigate whether ITK remote module dependencies can be accommodated via input parameters.

Example 1: ITKBSplineGradient depends on ITKMeshToPolyData.

Example 2: ITKUltrasound depends on MeshToPolyData, HigherOrderAccurateGradient, BSplineGradient, SplitComponents, and Strain.

thewtex commented 2 years ago

Another recommended test use / case is ITKTubeTK, which depends on ITKMinimalPathExtraction CC @aylward

SimonRit commented 2 years ago

Another one: RTK will depend on ITKCudaCommon (two remote modules) when RTKConsortium/RTK#492 is merged. cc @LucasGandel

tbirdso commented 2 years ago

@thewtex @SimonRit Thanks for the feedback. I am guessing that the remote module tags present in ITK (https://github.com/InsightSoftwareConsortium/ITK/tree/master/Modules/Remote) are not updated quickly enough to be useful here, i.e. it is a requirement that the external module under test can specify a commit hash for each of its ITK module dependencies.

For instance, rather than building ITK with -DModule_CudaCommon=ON such that CudaCommon is automatically fetched and built before building RTK, we would rather build ITK -> then fetch CudaCommon at a certain commit tag and build -> then RTK.

Do you agree that it is necessary to allow the user to specify the hash to use for each ITK module dependency?

SimonRit commented 2 years ago

If I understand your question correctly, you can specify the module tags manually at configuration with, e.g., Module_RTK_GIT_TAG, see here.

dzenanz commented 2 years ago

That is good enough for C++ building and testing. For Python package building it is not so simple.

thewtex commented 1 year ago

tbirdso has implemented this in main, documented in the README.