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

Better era imports #16001

Merged
merged 2 commits into from Sep 28, 2016
Merged

Better era imports #16001

merged 2 commits into from Sep 28, 2016

Conversation

kpedro88
Copy link
Contributor

This PR addresses ~90% of the instances of importing Configuration.StandardSequences.Eras, replacing those imports with the modifier-specific cff files now available. Most of the edits were made automatically using a Python script, with a few corner cases fixed by hand afterward.

Remaining types of Era imports still to be dealt with:

  1. In various Tracking cff files, there is a call to getattr(eras,era) in a general loop.
  2. cmsRun configs generated by cmsDriver use the import to initialize the cms.Process object. (Most of the tracked configs are stored in test directories, so aren't picked up by checkdeps.)
  3. Only in Configuration/DataProcessing, import Configuration.StandardSequences.Eras as eras.

These special cases of imports should probably be addressed by someone who understands the expected function of the code.

This PR is going to touch a huge number of categories, but I would appreciate merging it quickly once it's confirmed not to cause any regressions, in order to avoid never-ending rebases. We should start enforcing the new way of importing specific modifiers in open PRs. I tested this PR using the short matrix in the latest IB and all tests passed.

attn: @davidlange6, @Dr15Jones, @slava77

@cmsbuild
Copy link
Contributor

A new Pull Request was created by @kpedro88 (Kevin Pedro) for CMSSW_8_1_X.

It involves the following packages:

CalibCalorimetry/HcalPlugins
CalibMuon/CSCCalibration
CommonTools/RecoAlgos
Configuration/EventContent
Configuration/StandardSequences
DQM/BeamMonitor
DQM/HcalTasks
DQM/L1TMonitor
DQM/Physics
DQM/SiPixelCommon
DQM/SiPixelMonitorCluster
DQM/SiPixelMonitorDigi
DQM/SiPixelMonitorRawData
DQM/SiPixelMonitorRecHit
DQM/SiPixelMonitorTrack
DQM/SiStripMonitorClient
DQMOffline/Configuration
DQMOffline/JetMET
DQMOffline/L1Trigger
DQMOffline/Muon
EventFilter/CSCRawToDigi
EventFilter/HcalRawToDigi
EventFilter/RawDataCollector
EventFilter/SiPixelRawToDigi
FastSimulation/Calorimetry
FastSimulation/TrajectoryManager
Geometry/CSCGeometryBuilder
HLTriggerOffline/Btag
HLTriggerOffline/Common
HLTriggerOffline/SUSYBSM
IOMC/RandomEngine
L1Trigger/CSCTrackFinder
L1Trigger/CSCTriggerPrimitives
L1Trigger/Configuration
L1Trigger/L1ExtraFromDigis
L1Trigger/L1TCalorimeter
L1Trigger/L1TGlobal
L1Trigger/L1TMuon
PhysicsTools/PatAlgos
RecoEcal/Configuration
RecoEcal/EgammaClusterProducers
RecoEgamma/Configuration
RecoEgamma/EgammaElectronProducers
RecoEgamma/EgammaPhotonProducers
RecoEgamma/PhotonIdentification
RecoJets/Configuration
RecoJets/JetProducers
RecoLocalCalo/Configuration
RecoLocalMuon/CSCRecHitD
RecoLocalMuon/Configuration
RecoLocalMuon/RPCRecHit
RecoLocalTracker/Configuration
RecoLocalTracker/Phase2ITPixelClusterizer
RecoLocalTracker/SiPixelClusterizer
RecoLocalTracker/SiPixelRecHits
RecoLocalTracker/SiStripClusterizer
RecoLocalTracker/SiStripZeroSuppression
RecoLuminosity/LumiProducer
RecoMET/Configuration
RecoMET/METFilters
RecoMuon/Configuration
RecoMuon/GlobalTrackingTools
RecoMuon/MuonIdentification
RecoMuon/TrackingTools
RecoParticleFlow/Configuration
RecoParticleFlow/PFClusterProducer
RecoParticleFlow/PFProducer
RecoParticleFlow/PFTracking
RecoPixelVertexing/Configuration
RecoPixelVertexing/PixelLowPtUtilities
RecoPixelVertexing/PixelTrackFitting
RecoPixelVertexing/PixelTriplets
RecoTracker/ConversionSeedGenerators
RecoTracker/FinalTrackSelectors
RecoTracker/IterativeTracking
RecoTracker/MeasurementDet
RecoTracker/SpecialSeedGenerators
RecoTracker/TkSeedGenerator
RecoTracker/TkSeedingLayers
RecoTracker/TkTrackingRegions
RecoTracker/TrackProducer
RecoTracker/TransientTrackingRecHit
RecoVertex/Configuration
RecoVertex/PrimaryVertexProducer
SLHCUpgradeSimulations/Configuration
SimCalorimetry/Configuration
SimCalorimetry/EcalTrigPrimProducers
SimCalorimetry/HcalSimProducers
SimCalorimetry/HcalZeroSuppressionProducers
SimG4Core/Application
SimG4Core/Configuration
SimGeneral/Configuration
SimGeneral/DataMixingModule
SimGeneral/MixingModule
SimGeneral/TrackingAnalysis
SimMuon/CSCDigitizer
SimMuon/Configuration
SimMuon/DTDigitizer
SimMuon/MCTruth
SimMuon/RPCDigitizer
SimTracker/TrackAssociatorProducers
TrackingTools/TrackAssociator
Validation/Configuration
Validation/DTRecHits
Validation/EcalDigis
Validation/EcalHits
Validation/EcalRecHits
Validation/HcalDigis
Validation/HcalHits
Validation/HcalRecHits
Validation/MuonCSCDigis
Validation/MuonDTDigis
Validation/MuonHits
Validation/MuonIdentification
Validation/MuonRPCDigis
Validation/RPCRecHits
Validation/RecoEgamma
Validation/RecoMuon
Validation/RecoTau
Validation/RecoTrack
Validation/RecoVertex

@ghellwig, @lveldere, @ianna, @cerminar, @rekovic, @vanbesien, @civanch, @monttj, @cmsbuild, @davidlange6, @smuzaffar, @Dr15Jones, @cvuosalo, @mdhildreth, @slava77, @mommsen, @mmusich, @mulhearn, @ssekmen, @emeschi, @dmitrijus, @franzoni can you please review it and eventually sign? Thanks.
@ghellwig, @TaiSakuma, @gouskos, @yslai, @forthommel, @yduhm, @rappoccio, @argiro, @Martin-Grunewald, @imarches, @fioriNTU, @ahinzmann, @lgray, @abbiendi, @dgulhan, @venturia, @mmarionncern, @hdelanno, @calderona, @makortel, @threus, @acaudron, @sdevissc, @jhgoh, @amagitte, @valuev, @jdolen, @jlagram, @HuguesBrun, @ferencek, @OlivierBondu, @trocino, @rociovilar, @Sam-Harper, @barvic, @wmtan, @GiacomoSguazzoni, @rafaellopesdesa, @tocheng, @VinInn, @bellan, @nhanvtran, @gkasieczka, @rovere, @deguio, @schoef, @mschrode, @idebruyn, @ptcox, @richard-cms, @nickmccoll, @battibass, @gbenelli, @wddgit, @JyothsnaKomaragiri, @mverzett, @dkotlins, @wmtford, @cbernet, @gpetruc, @matt-komm, @mariadalfonso, @pvmulder, @bachtis this is something you requested to watch as well.
@slava77, @smuzaffar you are the release manager for this.

cms-bot commands are list here #13028

@kpedro88
Copy link
Contributor Author

@cmsbuild please test

@cmsbuild
Copy link
Contributor

cmsbuild commented Sep 27, 2016

The tests are being triggered in jenkins.
https://cmssdt.cern.ch/jenkins/job/ib-any-integration/15410/console

@kpedro88
Copy link
Contributor Author

@slava77
Copy link
Contributor

slava77 commented Sep 27, 2016

@kpedro88
which tests have passed, actually? Did you see that the matrix ran, or did you check comparisons as well?

Please check expanded configs in several standard workflows to confirm that your changes provide identical results.

@kpedro88
Copy link
Contributor Author

@slava77 I saw that all workflows in the short matrix ran to completion with no errors. I was planning to rely on the comparisons from the bot. Is there a way that I can run the comparison generation script myself?

@slava77
Copy link
Contributor

slava77 commented Sep 27, 2016

comparisons are not enough.
There are many things that are not monitored.
So, the best check is the expanded configuration (python dump)

We post a link to Reco tools in every RECO/AT meeting.
comparisons are described in https://twiki.cern.ch/twiki/bin/viewauth/CMS/RecoIntegration#Compare_outputs_FWLite_style and a similar DQM.
If you want to run RelMon-based comparisons, you can find the individual wflow scripts in the cms-bot outputs (next to the output directory)

@kpedro88
Copy link
Contributor Author

Ah, I see what you mean now. I can write a script to call edmConfigDump on everything and diff vs. a clean IB.

@makortel
Copy link
Contributor

  1. In various Tracking cff files, there is a call to getattr(eras,era) in a general loop.

I can take care of this (after this PR gets merged).

@kpedro88
Copy link
Contributor Author

@makortel thanks! (the second commit in this PR shows which files have that usage)

@slava77
Copy link
Contributor

slava77 commented Sep 27, 2016

On 9/27/16 1:32 PM, Kevin Pedro wrote:

@slava77 https://github.com/slava77 I wrote a script to run
|edmConfigDump| on all the .py files generated by the short matrix in my
working area and in a clean IB |CMSSW_8_1_X_2016-09-27-1100|. I then ran
a script to |diff| each pair of config dumps. The diffs showed that all
the dumps are identical. (I also checked a few random ones by hand to
confirm.)

Nice.
Thank you for checking.


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
#16001 (comment), or
mute the thread
https://github.com/notifications/unsubscribe-auth/AEdcbqJZWQQph1i325isR3XmlnsOc3Lfks5quX1lgaJpZM4KH_AY.

@Dr15Jones
Copy link
Contributor

+1

@mulhearn
Copy link
Contributor

+1

@cmsbuild
Copy link
Contributor

@cmsbuild
Copy link
Contributor

@kpedro88
Copy link
Contributor Author

Comparisons look good to me at a glance.

Again, would prefer to merge quickly to avoid conflicts popping up... (this will also make it quicker to test any other PRs that modify Era-related code)

@davidlange6
Copy link
Contributor

I agree. All - any additional checks needed beyond what can be done over the next few hours (eg, as to merge by the next IB)?

On Sep 28, 2016, at 5:45 PM, Kevin Pedro notifications@github.com wrote:

Comparisons look good to me at a glance.

Again, would prefer to merge quickly to avoid conflicts popping up... (this will also make it quicker to test any other PRs that modify Era-related code)


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

@davidlange6 davidlange6 merged commit df1fc8b into cms-sw:CMSSW_8_1_X Sep 28, 2016
@davidlange6
Copy link
Contributor

please comment if not ok even if now merged

@makortel
Copy link
Contributor

(this is probably the wrong place to comment but anyway)

Interestingly, in CMSSW_8_1_X_2016-09-28-2300 after a single edit in Configuration/StandardSequences/python/Eras.py git cms-checkdeps -a still adds gazillion packages. Checking /cvmfs/cms-ib.cern.ch/week0/slc6_amd64_gcc530/cms/cmssw-patch/CMSSW_8_1_X_2016-09-28-2300/etc/dependencies/pyusedby.out.gz (where the dependence information is apparently read by git-cms-checkdeps), it indeed lists many files "depending" on Eras.py.

Are we missing something (additional) here?

@davidlange6
Copy link
Contributor

i guess it will change once we have a full build of the IB instead of a patch. we’ll try to trigger a full build today

On Sep 29, 2016, at 9:16 AM, Matti Kortelainen notifications@github.com wrote:

(this is probably the wrong place to comment but anyway)

Interestingly, in CMSSW_8_1_X_2016-09-28-2300 after a single edit in Configuration/StandardSequences/python/Eras.py git cms-checkdeps -a still adds gazillion packages. Checking /cvmfs/cms-ib.cern.ch/week0/slc6_amd64_gcc530/cms/cmssw-patch/CMSSW_8_1_X_2016-09-28-2300/etc/dependencies/pyusedby.out.gz (where the dependence information is apparently read by git-cms-checkdeps), it indeed lists many files "depending" on Eras.py.

Are we missing something (additional) here?


You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub, or mute the thread.

@makortel
Copy link
Contributor

Ok, so the list needs a full build (I bit of suspected that), thanks.

@kpedro88
Copy link
Contributor Author

@makortel CMSSW_8_1_X_2016-09-29-2300 was a full build. I tried modifying Configuration.StandardSequences.Eras and running checkdeps, and now it only finds 10 packages. Hurray!

Configuration/Applications (python)
Configuration/DataProcessing (python)
DQM/Integration (python)
DQM/TrackingMonitorSource (python)
HLTrigger/Configuration (python)
L1Trigger/L1TNtuples (python)
L1Trigger/TrackTrigger (python)
RecoTracker/IterativeTracking (python)
Validation/RecoTau (python)
Validation/RecoTrack (python)

@slava77
Copy link
Contributor

slava77 commented Sep 30, 2016

On 9/30/16 12:52 PM, Kevin Pedro wrote:

@makortel https://github.com/makortel |CMSSW_8_1_X_2016-09-29-2300|
was a full build. I tried modifying Configuration.StandardSequences.Eras
and running checkdeps, and now it only finds 10 packages. Hurray!

nice

|Configuration/Applications (python) Configuration/DataProcessing
(python) DQM/Integration (python) DQM/TrackingMonitorSource (python)
HLTrigger/Configuration (python) L1Trigger/L1TNtuples (python)
L1Trigger/TrackTrigger (python) RecoTracker/IterativeTracking (python)
Validation/RecoTau (python) Validation/RecoTrack (python) |


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
#16001 (comment), or
mute the thread
https://github.com/notifications/unsubscribe-auth/AEdcbhl-9JCniFNwUysd2hnjaU0BHp_dks5qvWhvgaJpZM4KH_AY.

@makortel
Copy link
Contributor

makortel commented Oct 3, 2016

@kpedro88 Nice indeed :) I'll attack now on the remaining imports in tracking.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment