Divide OTB modules in independent repositories
Resume
The goal of this is to separate each modules located in https://gitlab.orfeo-toolbox.org/orfeotoolbox/otb/-/tree/develop/Modules in a separate repo (except Core). A link will be done from otb main repo and each module with the "submodule" git mechanism.
Pro and cons
Separating modules have several advantages:
- Improve CI build time
- Improve unittest jobs and runs as only module related features are tested
- Issues will now be module-related
- Developers only download needed source code
The CI jobs may increase in complexity as we introduce dependencies with modules. Thus we need to trigger modules jobs from core.
Plan
-
According to @ytanguy , create a gitlab group to handle all modules in a separate repo. This will be easier for bug tracking and management -
Start with Miscellaneous module, use OTB modules https://www.orfeo-toolbox.org/CookBook-9.0/RemoteModules.html -
Create external git repo, link it as a submodule -
OTB core must download corresponding submodule if the cmake -DOTBGroup_Miscellaneous is turned on -
Compile it separately, you may use OTB core artifact -
Adapt CI to run corresponding build job and tests -
Adapt otb CI to start module job when there is a new dependency (i.e. OTB core) -
Adapt bug tracking for each project ? -
Add a Readme with compilation help, otb integration, and some exemples
-
-
Repeat for Remote -
Repeat for FeatureExtraction -
Repeat for SAR -
Repeat for Segmentation -
Repeat for Hyperspectral -
Repeat for Learning -
Repeat for StereoProcessing
Edited by Tristan Laurent