root icon indicating copy to clipboard operation
root copied to clipboard

ROOT.modulemap changed from single file to a distributed file set

Open pavlo-svirin opened this issue 1 year ago • 3 comments

This Pull request:

Converts ROOT.modulemap from a single file to a set of files where ROOT.modulemap includes per-component modulemaps, this will allow to implement packaging.

Changes or fixes:

CMakeLists.txt, cmake/modules/RootMacros.cmake

Checklist:

  • [ X] tested changes locally
  • [ ] updated the docs (if necessary)

This PR fixes #

pavlo-svirin avatar Aug 09 '24 21:08 pavlo-svirin

Test Results

0 tests   0 ✅  0s ⏱️ 0 suites  0 💤 0 files    0 ❌

Results for commit cd631a29.

:recycle: This comment has been updated with latest results.

github-actions[bot] avatar Aug 10 '24 18:08 github-actions[bot]

Can you rebase this PR, @pavlo-svirin?

vgvassilev avatar Aug 12 '24 17:08 vgvassilev

Can you rebase this PR, @pavlo-svirin?

Done

pavlo-svirin avatar Aug 13 '24 12:08 pavlo-svirin

@pavlo-svirin, can you rebase again?

vgvassilev avatar Aug 29 '24 06:08 vgvassilev

I checked out your pull request locally and on OSX I get:

find include/
include/
include//ASImageGui.modulemap
include//GCocoa.modulemap
include//GuiHtml.modulemap
include//RooFitRDataFrameHelpers.modulemap
include//CPyCppyy
include//CPyCppyy/CommonDefs.h
include//CPyCppyy/PyResult.h
include//CPyCppyy/DispatchPtr.h
include//CPyCppyy/API.h
include//CPyCppyy/Reflex.h
include//CPyCppyy/PyException.h
include//Html.modulemap
include//Tree.modulemap
include//FitPanel.modulemap
include//ROOTBrowsable.modulemap
include//Spectrum.modulemap
include//Matrix.modulemap
include//Graf.modulemap
include//MLP.modulemap
include//GeomPainter.modulemap
include//MathCore.modulemap
include//RooFitXRooFit.modulemap
include//ROOT.modulemap.d
include//ROOT.modulemap.d/ASImageGui.modulemap
include//ROOT.modulemap.d/GCocoa.modulemap
include//ROOT.modulemap.d/GuiHtml.modulemap
include//ROOT.modulemap.d/RooFitRDataFrameHelpers.modulemap
include//ROOT.modulemap.d/Html.modulemap
include//ROOT.modulemap.d/Tree.modulemap
include//ROOT.modulemap.d/FitPanel.modulemap
include//ROOT.modulemap.d/ROOTBrowsable.modulemap
include//ROOT.modulemap.d/Spectrum.modulemap
include//ROOT.modulemap.d/Matrix.modulemap
include//ROOT.modulemap.d/Graf.modulemap
include//ROOT.modulemap.d/MLP.modulemap
include//ROOT.modulemap.d/GeomPainter.modulemap
include//ROOT.modulemap.d/MathCore.modulemap
include//ROOT.modulemap.d/RooFitXRooFit.modulemap
include//ROOT.modulemap.d/Smatrix.modulemap
include//ROOT.modulemap.d/Eve.modulemap
include//ROOT.modulemap.d/RooFitJSONInterface.modulemap
include//ROOT.modulemap.d/ASImage.modulemap
include//ROOT.modulemap.d/ROOTNTuple.modulemap
include//ROOT.modulemap.d/SpectrumPainter.modulemap
include//ROOT.modulemap.d/NetxNG.modulemap
include//ROOT.modulemap.d/TMVAGui.modulemap
include//ROOT.modulemap.d/Quadp.modulemap
include//ROOT.modulemap.d/Graf3d.modulemap
include//ROOT.modulemap.d/Net.modulemap
include//ROOT.modulemap.d/RooFitHS3.modulemap
include//ROOT.modulemap.d/RIO.modulemap
include//ROOT.modulemap.d/WebGui6.modulemap
include//ROOT.modulemap.d/Gui.modulemap
include//ROOT.modulemap.d/Gpad.modulemap
include//ROOT.modulemap.d/Physics.modulemap
include//ROOT.modulemap.d/HistPainter.modulemap
include//ROOT.modulemap.d/RGL.modulemap
include//ROOT.modulemap.d/Recorder.modulemap
include//ROOT.modulemap.d/GeomBuilder.modulemap
include//ROOT.modulemap.d/RCsg.modulemap
include//ROOT.modulemap.d/RHTTP.modulemap
include//ROOT.modulemap.d/TreePlayer.modulemap
include//ROOT.modulemap.d/Geom.modulemap
include//ROOT.modulemap.d/EG.modulemap
include//ROOT.modulemap.d/HistFactory.modulemap
include//ROOT.modulemap.d/RooStats.modulemap
include//ROOT.modulemap.d/Fumili.modulemap
include//ROOT.modulemap.d/RooFit.modulemap
include//ROOT.modulemap.d/GenVector.modulemap
include//ROOT.modulemap.d/TreeViewer.modulemap
include//ROOT.modulemap.d/Postscript.modulemap
include//ROOT.modulemap.d/Imt.modulemap
include//ROOT.modulemap.d/ROOTHistDraw.modulemap
include//ROOT.modulemap.d/MultiProc.modulemap
include//ROOT.modulemap.d/XMLIO.modulemap
include//ROOT.modulemap.d/ROOTNTupleUtil.modulemap
include//ROOT.modulemap.d/RDAVIX.modulemap
include//ROOT.modulemap.d/RooFitCore.modulemap
include//ROOT.modulemap.d/ROOTEve.modulemap
include//ROOT.modulemap.d/XMLParser.modulemap
include//ROOT.modulemap.d/ROOTVecOps.modulemap
include//ROOT.modulemap.d/ROOTFitPanelv7.modulemap
include//ROOT.modulemap.d/GuiBld.modulemap
include//ROOT.modulemap.d/ROOTTPython.modulemap
include//ROOT.modulemap.d/RSQLite.modulemap
include//ROOT.modulemap.d/TMVA.modulemap
include//ROOT.modulemap.d/Ged.modulemap
include//ROOT.modulemap.d/ROOTGraphicsPrimitives.modulemap
include//ROOT.modulemap.d/ROOTBrowserv7.modulemap
include//ROOT.modulemap.d/Gdml.modulemap
include//ROOT.modulemap.d/Core.modulemap
include//ROOT.modulemap.d/ROOTGpadv7.modulemap
include//ROOT.modulemap.d/Rint.modulemap
include//ROOT.modulemap.d/Foam.modulemap
include//ROOT.modulemap.d/SQLIO.modulemap
include//ROOT.modulemap.d/Hist.modulemap
include//ROOT.modulemap.d/Thread.modulemap
include//ROOT.modulemap.d/ROOTTreeViewer.modulemap
include//ROOT.modulemap.d/RHTTPSniff.modulemap
include//ROOT.modulemap.d/ROOTHist.modulemap
include//ROOT.modulemap.d/Gviz3d.modulemap
include//ROOT.modulemap.d/RootAuth.modulemap
include//ROOT.modulemap.d/Genetic.modulemap
include//ROOT.modulemap.d/Minuit.modulemap
include//ROOT.modulemap.d/Minuit2.modulemap
include//ROOT.modulemap.d/ROOTTMVASofie.modulemap
include//ROOT.modulemap.d/ROOTWebDisplay.modulemap
include//ROOT.modulemap.d/ROOTGeomViewer.modulemap
include//ROOT.modulemap.d/TMVAUtils.modulemap
include//ROOT.modulemap.d/SPlot.modulemap
include//ROOT.modulemap.d/ROOTDataFrame.modulemap
include//Smatrix.modulemap
include//Eve.modulemap
include//RooFitJSONInterface.modulemap
include//ASImage.modulemap
include//ROOTNTuple.modulemap
include//SpectrumPainter.modulemap
include//NetxNG.modulemap
include//TMVAGui.modulemap
include//Quadp.modulemap
include//Graf3d.modulemap
include//Net.modulemap
include//RooFitHS3.modulemap
include//module.modulemap.extra.tmp
include//RIO.modulemap
include//WebGui6.modulemap
include//Gui.modulemap
include//Gpad.modulemap
include//module.modulemap.extra
include//Physics.modulemap
include//HistPainter.modulemap
include//RGL.modulemap
include//Recorder.modulemap
include//module.modulemap.split.extra.tmp
include//GeomBuilder.modulemap
include//RCsg.modulemap
include//RHTTP.modulemap
include//TreePlayer.modulemap
include//Geom.modulemap
include//EG.modulemap
include//xrootd
include//HistFactory.modulemap
include//RooStats.modulemap
include//Fumili.modulemap
include//RooFit.modulemap
include//GenVector.modulemap
include//TreeViewer.modulemap
include//Postscript.modulemap
include//Imt.modulemap
include//ROOTHistDraw.modulemap
include//MultiProc.modulemap
include//XMLIO.modulemap
include//ROOTNTupleUtil.modulemap
include//RDAVIX.modulemap
include//RooFitCore.modulemap
include//ROOTEve.modulemap
include//XMLParser.modulemap
include//ROOTVecOps.modulemap
include//ROOTFitPanelv7.modulemap
include//ROOT
include//ROOT/TPyDispatcher.h
include//GuiBld.modulemap
include//ROOTTPython.modulemap
include//RSQLite.modulemap
include//TMVA.modulemap
include//Ged.modulemap
include//ROOTGraphicsPrimitives.modulemap
include//ROOTBrowserv7.modulemap
include//Gdml.modulemap
include//Core.modulemap
include//ROOTGpadv7.modulemap
include//Rint.modulemap
include//Foam.modulemap
include//SQLIO.modulemap
include//Hist.modulemap
include//Thread.modulemap
include//ROOTTreeViewer.modulemap
include//RHTTPSniff.modulemap
include//ROOTHist.modulemap
include//Gviz3d.modulemap
include//RootAuth.modulemap
include//Genetic.modulemap
include//Minuit.modulemap
include//Minuit2.modulemap
include//ROOTTMVASofie.modulemap
include//ROOTWebDisplay.modulemap
include//ROOTGeomViewer.modulemap
include//TMVAUtils.modulemap
include//module.modulemap.split.extra
include//SPlot.modulemap
include//ROOTDataFrame.modulemap

Do you expect everything to be duplicated many times and to have tmp leftovers?

vgvassilev avatar Aug 29 '24 06:08 vgvassilev

I checked out your pull request locally and on OSX I get:

find include/
include/
include//ASImageGui.modulemap
include//GCocoa.modulemap
include//GuiHtml.modulemap
include//RooFitRDataFrameHelpers.modulemap
include//CPyCppyy
include//CPyCppyy/CommonDefs.h
include//CPyCppyy/PyResult.h
include//CPyCppyy/DispatchPtr.h
include//CPyCppyy/API.h
include//CPyCppyy/Reflex.h
include//CPyCppyy/PyException.h
include//Html.modulemap
include//Tree.modulemap
include//FitPanel.modulemap
include//ROOTBrowsable.modulemap
include//Spectrum.modulemap
include//Matrix.modulemap
include//Graf.modulemap
include//MLP.modulemap
include//GeomPainter.modulemap
include//MathCore.modulemap
include//RooFitXRooFit.modulemap
include//ROOT.modulemap.d
include//ROOT.modulemap.d/ASImageGui.modulemap
include//ROOT.modulemap.d/GCocoa.modulemap
include//ROOT.modulemap.d/GuiHtml.modulemap
include//ROOT.modulemap.d/RooFitRDataFrameHelpers.modulemap
include//ROOT.modulemap.d/Html.modulemap
include//ROOT.modulemap.d/Tree.modulemap
include//ROOT.modulemap.d/FitPanel.modulemap
include//ROOT.modulemap.d/ROOTBrowsable.modulemap
include//ROOT.modulemap.d/Spectrum.modulemap
include//ROOT.modulemap.d/Matrix.modulemap
include//ROOT.modulemap.d/Graf.modulemap
include//ROOT.modulemap.d/MLP.modulemap
include//ROOT.modulemap.d/GeomPainter.modulemap
include//ROOT.modulemap.d/MathCore.modulemap
include//ROOT.modulemap.d/RooFitXRooFit.modulemap
include//ROOT.modulemap.d/Smatrix.modulemap
include//ROOT.modulemap.d/Eve.modulemap
include//ROOT.modulemap.d/RooFitJSONInterface.modulemap
include//ROOT.modulemap.d/ASImage.modulemap
include//ROOT.modulemap.d/ROOTNTuple.modulemap
include//ROOT.modulemap.d/SpectrumPainter.modulemap
include//ROOT.modulemap.d/NetxNG.modulemap
include//ROOT.modulemap.d/TMVAGui.modulemap
include//ROOT.modulemap.d/Quadp.modulemap
include//ROOT.modulemap.d/Graf3d.modulemap
include//ROOT.modulemap.d/Net.modulemap
include//ROOT.modulemap.d/RooFitHS3.modulemap
include//ROOT.modulemap.d/RIO.modulemap
include//ROOT.modulemap.d/WebGui6.modulemap
include//ROOT.modulemap.d/Gui.modulemap
include//ROOT.modulemap.d/Gpad.modulemap
include//ROOT.modulemap.d/Physics.modulemap
include//ROOT.modulemap.d/HistPainter.modulemap
include//ROOT.modulemap.d/RGL.modulemap
include//ROOT.modulemap.d/Recorder.modulemap
include//ROOT.modulemap.d/GeomBuilder.modulemap
include//ROOT.modulemap.d/RCsg.modulemap
include//ROOT.modulemap.d/RHTTP.modulemap
include//ROOT.modulemap.d/TreePlayer.modulemap
include//ROOT.modulemap.d/Geom.modulemap
include//ROOT.modulemap.d/EG.modulemap
include//ROOT.modulemap.d/HistFactory.modulemap
include//ROOT.modulemap.d/RooStats.modulemap
include//ROOT.modulemap.d/Fumili.modulemap
include//ROOT.modulemap.d/RooFit.modulemap
include//ROOT.modulemap.d/GenVector.modulemap
include//ROOT.modulemap.d/TreeViewer.modulemap
include//ROOT.modulemap.d/Postscript.modulemap
include//ROOT.modulemap.d/Imt.modulemap
include//ROOT.modulemap.d/ROOTHistDraw.modulemap
include//ROOT.modulemap.d/MultiProc.modulemap
include//ROOT.modulemap.d/XMLIO.modulemap
include//ROOT.modulemap.d/ROOTNTupleUtil.modulemap
include//ROOT.modulemap.d/RDAVIX.modulemap
include//ROOT.modulemap.d/RooFitCore.modulemap
include//ROOT.modulemap.d/ROOTEve.modulemap
include//ROOT.modulemap.d/XMLParser.modulemap
include//ROOT.modulemap.d/ROOTVecOps.modulemap
include//ROOT.modulemap.d/ROOTFitPanelv7.modulemap
include//ROOT.modulemap.d/GuiBld.modulemap
include//ROOT.modulemap.d/ROOTTPython.modulemap
include//ROOT.modulemap.d/RSQLite.modulemap
include//ROOT.modulemap.d/TMVA.modulemap
include//ROOT.modulemap.d/Ged.modulemap
include//ROOT.modulemap.d/ROOTGraphicsPrimitives.modulemap
include//ROOT.modulemap.d/ROOTBrowserv7.modulemap
include//ROOT.modulemap.d/Gdml.modulemap
include//ROOT.modulemap.d/Core.modulemap
include//ROOT.modulemap.d/ROOTGpadv7.modulemap
include//ROOT.modulemap.d/Rint.modulemap
include//ROOT.modulemap.d/Foam.modulemap
include//ROOT.modulemap.d/SQLIO.modulemap
include//ROOT.modulemap.d/Hist.modulemap
include//ROOT.modulemap.d/Thread.modulemap
include//ROOT.modulemap.d/ROOTTreeViewer.modulemap
include//ROOT.modulemap.d/RHTTPSniff.modulemap
include//ROOT.modulemap.d/ROOTHist.modulemap
include//ROOT.modulemap.d/Gviz3d.modulemap
include//ROOT.modulemap.d/RootAuth.modulemap
include//ROOT.modulemap.d/Genetic.modulemap
include//ROOT.modulemap.d/Minuit.modulemap
include//ROOT.modulemap.d/Minuit2.modulemap
include//ROOT.modulemap.d/ROOTTMVASofie.modulemap
include//ROOT.modulemap.d/ROOTWebDisplay.modulemap
include//ROOT.modulemap.d/ROOTGeomViewer.modulemap
include//ROOT.modulemap.d/TMVAUtils.modulemap
include//ROOT.modulemap.d/SPlot.modulemap
include//ROOT.modulemap.d/ROOTDataFrame.modulemap
include//Smatrix.modulemap
include//Eve.modulemap
include//RooFitJSONInterface.modulemap
include//ASImage.modulemap
include//ROOTNTuple.modulemap
include//SpectrumPainter.modulemap
include//NetxNG.modulemap
include//TMVAGui.modulemap
include//Quadp.modulemap
include//Graf3d.modulemap
include//Net.modulemap
include//RooFitHS3.modulemap
include//module.modulemap.extra.tmp
include//RIO.modulemap
include//WebGui6.modulemap
include//Gui.modulemap
include//Gpad.modulemap
include//module.modulemap.extra
include//Physics.modulemap
include//HistPainter.modulemap
include//RGL.modulemap
include//Recorder.modulemap
include//module.modulemap.split.extra.tmp
include//GeomBuilder.modulemap
include//RCsg.modulemap
include//RHTTP.modulemap
include//TreePlayer.modulemap
include//Geom.modulemap
include//EG.modulemap
include//xrootd
include//HistFactory.modulemap
include//RooStats.modulemap
include//Fumili.modulemap
include//RooFit.modulemap
include//GenVector.modulemap
include//TreeViewer.modulemap
include//Postscript.modulemap
include//Imt.modulemap
include//ROOTHistDraw.modulemap
include//MultiProc.modulemap
include//XMLIO.modulemap
include//ROOTNTupleUtil.modulemap
include//RDAVIX.modulemap
include//RooFitCore.modulemap
include//ROOTEve.modulemap
include//XMLParser.modulemap
include//ROOTVecOps.modulemap
include//ROOTFitPanelv7.modulemap
include//ROOT
include//ROOT/TPyDispatcher.h
include//GuiBld.modulemap
include//ROOTTPython.modulemap
include//RSQLite.modulemap
include//TMVA.modulemap
include//Ged.modulemap
include//ROOTGraphicsPrimitives.modulemap
include//ROOTBrowserv7.modulemap
include//Gdml.modulemap
include//Core.modulemap
include//ROOTGpadv7.modulemap
include//Rint.modulemap
include//Foam.modulemap
include//SQLIO.modulemap
include//Hist.modulemap
include//Thread.modulemap
include//ROOTTreeViewer.modulemap
include//RHTTPSniff.modulemap
include//ROOTHist.modulemap
include//Gviz3d.modulemap
include//RootAuth.modulemap
include//Genetic.modulemap
include//Minuit.modulemap
include//Minuit2.modulemap
include//ROOTTMVASofie.modulemap
include//ROOTWebDisplay.modulemap
include//ROOTGeomViewer.modulemap
include//TMVAUtils.modulemap
include//module.modulemap.split.extra
include//SPlot.modulemap
include//ROOTDataFrame.modulemap

Do you expect everything to be duplicated many times and to have tmp leftovers?

I will check whether this can be de-duplicated.

pavlo-svirin avatar Aug 30 '24 17:08 pavlo-svirin

@pavlo-svirin, I think I understand the problem. The errors are because we have to make the headers relative to the modulemap, meaning we have to prefix very header file in every modulemap with ../.

However, I think we should move back to the previous model where the modulemap are in the ROOTSYS/include folder. That'd help us progress with this PR.

On a later stage, when/if we decide to resolve https://github.com/root-project/root/issues/16327

vgvassilev avatar Sep 12 '24 18:09 vgvassilev

@pavlo-svirin, can you rebase this PR?

vgvassilev avatar Sep 13 '24 10:09 vgvassilev

@pavlo-svirin, can you rebase this PR?

done

pavlo-svirin avatar Sep 13 '24 17:09 pavlo-svirin

@pavlo-svirin, I think I understand the problem. The errors are because we have to make the headers relative to the modulemap, meaning we have to prefix very header file in every modulemap with ../.

However, I think we should move back to the previous model where the modulemap are in the ROOTSYS/include folder. That'd help us progress with this PR.

On a later stage, when/if we decide to resolve #16327

I think we should address this comment...

vgvassilev avatar Nov 26 '24 08:11 vgvassilev