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 FeatureExtraction
  • Repeat for SAR
  • Repeat for Segmentation
  • Repeat for Hyperspectral
  • Repeat for Learning
  • Repeat for StereoProcessing
Edited by Tristan Laurent