Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Modularized FWCore, DataFormats #17943

Closed
wants to merge 1 commit into from

Conversation

Teemperor
Copy link
Contributor

First step to modularize FWCore (and the DataFormats libraries used by FWCore). This patch adds all missing includes and removes cyclic includes that cause FWCore to fail compiling with per-header modules.

@cmsbuild
Copy link
Contributor

A new Pull Request was created by @Teemperor (Raphael Isemann) for master.

It involves the following packages:

DataFormats/CLHEP
DataFormats/Common
DataFormats/GeometryVector
DataFormats/Provenance
DataFormats/TrackReco
FWCore/Framework
FWCore/Utilities

@perrotta, @smuzaffar, @civanch, @Dr15Jones, @mdhildreth, @cmsbuild, @slava77, @davidlange6 can you please review it and eventually sign? Thanks.
@wmtan, @makortel, @felicepantaleo, @wddgit, @VinInn, @Martin-Grunewald, @gpetruc this is something you requested to watch as well.
@Muzaffar, @davidlange6, @smuzaffar you are the release manager for this.

cms-bot commands are listed here #13028

@Teemperor
Copy link
Contributor Author

Teemperor commented Mar 15, 2017

This PR is work-in-progress and is part of this issue that tracks the progress of modularizing CMSSW.

@slava77
Copy link
Contributor

slava77 commented Mar 15, 2017

@cmsbuild please test

@cmsbuild
Copy link
Contributor

cmsbuild commented Mar 15, 2017

The tests are being triggered in jenkins.
https://cmssdt.cern.ch/jenkins/job/ib-any-integration/18455/console Started: 2017/03/15 21:51

@slava77
Copy link
Contributor

slava77 commented Mar 15, 2017

@Teemperor what's the aspect of "work in progress"?
If you plan to add edits to more packages and other files, cms-sw/cmssw is not the best repo for this: make a PR to your own area and mention it in #15248 .

If, OTOH, this is "essentially done", then this PR can stay.

@cmsbuild
Copy link
Contributor

-1

Tested at: ebd15cf

You can see the results of the tests here:
https://cmssdt.cern.ch/SDT/jenkins-artifacts/pull-request-integration/PR-17943/18455/summary.html

I found follow errors while testing this PR

Failed tests: Build ClangBuild

  • Build:

I found an error when building:

>> Compiling LCG dictionary: tmp/slc6_amd64_gcc530/src/DataFormats/SiStripCluster/src/DataFormatsSiStripCluster/a/DataFormatsSiStripCluster_xr.cc
>> Building LCG reflex dict from header file src/DataFormats/TrackerCommon/src/classes.h
>> Compiling LCG dictionary: tmp/slc6_amd64_gcc530/src/SimDataFormats/GeneratorProducts/src/SimDataFormatsGeneratorProducts/a/SimDataFormatsGeneratorProducts_xr.cc
In file included from /build/cmsbld/jenkins-workarea/workspace/ib-any-integration/CMSSW_9_1_X_2017-03-15-1100/src/DataFormats/CLHEP/interface/AlgebraicObjects.h:16:0,
                 from /build/cmsbld/jenkins-workarea/workspace/ib-any-integration/CMSSW_9_1_X_2017-03-15-1100/src/DataFormats/BeamSpot/src/BeamSpot.cc:14:
/build/cmsbld/jenkins-workarea/workspace/ib-any-integration/CMSSW_9_1_X_2017-03-15-1100/src/DataFormats/CLHEP/interface/Migration.h:5:57: fatal error: DataFormats/Math/interface/AlgebraicObjects.h: No such file or directory
compilation terminated.
Entering library rule at DataFormats/EcalDetId
Entering library rule at DataFormats/L1GlobalTrigger
>> Building LCG reflex dict from header file src/DataFormats/EcalDetId/src/classes.h
>> Building LCG reflex dict from header file src/DataFormats/L1GlobalTrigger/src/classes.h

  • Clang:

I found a compilation error while trying to compile with clang:
I used this command:
scram b vclean && scram build -k -j 16 USER_CXXFLAGS='-fsyntax-only' COMPILER='llvm compile'

In file included from /build/cmsbld/jenkins-workarea/workspace/ib-any-integration/CMSSW_9_1_X_2017-03-15-1100/src/DataFormats/TrackReco/interface/Track.h:19:
In file included from /build/cmsbld/jenkins-workarea/workspace/ib-any-integration/CMSSW_9_1_X_2017-03-15-1100/src/DataFormats/TrackReco/interface/TrackBase.h:51:
In file included from /build/cmsbld/jenkins-workarea/workspace/ib-any-integration/CMSSW_9_1_X_2017-03-15-1100/src/DataFormats/TrackReco/interface/HitPattern.h:124:
In file included from /cvmfs/cms-ib.cern.ch/nweek-02463/slc6_amd64_gcc530/cms/cmssw-patch/CMSSW_9_1_X_2017-03-15-1100/src/DataFormats/TrackingRecHit/interface/TrackingRecHit.h:4:
In file included from /build/cmsbld/jenkins-workarea/workspace/ib-any-integration/CMSSW_9_1_X_2017-03-15-1100/src/DataFormats/CLHEP/interface/AlgebraicObjects.h:16:
/build/cmsbld/jenkins-workarea/workspace/ib-any-integration/CMSSW_9_1_X_2017-03-15-1100/src/DataFormats/CLHEP/interface/Migration.h:5:10: fatal error: 'DataFormats/Math/interface/AlgebraicObjects.h' file not found
#include "DataFormats/Math/interface/AlgebraicObjects.h"
         ^
>> Compiling  /build/cmsbld/jenkins-workarea/workspace/ib-any-integration/CMSSW_9_1_X_2017-03-15-1100/src/DataFormats/Provenance/test/indexIntoFile3_t.cppunit.cc 
In file included from /build/cmsbld/jenkins-workarea/workspace/ib-any-integration/CMSSW_9_1_X_2017-03-15-1100/src/DataFormats/TrackReco/src/HitPattern.cc:1:
In file included from /build/cmsbld/jenkins-workarea/workspace/ib-any-integration/CMSSW_9_1_X_2017-03-15-1100/src/DataFormats/TrackReco/interface/HitPattern.h:124:


@cmsbuild
Copy link
Contributor

Comparison not run due to Build errors (RelVals and Igprof tests were also skipped)

@slava77
Copy link
Contributor

slava77 commented Mar 16, 2017

-1

looks incomplete
OK as a work in progress, but clearly not ready to merge

@davidlange6
Copy link
Contributor

fyi - more info here https://indico.cern.ch/event/623308/
but indeed, the entire CMSSW needs to compile with any proposed changes before its useful to make a pull request.

@@ -40,6 +40,7 @@

#include "DataFormats/Provenance/interface/ProductID.h"
#include "DataFormats/Common/interface/EDProductGetter.h"
#include "FWCore/Framework/interface/Event.h"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How about replacing this with

#include "FWCore/Common/interface/EventBase.h"

and then in the places which were using edm::Event change it to edm::EventBase
?

@Teemperor
Copy link
Contributor Author

As suggested, I'll split this up in multiply smaller PRs. Closing this.

@Teemperor Teemperor closed this Mar 21, 2017
@Teemperor Teemperor deleted the modularizeFWCore branch December 19, 2017 08:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants