====================================================== A proposal to refactor/migrate CDB Framework Modules to technology-neutral model ====================================================== Igor Gaponenko February 9, 2007 ______________________________ 1. Reasons for the refactoring The on-going CDB migration from Objectivity/DB to ROOT & MySQL creates a number of difficulties for developers and users of Framework applications. Some of them relate to a fact that both technologies are going to co-exist in our releases (and in actual use of applications) for a substantial period of time. Therefore: a) each application (except those which have been made technology-specific on a purpose) should be built in a form of two binaries each linked against one or another persistent technology. A technology choice should not change a functionality of the application. In particular, it means that those services provided to applications via CDB specific Framework modules should be available to both flavors of the binaries. b) secondly, changes in a CDB specific part of the application's interface should be as small as possible, just to a level where it's simply unavoidable (for example, when we need to specify a location of a CDB database installation to be used). Here we're mostly talking about interfaces of CDB specific modules in TCL application configuration scripts. Right now, most applications use CDB Framework modules via the following Objectivity-specific "sequence": BdbCondModules/BdbCondInitSequence.(hh,cc,tcl) There is also a 'branch' version of this sequnce for ROOT I/O technology: CdbRooModules/CdbRooInitSequence.(hh,cc,tcl) which was developed in a context of migrating BetaMiniUer analysis application. Besides, the ROOT version of BetaMini has its own collection of other CDB related modules (both technology-neutral and technology-specific). Having the same functionality duplicated in two sets of sequences/modules is exactly a reason for a concern mentioned in (a) and (b) above. Hence, a goal of this prposal is to come up with a unified solution which would be transparent at both (a) and (b) for end users and application developers. ______________________________________________ 1.1 Notes on known limitations of the proposal The original version of the proposal is only aiming at read-only clients of CDB. We also have many so called "loader" modules which are used to populate the database with new constants/calibrations/etc. Right now, due to a limited support from the core CDB API these modules can't be made technology-neutral. For that one would need to extend the API with the "transient-to-persistent" translation path. This extension will be made to the API in the future. _________________________ 2. What is being proposed The first step to unify an application build process has already been made in this HN thread: http://babar-hn.slac.stanford.edu:5090/HyperNews/get/db_alternatives/207.html In particular, the proposal makes the build procedure of technology specific binaries trasnparent to end-users. However, it still implies a presence of two flavors of CDB Framework modules and sequences. Obviously, this contradicts with a requirement outlined in (1.b). Besides, as it's been realised after publishing that document (see URL above), the unified build process would make non-Framework applications linked with Framework, TCL and related libraries. The main idea behind the current document is to merge both sequences and both sets of CDB modules into a single technology-neutral set. That way we'll come up with the unified TCL interface to CDB modules from TCL, and we'll also solve a problem of unwanbted dependencies onto Framework (TCL, etc.) libraries from non-Framework applications. The later will become possible bacause there won't be any need to generate an installation (C++) code for technology-specific CDB Framework modules. _____________________ 2.1 Sequences/modules Right now, the previously mentioned sequence 'BdbCondModules/BdbCondInitSequence' installs three CDB modules: CdbEvtModules/CdbEvtLoadStateId BdbTclParmP/BdbTclManagerModule BdbCondInitModules/CdbBdbInit Among these three modules, the first one ('CdbEvtLoadStateId') is already technology neutral one, it's there just for historical reasons. The second one ('BdbTclManagerModule') already has a technology-neutral implementation made in a context of the BetaMini migration to ROOT: BdbTclParmProxy/BdbTclProxyRegister Though, no DDL-to-transient translator exists for this module yet. The third module ('CdbBdbInit') is presently Objectivity specific. This module needs to be migrated to technolog-neutral CDB API. ________________________________ 3. What exactly needs to be done _____________________________________ 3.1 Create new package: CdbFwkModules First we need to create a new CDB package for technology neutral modules and seqeunces: CdbFwkModules/ That package is going to be a host for the following sequence: CdbFwkModules/CdbApiInitSequence.(hh,cc,tcl) which would replace the technology-specific sequences: BdbCondModules/BdbCondInitSequence CdbRooModules/CdbRooInitSequence for all kinds of Framework applications. The package will also host the technology-neutral merge of two modules: 'CdbBdbInit' and 'CdbRooInit': CdbApiInitModule ________________________________________________________________________ 3.2 Merge modules: 'CdbBdbInit' and 'CdbRooInit' into 'CdbApiInitModule' Two approaches to interact with the new technology-neutral module have been considered: a) let the module to know about all possible parameters and their correct syntax for all CDB API implementations. Validate parameters and pass them down to CDB API implementations via tech-neutral CdbEnvironment facility (which is a technology-neutral dictionary of CDB API parameters used by all API implementations). b) or implement the "path through" logic, in which the module doesn't check a correctness of a parameter, and simply passed it down to CdbEnvironment facility as a plain pair of key/value strings. Since we have just a few of parameters, and that numbers is very unlikelly to grow in the future, then (a) seems to be the simplest and more reliable solution. It also has another benefits - it's backward compatible with already existing modules. __________________________________________________________ NOTE: It's obvious disadvantage is a possible maintenance. This shouldn't be a problem if the number of paramaters won't be growing too fast. What we have so far (~6 parameters) is a result of 3.5 years of using CDB. The following changes are expected to be done in the new module's implementation compared to 'CdbRooInit': _____________________________________________________________________ 1. migrate the transcation management logic to the technology-neutral one (see class: CdbBase/CdbTransaction). _____________________________________________________________________ 2. don't interact with BDB API to set up the maximum cache size. Pass a user specified (or the default) value to CdbEnviroment's "any type' dictionary of extended parameters using the following key name: "Bdb/*/OO_CACHE_MAX" That would also require to reimplement the following function at both CDB API implementation for "Bdb" technologies to look at the dictionary and set the desired parameter: // File: CdbBdbShared/CdbBdbShared.cc // File: CdbBdbWrapper/CdbBdbWrapper.cc namespace { const CdbBdbSCdb* instantiate_Cdb( ) { .. check if "Bdb/*/OO_CACHE_MAX" is found in CdbEnvironment and .. set up the corresponding parameter through BDB API } ___________________________________________________________________________ 3. make a choice of known CDB API implementations depending on a particular CDB "technology" an application is linked with. That means this part of the module's constructor: _implementation.addItem( "", CdbBdbInit::AUTODETECTION ); if( CdbApiTechnology() == "Bdb" ) { _implementation.addItem( "Wrapper", CdbBdbInit::BDB_WRAPPER ); _implementation.addItem( "Shared", CdbBdbInit::BDB_SHARED ); } else { _implementation.addItem( "Readonly", CdbBdbInit::ROO_READONLY ); _implementation.addItem( "Database", CdbBdbInit::ROO_DATABASE ); } That also requires to autogenerate the following global function: std:string CdbApiTechnology() { return "Bdb"; // or "Roo" } _____________________________________________________ 3.3 Finish migrating BdbTclParm to tech-neutral model In the current implementatio of this facility the code is spread in between two packages: BdbTclParm : transient types BdbTclParmP : proxy and framework module The module in question is located here: BdbTclParmP/BdbTclManagerModule.(hh,cc) There is also an implementation of this facility migrated to the technology-neutral model of proxies. It's found in these package/module: BdbTclParmProxy/BdbTclProxyRegister.(hh.cc) This module instantiates a proxy for a manager of parameter lists. The coresponding transient class to be obtained from persistent-to-transient translation service is: BdbTclParm/BdbTclParmList.hh There is also an RDL implementation for the translator instantiated from this module: BdbTclParmCdbR/BdbTclParmCdbRRegister.(hh,cc) There must be a similar translator created for DDL files. This must be trivial since the corresponding DDL class already has the 'transient()' method. _________________________________________________ 3.4 Make adjustments in users' code and TCL files The code analysis has been made based on release 20.1.0 & nightly-20060613. _____________________________ 3.4.1 C++ code to be modified The following 5 applications instantiating 'BdbCondInitSequence' should be migrated to instantiate the technonoly-neutral 'CdbFwkModules/CdbApiInitSequence': BdbSequences/BdbBasicSequence.cc Bear/BearInitAppSequence.cc BetaMiniEnvSequences/BetaMiniEnvSequence.cc BgsApp/BgsInitSequence.cc SimApp/CommonInitAppSequence.cc TruthTools/AppUserBuild.cc There are 4 applications directly using the Objectivity specific module 'BdbTclParmP/BdbTclManagerModule' from its present location: BdbCondModules/BdbCondInitSequence.cc EmcOep/EmcOepWFdump.cc EmcOepMon/EmcMyReadXtc.cc EmcReco/AppUserBuild.cc And finally, direct clients of 'CdbBdbInit' which need to be migrated are: Bear/BearInitAppSequence.cc BetaSequences/BtaAppBuild.icc DchCondModules/DchMinEnvSequence.cc DchOepSequences/DchOepEnvSequence.cc DchProxy/DchCondLoadSequence.cc DchSimGeomP/AppUserBuild.cc DetectorModel/DetMaterialTester.cc DrcEnvP/AppUserBuild.cc DrcOepCalib/DrcOepModules.cc EmcAlign/EmcAlignFromXtc.cc EmcCalBhabha/AUB-ReadBhabhaConstants.cc EmcCalBhabha/AppUserBuild.cc EmcCalRadBb/bhabhaXtc.cc EmcCalRoot/bhabhaXtc.cc EmcCalibTooP/AppUserBuild.cc EmcDigiCalibP/AppUserBuild.cc EmcEnvP/AppUserBuild.cc EmcLayoutP/AppUserBuild.cc EmcOep/EmcOepWFdump.cc EmcOepMon/EmcEmtReadXtc.cc EmcOepMon/EmcMyReadXtc.cc EmcOepMon/EmcOepReadXtc.cc EmcOepSequences/EmcOepDisplayData.cc EmcOepSequences/EmcOepPlayCosmics.cc EmcProxy/BdbCondLoadEmc.cc EmcProxy/ReadEScaleChans.cc EmcSimGeomP/AppUserBuild.cc FastMonStreams/AUB-FmcAllFastMonApp.cc GenEnv/testGenEnv.cc GeneratorsApp/AppUserBuild.cc GeneratorsQA/AppUserBuild.cc GeneratorsQA/History HepRepServer/HesOepAppUserBuild.cc HepRepServer/HesXtcTcpAppUserBuildCommon.cc IfrDetector/AppUserBuild.cc IfrFastMon/IfrFMonPlayback.cc IfrOpr/testIfrOpr.cc IfrProxy/IfrCondLoadSequence.cc Kanga/KanConditions.cc L1DctEnv/testMapStoreRead.cc L1TFMon/L1TFMonRemoteApp.cc L1TFMon/L1TFMonXtcApp.cc L1TPlayback/L1TPlaybackApp.cc L3TLumi/L3TPcaServerApp.cc L3TLumi/L3TRunInfoApp.cc L3Trigger/L3TInitSequence.cc MatEnvP/AppUserBuild.cc MatReco/AppUserBuild.cc OepFrameworkApps/AUB-OepAllFastMonApp.cc PepCond/AppUserBuild.cc PepFastMon/AppUserBuild.cc PepSimGeomP/AppUserBuild.cc RecoBGFilter/RecoDigiFilterApp.cc SvtCondModules/AppUserBuild.cc SvtEnv/AppUserBuild.cc SvtOep/AppUserBuildF.cc SvtOep/AppUserBuildTC.cc SvtOepApps/AppUserBuildL.cc SvtOepApps/AppUserBuildXtc.cc SvtOepApps/SvtFastMonDb.cc SvtOepApps/SvtFastMonSim.cc SvtOepApps/SvtFastMonXtc.cc SvtOepApps/SvtOepBrowseXtc.cc SvtOepApps/SvtOepDisplay.cc SvtOepApps/SvtOepROMFileDb.cc SvtSimGeomP/AppUserBuild.cc TrgTags/TrgTagsDbApp.cc TrkEnvModules/AppUserBuild.cc ______________________________ 3.4.2 TCL files to be modified Note, that TCL files should be modified at the same time the C++ code of the corresponding packages will be. These TCL files are directly using the Objectivity specific module 'BdbTclManagerModule' instead of the technology-neutral one 'BdbTclProxyRegister': BdbCondModules/BdbCondInitSequence.tcl EmcOep/EmcOepWFdump.tcl EmcOepMon/EmcMyReadXtc.tcl EmcReco/emcreco.tcl And here is a list of TCL files which need to be migrated from using CdbBdbInit module to CdbApiInitModule: BetaPid/setupPid.tcl BetaSequences/kangaCondSetup.tcl DchOepSequences/DchOepEnvSequence.tcl DchProxy/DchInitLoadSequence.tcl Elf/ElfProductionSetup.tcl EmcCalBhabha/EmcDoBhabhaCalibration.tcl EmcCalBhabha/EmcReadBhabhas.tcl EmcOep/EmcOepWFdump.tcl EmcOepMon/EmcMyReadXtc.tcl EmcOepMon/EmcOepReadXtc.tcl FastMonStreams/FmcFastMonRemoteApp.tcl L1TFMon/L1TFMonRemoteApp.tcl L3TLumi/L3TPcaServerApp.tcl L3TLumi/L3TRunInfoApp.tcl L3Trigger/L3TDisplayApp.tcl L3Trigger/L3TriggerApp.tcl PepFastMon/PepFastMon.tcl RecoBGFilter/RecoDigiFilterApp.tcl ______________________________ 3.4.3 Worklog of the migration _____________________________________________________________________ 3.4.3.1 Migration from 'BdbTclManagerModule' to 'BdbTclProxyRegister' NOTE: The 'before' tags are based on the Tuesday June 13-th nightly (the one to where the tags mentioned in sections 4.3 & 4.4 mentioned below have been submitted). ----------------+--------------+------------+--------------+---------------------------- package | tag before | migrated | tag after | comments ----------------+--------------+------------+--------------+---------------------------- BdbCondModules | V01-00-01 | 2006-06-14 | V01-01-00 | ----------------+--------------+------------+--------------+---------------------------- EmcOep | V00-04-03 | 2006-06-14 | V00-04-04 | dirty HEAD; use 'cvs -n update -A; ignore HEAD EmcOepMon | V00-05-05 | 2006-06-14 | V00-05-07 | EmcReco | V00-13-13 | 2006-06-14 | V00-13-14 | dirty HEAD; use 'cvs -n update -A; ignore HEAD ----------------+--------------+------------+--------------+---------------------------- ____________________________________________________ 3.4.3.2 Tags published for the nightly June 14, 2006 BdbCondModules V01-01-00 EmcOep V00-04-04 EmcOepMon V00-05-07 EmcReco V00-13-14 _________________________________________________________ 3.4.3.3 Migration from 'CdbBdbInit' to 'CdbApiInitModule' NOTE: The 'before' tags are based on the Tuesday June 13-th nightly (the one to where the tags mentioned in sections 4.3 & 4.4 mentioned below have been submitted). ------------------+--------------+------------+--------------+---------------------------- package | tag before | migrated | tag after | comments ------------------+--------------+------------+--------------+---------------------------- BdbSequences | V01-03-01 | 2006-06-07 | V01-04-00 | Bear | V01-05-05 | 2006-06-14 | V01-05-06 | BgsApp | V00-05-08 | 2006-06-14 | V00-05-08-01 | there is a new tag 'V00-05-09' related to translators (Akbar) | | | | do _NOT_ include them into the new tag 'V00-05-08-01' for now SimApp | V00-10-02 | 2006-06-14 | V00-10-03 | TruthTools | V00-13-01 | 2006-06-14 | V00-13-02 | dirty HEAD; use 'cvs -n update -A; ignore HEAD BetaSequences | V00-14-00 | 2006-06-14 | V00-14-01 | DchCondModules | V01-06-00 | 2006-06-14 | V01-06-01 | DchOepSequences | V00-03-00 | 2006-06-14 | V00-03-01 | there is a newer tag V00-04-00; user 'kelsey' has suggested | | | | to create new tags: V00-03-01 and V00-04-01 | | | | publish V00-03-01 for the nightly; do not create V00-04-01 for it's not needed DchProxy | V01-08-00 | 2006-06-14 | V01-08-01 | DchSimGeomP | V00-05-01 | 2006-06-14 | V00-05-01-01 | there is a new tag 'V00-05-02' related to translators (Akbar) | | | | do _NOT_ include them into the new tag 'V00-05-01-01' for now DetectorModel | V01-04-01 | 2006-06-14 | V01-04-02 | DrcEnvP | V00-00-02 | 2006-06-14 | V00-00-03 | DrcOepCalib | V00-06-04 | 2006-06-14 | V00-06-05 | EmcAlign | V00-04-03 | 2006-06-14 | V00-04-04 | EmcCalBhabha | V00-08-04 | 2006-06-14 | V00-08-05 | EmcCalRadBb | V00-05-02 | 2006-06-14 | V00-05-03 | EmcCalRoot | V00-05-04 | 2006-06-14 | V00-05-05 | EmcCalibTooP | V00-00-02 | 2006-06-14 | V00-00-05 | there is a newer tag V00-00-03 which isn't in nightly and 20.1.x | | | | ignore that tag and make V00-00-05 EmcDigiCalibP | V00-00-03 | 2006-06-14 | V00-00-04 | EmcEnvP | V00-01-00 | 2006-06-14 | V00-01-01 | EmcLayoutP | V00-01-00 | 2006-06-15 | V00-01-00-01 | there is a new tag 'V00-01-01' with translators (Akbar) | | | | do _NOT_ include them into the new tag 'V00-01-00-01' for now | | | | EmcOep | V00-04-04 | 2006-06-15 | V00-04-05 | dirty HEAD; use 'cvs -n update -A; ignore HEAD EmcOepMon | V00-05-07 | 2006-06-15 | V00-05-08 | EmcOepSequences | V00-05-07 | 2006-06-15 | V00-05-08 | EmcProxy | V00-02-04 | 2006-06-15 | V00-02-05 | dirty HEAD; use 'cvs -n update -A; ignore HEAD | | | | EmcSimGeomP | V00-04-02 | 2006-06-15 | V00-04-02-01 | there is a new tag 'V00-04-03' with translators (Akbar) | | | | do _NOT_ include them into the new tag 'V00-04-02-01' for now | | | | FastMonStreams | V00-02-10 | 2006-06-15 | V00-02-11 | not in a release; do not publish in WebSRT GenEnv | V00-05-01 | 2006-06-15 | V00-05-02 | GeneratorsApp | V00-02-00 | 2006-06-15 | V00-02-01 | dirty HEAD; use 'cvs -n update -A; ignore HEAD; private tag exists | | | | GeneratorsQA | V00-03-18-01 | 2006-06-15 | V00-03-18-02 | there is tag V00-03-20 which isn't in the nightly ` | | | V00-03-21 | make 'branch' tag V00-03-18-02 and mainstream one V00-03-21 | | | | publish V00-03-18-02 for the nightly; inform 'abi' HepRepServer | V00-08-05 | 2006-06-15 | V00-08-06 | IfrDetector | V00-13-08 | 2006-06-15 | V00-13-09 | IfrFastMon | V00-08-01 | 2006-06-15 | V00-08-01-01 | there is tag V00-08-02 which isn't in the nightly; HEAD is clean | | | V00-08-03 | make 'branch' tag V00-08-01-01 and mainstream one V00-08-03 | | | | publish V00-08-01-01 for the nightly | | | | IfrOpr | V00-06-01 | 2006-06-15 | V00-06-01-01 | dirty HEAD; use 'cvs -n update -A; changes on the HEAD are relevant | | | V00-06-04 | there is a newer tag V00-06-03 which isn't in nightly and 20.1.x | | | | make 'branch' tag V00-06-01-01 and mainstream one V00-06-04 | | | | publish V00-06-01-01 for the nightly | | | | IfrProxy | V01-02-03 | 2006-06-15 | V01-02-04 | dirty HEAD; use 'cvs -n update -A; ignore HEAD | | | | Kanga | V01-05-09 | 2006-06-15 | V01-05-10 | ATTENTION: a data member of 'CdbBdbInit*' found in KanConditions.rdl L1DctEnv | V00-06-05 | 2006-06-15 | V00-06-06 | L1TFMon | V00-06-05 | 2006-06-15 | V00-06-06 | L1TPlayback | V00-05-02 | 2006-06-15 | V00-05-03 | L3TLumi | V00-19-05 | 2006-06-15 | V00-19-06 | L3Trigger | V00-13-04 | 2006-06-15 | V00-13-05 | MatEnvP | V00-00-01 | 2006-06-15 | V00-00-03 | dirty HEAD; use 'cvs -n update -A | | | | there is a new tag 'V00-00-02' with translators (Akbar) | | | | do _NOT_ include them into the new tag 'V00-00-03' for now | | | | MatReco | V00-04-02 | 2006-06-15 | V00-04-02-01 | dirty HEAD; use 'cvs -n update -A | | | | there is a new tag 'V00-04-03' with translators (Akbar) | | | | do _NOT_ include them into the new tag 'V00-04-02-01' for now | | | | OepFrameworkApps | V00-07-00 | 2006-06-15 | V00-07-01 | ..symbols not found.. during linking, might be a tag missmatch | | | | in the nightly | | | | PepCond | V00-05-01 | 2006-06-16 | V00-05-01-01 | there is a new tag 'V00-05-02' with translators (Akbar) | | | | do _NOT_ include them into the new tag 'V00-05-01-01' for now | | | | PepFastMon | V01-01-01 | 2006-06-16 | V01-01-01-01 | there is a new tag V01-03-02 which is not in the nightly or 20.x | | | V01-03-03 | the previous tag V01-03-00 is used in 18.6.4 release | | | | skip newer tags and create 'branch' tag V01-01-01-01 for the nightly | | | | create 'mainstream' tag V01-03-03 as well | | | | PepSimGeomP | V00-03-00 | 2006-06-16 | V00-03-00-01 | there is a new tag 'V00-03-01' with translators (Akbar) | | | | do _NOT_ include them into the new tag 'V00-03-00-01' for now | | | | RecoBGFilter | V00-13-01 | 2006-06-16 | V00-13-01-01 | dirty HEAD; use 'cvs -n update -A; there are two (one private) above | | |gapon-20060616| skip newer tags and create 'branch' tag V00-13-01-01 for the nightly | | | | create 'mainstream' tag 'gapon-20060616' as well | | | | inform 'bartoldu' SvtCondModules | V00-08-07 | 2006-06-16 | V00-08-08 | SvtEnv | V00-08-02 | 2006-06-16 | V00-08-03 | SvtOep | V00-04-02 | 2006-06-16 | V00-04-03 | SvtOepApps | V00-03-02 | 2006-06-16 | V00-03-03 | SvtSimGeomP | V00-06-01 | 2006-06-16 | V00-06-01-01 | there is a new tag 'V00-06-02' with translators (Akbar) | | | | do _NOT_ include them into the new tag 'V00-06-01-01' for now TrgTags | V00-06-03 | 2006-06-16 | V00-06-04 | TrkEnvModules | V00-08-01 | 2006-06-16 | V00-08-02 | ------------------+--------------+------------+--------------+---------------------------- ____________________________________________________ 3.4.3.4 Tags published for the nightly June 16, 2006 BdbSequences V01-04-00 Bear V01-05-06 BgsApp V00-05-08-01 SimApp V00-10-03 TruthTools V00-13-02 BetaSequences V00-14-01 DchCondModules V01-06-01 DchOepSequences V00-03-01 DchProxy V01-08-01 DchSimGeomP V00-05-01-01 DetectorModel V01-04-02 DrcEnvP V00-00-03 DrcOepCalib V00-06-05 EmcAlign V00-04-04 EmcCalBhabha V00-08-05 EmcCalRadBb V00-05-03 EmcCalRoot V00-05-05 EmcCalibTooP V00-00-05 EmcDigiCalibP V00-00-04 EmcEnvP V00-01-01 EmcLayoutP V00-01-00-01 EmcOep V00-04-05 EmcOepMon V00-05-08 EmcOepSequences V00-05-08 EmcProxy V00-02-05 EmcSimGeomP V00-04-02-01 FastMonStreams V00-02-11 GenEnv V00-05-02 GeneratorsApp V00-02-01 GeneratorsQA V00-03-18-02 HepRepServer V00-08-06 IfrDetector V00-13-09 IfrFastMon V00-08-01-01 IfrOpr V00-06-01-01 IfrProxy V01-02-04 Kanga V01-05-10 L1DctEnv V00-06-06 L1TFMon V00-06-06 L1TPlayback V00-05-03 L3TLumi V00-19-06 L3Trigger V00-13-05 MatEnvP V00-00-03 MatReco V00-04-02-01 OepFrameworkApps V00-07-01 PepCond V00-05-01-01 PepFastMon V01-01-01-01 PepSimGeomP V00-03-00-01 RecoBGFilter V00-13-01-01 SvtCondModules V00-08-08 SvtEnv V00-08-03 SvtOep V00-04-03 SvtOepApps V00-03-03 SvtSimGeomP V00-06-01-01 TrgTags V00-06-04 TrkEnvModules V00-08-02 ____________________________________________ 4. Other core CDB API modules to be migrated The changes mentioned in this section can be commited at any time because they don't require neither 'lazy' initialization of CDB API not a presense of the CdbFwkModules package. The analyss of the code mentioned below has been made based on release 20.1.0 and nightly from June 8. _________________________ 4.1 BdbModules/BdbSetTime That module is by definition a technology-neutral one. It just needs to be moved into CdbFwkModules. The corresponding client code will have to be adjusted accordingly. This would include these C++ files: BdbCopyJob/AppUserBuild.cc BdbModules/BdbSetTime.cc Bear/AppUserBuild.cc DchData/AppUserBuild.cc DchEnv/testDchEnv.cc DchGeom/AppUserBuild.cc DchOep/testConfigDB.cc DchPid/AppUserBuild.cc DrcEnvP/AppUserBuild.cc DrcSequence/AppUserBuild.cc EmcAlign/AppUserBuild.cc EmcAlign/EmcAlignFromXtc.cc EmcCalBhabha/AUB-EmcBhabhaMCExtr.cc EmcCalBhabha/AUB-EmcOepSimL3Calib.cc EmcCalMinI/AppUserBuild.cc EmcCalPi0/AppUserBuild.cc EmcCalRadBb/AppUserBuild.cc EmcCalRadBb/bhabhaXtc.cc EmcCalRoot/bhabhaXdr.cc EmcCalRoot/bhabhaXtc.cc EmcOepSequences/EmcOepDisplayData.cc EmcOepSequences/EmcOepPlayCosmics.cc EmcPid/AppUserBuild.cc EmcReco/AppUserBuild.cc GeneratorsQA/AppUserBuild.cc HepRepServer/HesBearAppUserBuild.cc HepRepServer/HesXtcTcpAppUserBuildCommon.cc L1TNtuple/L1TNtupleMooseApp.cc MatReco/AppUserBuild.cc Moose/AppUserBuild.cc OprExamples/AppUserProxy.cc PepBkgMon/PepBkgMCApp.cc PepCond/AppUserBuild.cc PepCond/AppUserBuild.cc QaSimAppHists/AppUserBuild.cc SimUtils/SmuBkgCollShuffleApp.cc SvtCondModules/AppUserBuild.cc SvtEnv/AppUserBuild.cc SvtOep/AppUserBuildF.cc SvtOep/AppUserBuildTC.cc SvtOepApps/SvtFastMonSim.cc SvtOepApps/SvtOepDisplay.cc SvtSim/AppUserBuild.cc SvtSimGeomP/AppUserBuild.cc SvtSurvey/AppUserBuild.cc SwimTracks/AppUserBuild.cc.save TrkCombo/TrkComboSetup.cc TrkEnvModules/AppUserBuild.cc No changes in TCL files are needed as we're not changing the module name and also because AppUserBuild-s are instantiating the module directly, not hthrough an intermediate C++ 'sequence'. _____________________________ 4.2 BdbModules/BdbSetRevision That module is related to an aobsolete implementation of the original Condition/DB of BaBar (BdbCond package). It has to be removed from releases. The following C++ files need to be modified: Bear/BearInitAppSequence.cc BgsApp/BgsInitSequence.cc DrcEnvP/AppUserBuild.cc SimApp/CommonInitAppSequence.cc SvtEnv/AppUserBuild.cc SvtQC/AppUserBuild.cc TruthTools/AppUserBuild.cc The following TCL files have to be modified as well: Bear/BearInitAppSequence.tcl BgsApp/BgsInitSequence.tcl DrcEnvP/DrcEnvTest.tcl SimApp/CommonInitAppSequence.tcl ____________________________ 4.3 Worklog of the migration ----------------+--------------+------------+--------------+---------------------------- package | tag before | migrated | tag after | comments ----------------+--------------+------------+--------------+---------------------------- BdbModules | V02-03-01 | 2006-06-08 | V02-04-00 | CdbEvtModules | V00-02-02 | 2006-06-08 | V00-04-00 | ----------------+--------------+------------+--------------+---------------------------- BdbCopyJob | V00-04-00 | 2006-06-08 | V00-04-01 | Bear | V01-05-04 | 2006-06-08 | V01-05-05 | BgsApp | V00-05-07 | 2006-06-09 | V00-05-08 | DchData | V01-06-03 | 2006-06-08 | V01-06-04 | DchEnv | V00-08-01 | 2006-06-08 | V00-08-02 | DchGeom | V01-04-06 | 2006-06-08 | V01-04-07 | 'dirty' HEAD: 'cvs -n update -A'; ignore HEAD DchOep | V00-12-01 | 2006-06-08 | V00-12-02 | DchPid | V01-04-00 | 2006-06-08 | V01-04-01 | DrcEnvP | V00-00-01 | 2006-06-08 | V00-00-02 | DrcSequence | V00-08-01 | 2006-06-09 | V00-08-02 | EmcAlign | V00-04-02 | 2006-06-09 | V00-04-03 | EmcCalBhabha | V00-08-03 | 2006-06-09 | V00-08-04 | 'before' tag from the nightly June 8 | | | | 20.1.0 has V00-08-02; HEAD is clean EmcCalMinI | V00-05-01 | 2006-06-09 | V00-05-02 | EmcCalPi0 | V00-08-00 | 2006-06-09 | V00-08-01 | EmcCalRadBb | V00-05-01 | 2006-06-09 | V00-05-02 | EmcCalRoot | V00-05-03 | 2006-06-09 | V00-05-04 | EmcOepSequences | V00-05-06 | 2006-06-09 | V00-05-07 | EmcPid | V00-07-02 | 2006-06-09 | V00-07-03 | EmcReco | V00-13-12 | 2006-06-09 | V00-13-13 | 'before' tag from the nightly June 8; 20.1.0 has V00-13-09 | | | | 'dirty' HEAD: 'cvs -n update -A'; ignore HEAD | | | | GeneratorsQA | V00-03-18 | 2006-06-09 | V00-03-18-01 | there is tag V00-03-19 which isn't in the nightly | | | V00-03-20 | make 'branch' tag V00-03-18-01 and mainstream one V00-03-20 | | | | publish V00-03-18-01 for the nightly; inform 'abi' HepRepServer | V00-08-04 | 2006-06-09 | V00-08-05 | L1TNtuple | V00-11-01 | 2006-06-09 | V00-11-02 | MatReco | V00-04-01 | 2006-06-09 | V00-04-02 | Akbar will also do this package when refactoring it Moose | V01-01-01 | 2006-06-09 | V01-01-02 | OprExamples | V00-04-01 | 2006-06-09 | V00-04-02 | PepBkgMon | V00-03-01 | 2006-06-13 | V00-03-01-01 | 'dirty' HEAD: 'cvs -n update -A' | | | | there is a private tag above the 'before' one: wsl-2006Mar06 | | | | make 'branch' tag V00-03-01-01; publish it for the nightly; inform 'lockman' | | | | PepCond | V00-05-00 | 2006-06-09 | V00-05-01 | Akbar will also do this package when refactoring it QaSimAppHists | V00-03-02 | 2006-06-09 | V00-03-03 | SimApp | V00-10-01 | 2006-06-09 | V00-10-02 | SimUtils | V00-09-06-01 | 2006-06-09 | V00-09-06-02 |'before' tag from the nightly June 8; 20.1.0 has V00-09-06 | | | V00-09-09 | the newest tag is V00-09-08 | | | | no actual differences in relevant files in between V00-09-08 and V00-09-06-01 | | | | make 'branch' tag V00-09-06-02 and 'mainstream' one V00-09-09 | | | | publish V00-09-06-02 for the nightly; inform 'lockman' SvtCondModules | V00-08-06 | 2006-06-09 | V00-08-07 | SvtEnv | V00-08-01 | 2006-06-09 | V00-08-02 | SvtOep | V00-04-01 | 2006-06-09 | V00-04-02 | SvtOepApps | V00-03-01 | 2006-06-09 | V00-03-02 | SvtQC | V00-07-04 | 2006-06-09 | V00-07-05 | SvtSim | V00-08-02 | 2006-06-09 | V00-08-03 | SvtSimGeomP | V00-06-00 | 2006-06-09 | V00-06-01 | SvtSurvey | V00-03-03 | 2006-06-09 | V00-03-04 | SwimTracks | V00-04-02 | 2006-06-09 | V00-04-03 | TrkCombo | V00-08-03 | 2006-06-09 | V00-08-04 | 'dirty' HEAD: 'cvs -n update -A'; ignore HEAD TrkEnvModules | V00-08-00 | 2006-06-09 | V00-08-01 | TruthTools | V00-13-00 | 2006-06-09 | V00-13-01 | 'dirty' HEAD: 'cvs -n update -A'; ignore HEAD; private tag exists ----------------+--------------+------------+--------------+------------------------------------------------------------------------------ ________________________________________________ 4.4 Tags published for the nightly June 13, 2006 BdbModules V02-04-00 CdbEvtModules V00-04-00 BdbCopyJob V00-04-01 Bear V01-05-05 BgsApp V00-05-08 DchData V01-06-04 DchEnv V00-08-02 DchGeom V01-04-07 DchOep V00-12-02 DchPid V01-04-01 DrcEnvP V00-00-02 DrcSequence V00-08-02 EmcAlign V00-04-03 EmcCalBhabha V00-08-04 EmcCalMinI V00-05-02 EmcCalPi0 V00-08-01 EmcCalRadBb V00-05-02 EmcCalRoot V00-05-04 EmcOepSequences V00-05-07 EmcPid V00-07-03 EmcReco V00-13-13 GeneratorsQA V00-03-18-01 HepRepServer V00-08-05 L1TNtuple V00-11-02 MatReco V00-04-02 Moose V01-01-02 OprExamples V00-04-02 PepBkgMon V00-03-01-01 PepCond V00-05-01 QaSimAppHists V00-03-03 SimApp V00-10-02 SimUtils V00-09-06-02 SvtCondModules V00-08-07 SvtEnv V00-08-02 SvtOep V00-04-02 SvtOepApps V00-03-02 SvtQC V00-07-05 SvtSim V00-08-03 SvtSimGeomP V00-06-01 SvtSurvey V00-03-04 SwimTracks V00-04-03 TrkCombo V00-08-04 TrkEnvModules V00-08-01 TruthTools V00-13-01 ______________________________________________________ 5. Migrating 'payload' packages and Framework modules ___________________________________________ 5.1 Modules migrated by Akbar by June 16-th These modules have been refactored based on the 20.1.0 release. The 'before' tag is the one produced and tested by Akbar. This is a working section for validating and adjusting the tags. ------------------+--------------+------------+--------------+---------------------------- package | tag before | migrated | tag after | comments/actions ------------------+--------------+------------+--------------+---------------------------- BgsApp | V00-05-09 | 2006-06-16 | V00-05-10 | - still depends on (directly) persistent: DrcEnvP, EmcEnvP ------------------+--------------+------------+--------------+---------------------------- DchSimGeom | V01-00-03 | 2006-06-16 | V01-00-04 | - added CDBIMPORT list; cleared dependencies DchSimGeomP | V00-05-02 | 2006-06-16 | V00-05-03 | - merged with V00-05-01-01 ------------------+--------------+------------+--------------+---------------------------- DrcGeom | V00-10-04 | 2006-06-19 | V00-10-05 | - nightly, 20.1.0 and 18.6.4 are using V00-10-02; there was V00-10-03 | | | | - discard Akbar's changes because the CDBIMPORT list should be added | | | | to the actual consumer package: DrcSimGeom; create tag: V00-10-05 | | | V00-10-06 | DON'T PUBLISH IT FOR THE NIGHTLY!!! | | | | - create tag V00-10-06 excluding David Aston's modifications brough | | | | into V00-10-04 & V00-10-05. That would make V00-10-06 equal to the one | | | | found in the nightlies V00-10-02, and V00-10-05 equal to V00-10-03 DrcGeomP | V00-09-03 | 2006-06-17 | - | - no changes DrcSimGeom | V00-02-00 | 2006-06-16 | V00-02-01 | - added CDBIMPORT list; cleared dependencies ------------------+--------------+------------+--------------+---------------------------- EmcLayout | V01-01-01 | 2006-06-17 | V01-01-02 | - updated History EmcLayoutP | V00-01-01 | 2006-06-17 | V00-01-02 | - updated History; corrected dependencies EmcSimGeom | V00-04-02 | 2006-06-17 | V00-04-03 | - updated History EmcSimGeomP | V00-04-03 | 2006-06-17 | V00-04-04 | - updated History; corrected dependencies ------------------+--------------+------------+--------------+---------------------------- IfrGeom | V01-01-07 | 2006-06-18 | V01-01-08 | - discard Akbar's changes because the CDBIMPORT list should be added | | | | to the actual consumer package: IfrSimGeom; create tag: V01-01-08 | | | | DON'T PUBLISH IT FOR THE NIGHTLY!!! IfrGeomP | V01-01-05 | 2006-06-18 | V01-01-06 | - extended CDBEXPORT list for all persistent classes except: | | | | IfrIronRectPlateP.ddl: IfrIronRectPlate* transient(int) const; | | | | which is used only internally in package's DDL classes to implement | | | | some P::transient() methods. We also don't provide translators for | | | | the abstract base classes: IfrAbs*.ddl. IfrSimGeom | V00-04-02 | 2006-06-18 | V00-04-03 | - updated History; extended CDBIMPORT list IfrSimGeomP | V00-03-02 | 2006-06-18 | - | - no changes ------------------+--------------+------------+--------------+---------------------------- MatEnvP | V00-00-02 | 2006-06-19 | V00-00-06 | - merged with tag V00-00-03; fixed AppUserBuildTest.cc | | | | corrected dependencies | | | | - moved in the TCL file: MatReco/BdbCondUpdateMatTo11.3.0.tcl MatReco | V00-04-03 | 2006-06-19 | V00-05-00 | - cleaned the code after refactoring; corrected dependencies | | | | moved/corrected TCL files MatCoreEnv | V00-00-00 | 2006-06-19 | V00-00-01 | - moved the module MatEnvPrint back into "neutralized" MatReco ------------------+--------------+------------+--------------+---------------------------- PackageList | V00-13-20 | 2006-06-19 | V00-13-21 | - split PepCond into PepCond and PepCondP packages ------------------+--------------+------------+--------------+---------------------------- PepCond | V00-05-02 | 2006-06-20 | V01-00-00 | - Cleaned the code after refactoring. Updated README and History files. | | | | Merged with tag V00-05-01-01. | | | | NOTE: the new tag! PepCondP | V00-00-00 | 2006-06-19 | V00-00-01 | - cleaned the package after refactoring; set up correct dependencies PepSimGeom | V00-02-01 | 2006-06-18 | - | - no changes PepSimGeomP | V00-03-01 | 2006-06-18 | V00-03-02 | - updated History; cleaned code PepBdbEnv | V00-00-02 | 2006-06-19 | V00-00-03 | - (Akbar) adjusted because of moving DDL files from PepCond/ into PepCondP/ | | | V00-00-04 | - cleaned dependencies; publish V00-00-04 for the nightly PepOprCalib | V00-04-00 | 2006-06-19 | V00-04-01 | - (Akbar) adjusted because of moving DDL files from PepCond/ into PepCondP/ | | | V00-04-02 | - cleaned dependencies; publish V00-04-02 for the nightly PepCdbRConverters | V00-00-01 | 2006-06-19 | V00-00-02 | - (Akbar) adjusted because of moving DDL files from PepCond/ into PepCondP/ | | | V00-00-03 | - cleaned dependencies; publish V00-00-03 for the nightly DchGlobalAlign | V01-04-01 | 2006-06-19 | V01-04-02 | - (Akbar) adjusted because of moving DDL files from PepCond/ into PepCondP/ OdcPlunger | V01-01-00 | 2006-06-19 | V01-01-01 | - (Akbar) adjusted because of moving DDL files from PepCond/ into PepCondP/ | | | V01-01-02 | - cleaned dependencies; publish V01-01-02 for the nightly OdcProcessor | V02-00-00 | 2006-06-19 | V02-00-01 | - (Akbar) adjusted because of moving DDL files from PepCond/ into PepCondP/ | | | V02-00-03 | - cleaned dependencies; publish V02-00-02 for the nightly ------------------+--------------+------------+--------------+---------------------------- SvtSimGeom | V00-07-01 | 2006-06-18 | V00-07-02 | - discard Akbar's changes except the one done to 'link_SvtSimGeom.mk' | | | | because they bring three changes from the HEAD of CVS. Make a new | | | | tag based on V00-07-01 + CDBIMPORT list from Akbar's 'link_SvtSimGeom.mk' SvtSimGeomP | V00-06-02 | 2006-06-19 | V00-06-03 | - merged with tag V00-06-01-01 (core modules migration) ------------------+--------------+------------+--------------+---------------------------- Merge them with the recently published (for the June 16-th nightly, see sections 3.4.3.2 and 3.4.3.4), test with Elf and BgsApp and publish for the nightly. Get rid of XxxBdbEnv packages from the nightly. Send a request to David Lange. __________________________________________________ 5.1.1 Tags published for the nightly June 20, 2006 BgsApp V00-05-10 - still depends on (directly) persistent: DrcEnvP, EmcEnvP DchSimGeom V01-00-04 - added CDBIMPORT list; cleared dependencies DchSimGeomP V00-05-03 - merged with V00-05-01-01 DrcGeomP V00-09-03 - no changes DrcSimGeom V00-02-01 - added CDBIMPORT list; cleared dependencies EmcLayout V01-01-02 - updated History EmcLayoutP V00-01-02 - updated History; corrected dependencies EmcSimGeom V00-04-03 - updated History EmcSimGeomP V00-04-04 - updated History; corrected dependencies IfrGeomP V01-01-06 - extended CDBEXPORT list for all persistent classes except: IfrIronRectPlateP.ddl: IfrIronRectPlate* transient(int) const; which is used only internally in package's DDL classes to implement some P::transient() methods. We also don't provide translators for the abstract base classes: IfrAbs*.ddl. IfrSimGeom V00-04-03 - updated History; extended CDBIMPORT list IfrSimGeomP V00-03-02 - no changes MatEnvP V00-00-06 - merged with tag V00-00-03; fixed AppUserBuildTest.cc corrected dependencies - moved in the TCL file: MatReco/BdbCondUpdateMatTo11.3.0.tcl MatReco V00-05-00 - cleaned the code after refactoring; corrected dependencies moved/corrected TCL files MatCoreEnv V00-00-01 - moved the module MatEnvPrint back into "neutralized" MatReco PackageList V00-13-21 - split PepCond into PepCond and PepCondP packages PepCond V01-00-00 - Cleaned the code after refactoring. Updated README and History files. Merged with tag V00-05-01-01. NOTE: the new tag! PepCondP V00-00-01 - cleaned the package after refactoring; set up correct dependencies PepSimGeom V00-02-01 - no changes PepSimGeomP V00-03-02 - updated History; cleaned code PepBdbEnv - (Akbar) adjusted because of moving DDL files from PepCond/ into PepCondP/ V00-00-04 - cleaned dependencies; publish V00-00-04 for the nightly PepOprCalib - (Akbar) adjusted because of moving DDL files from PepCond/ into PepCondP/ V00-04-02 - cleaned dependencies; publish V00-04-02 for the nightly PepCdbRConverters - (Akbar) adjusted because of moving DDL files from PepCond/ into PepCondP/ V00-00-03 - cleaned dependencies; publish V00-00-03 for the nightly DchGlobalAlign V01-04-02 - (Akbar) adjusted because of moving DDL files from PepCond/ into PepCondP/ OdcPlunger - (Akbar) adjusted because of moving DDL files from PepCond/ into PepCondP/ V01-01-02 - cleaned dependencies; publish V01-01-02 for the nightly OdcProcessor - (Akbar) adjusted because of moving DDL files from PepCond/ into PepCondP/ V02-00-03 - cleaned dependencies; publish V02-00-02 for the nightly SvtSimGeom V00-07-02 - discard Akbar's changes except the one done to 'link_SvtSimGeom.mk' because they bring three changes from the HEAD of CVS. Make a new tag based on V00-07-01 + CDBIMPORT list from Akbar's 'link_SvtSimGeom.mk' SvtSimGeomP V00-06-03 - merged with tag V00-06-01-01 (core modules migration) ___________________________________________________ 5.1.2 Fixes following th epreviously published tags BdbCondLoaders V00-04-03 (by Matthias Steinke) - fixed because of PepCond/PepEnvLoad.hh moved into PepCondP / ___________________________________________ 5.2 Modules migrated by Akbar by June 23-rd These modules have been refactored based on the 'nightly-20060622' release. The 'before' tag is the one produced and tested by Akbar. This is a working section for validating and adjusting the tags. ------------------+--------------+------------+--------------+---------------------------- package | tag before | migrated | tag after | comments/actions ------------------+--------------+------------+--------------+---------------------------- DchGeomP | V01-00-04 | 2006-06-23 | V01-00-05 | - cleaned the code; updated History DrcGeomP | V00-09-04 | 2006-06-23 | V00-09-05 | - cleaned the code EmcGeomP | V00-01-08 | 2006-06-23 | V00-01-09 | - cleaned the code; updated History ------------------+--------------+------------+--------------+---------------------------- __________________________________________________ 5.2.1 Tags published for the nightly June 23, 2006 MatEnvP V00-00-06 - resubmitted this tag missing in the nightlies DchGeomP V01-00-05 DrcGeomP V00-09-05 EmcGeomP V00-01-09 _________________________________ 5.3 Refactoring of TRK and BField This efforts includes: - complete refactoring of BField - complete refactoring of TrkEnv* packages. Split persistent loader code into new package TrkEnvLoadersP - moved three proxies from TrkCdbProxies back into (now) technology-neutralized package TrkEnvModules These modules have been refactored based on the 'nightly-20060710' release. The 'before' tag is the one from that release. ------------------+--------------+------------+--------------+---------------------------- package | tag before | migrated | tag after | comments/actions ------------------+--------------+------------+--------------+---------------------------- CdbBase | V01-14-02 | 2006-07-07 | V01-14-03 | - extended API of persistent-to-transient translators ------------------+--------------+------------+--------------+---------------------------- CdbTools | V01-02-02 | 2006-07-10 | V01-03-02 | - extended 'CdbManager status' (not directly related to the refactoring) | | | | - split CdbManager's commands into a separate class | | | | - added an extended manager tool: CdbManagerExt.cc ------------------+--------------+------------+--------------+---------------------------- BFieldP | V00-05-02-01 | 2006-07-06 | V00-06-01 | - moved the proxy class BfpFieldProxyDB into TrkEnvModules | | | | - refactored as CDB 'provider' ------------------+--------------+------------+--------------+---------------------------- BdbCondLoaders | V00-04-03 | 2006-07-06 | V00-04-06 | - migration of TrkCondLoadSequence from TrkEnvModules to TrkEnvLoadersP TrkEnvModules | V00-08-02 | 2006-07-11 | V00-09-02 | - refactored, split loader code into the new package TrkEnvLoadersP TrkGeomP | V00-03-02 | 2006-07-11 | V00-04-00 | - refactored as CDB 'provider' TrkEnvLoadersP | N/A | 2006-07-11 | V00-00-00 | - new host for the Trk loading stuff TrkCdbProxies | V00-00-00 | 2006-07-11 | V00-01-00 | - moved Trk* proxies back into TrkEnvModules TrkCoreEnv | V00-00-00 | 2006-07-11 | V00-00-01 | - due to moved Trk* proxies from TrkCdbProxies into TrkEnvModules PackageList | V00-13-22 | 2006-07-13 | V00-13-24 | | | | | ------------------+--------------+------------+--------------+---------------------------- Results have been tested using the following test: % gmake TrkEnvLoadersP.all % addpkg workdir % gmake workdir.setup % cd workdir % cond18boot % setenv BDBDEBUG1 cout % TrkEnvLoadersPApp ../TrkEnvModules/TrkEnvTest.tcl __________________________________________________ 5.3.1 Tags published for the nightly July 14, 2006 CdbBase V01-14-03 - extended API of persistent-to-transient translators CdbTools V01-03-02 - extended 'CdbManager status' (not directly related to the refactoring) - split CdbManager's commands into a separate class - added an extended manager tool: CdbManagerExt.cc BFieldP V00-06-01 - moved the proxy class BfpFieldProxyDB into TrkEnvModules - refactored as CDB 'provider' BdbCondLoaders V00-04-06 - migration of TrkCondLoadSequence from TrkEnvModules to TrkEnvLoadersP TrkEnvModules V00-09-02 - refactored, split loader code into the new package TrkEnvLoadersP TrkGeomP V00-04-00 - refactored as CDB 'provider' TrkEnvLoadersP V00-00-00 - new host for the Trk loading stuff TrkCdbProxies V00-01-00 - moved Trk* proxies back into TrkEnvModules TrkCoreEnv V00-00-01 - due to moved Trk* proxies from TrkCdbProxies into TrkEnvModules PackageList V00-13-24 __________________________________________________ 5.3.2 Tags published for the nightly July 17, 2006 The tags listed below is a follow up to the list published earlier. The updated tags are meant to fix bugs introduced during the refactoring: TrkEnvModules V00-09-03 Fixed the non-standard file 'link_TrkBuildMicroEnv.mk' by adding an expicit dependency onto 'BFieldImpl'. That non-standard file is included by 'BetaSequences/BetaKanga.mk', which itself is conditionally included from 'BetaSequences/BetaExecutable.mk', which itself is included by the standard 'BetaSequences/link_BetaSequences.mk', and which is required to build 'BetaApp' from the 'BetaUser' package. The refactoring bug (in between tags: V00-08-02 and V00-09-02) was to remove an exlicit dependency onto 'BFieldP' which was depending onto 'BFieldImpl'. The bug was causing a non-found symbol complain at a link time of the 'BetaApp' from the 'BetaUser' package: .. libTrkEnvModules.a(TrkBuildMicroEnv.o)(.text+0x1327): In function `TrkBuildMicroEnv::beginJob(AbsEvent*)': undefined reference to `BfpFieldProxyFixed::BfpFieldProxyFixed(Hep3Vector const&, char const*, double)' .. CdbTools V01-03-03 Fixed a compilation problem for SunOS WS6 caused by an incomplete STL implementation on that platform (std::reverse_iterator doesn't respect default template arguments). ____________________________________________________________________________________________________ 5.4 Refactoring of FiltEnv* packages, new version of 'make-linkfiles', core CDB API x-tensions, etc. This efforts includes: - complete refactoring of FiltEnv* packages. Move the environment "building" module and th etechnology-neutral proxy from FiltEnvP into FiltEnv. - make adjustments to clients code (two below shown packages affected) - make adjustments to the previously refactored "client" packages to move all definitions of the CDBIMPORT variable from 'link_.mk' files into 'link_.mk+' files; rerun Mike's script 'make-linkfiles', commit and publish updated packages. - extend CDB API to allow storing new objects through the technology-neutral CDB API (the idea of object factory providers). - provide backward compatible "fake" package CdbFwkModules for 18.x series releases requested in this thread: http://babar-hn.slac.stanford.edu:5090/HyperNews/get/pkannounce/41180/1.html These modules have been refactored based on the 'nightly-20060718' release. The 'before' tag is the one from that release. ------------------+--------------+------------+--------------+---------------------------- package | tag before | migrated | tag after | comments/actions ------------------+--------------+------------+--------------+---------------------------- FiltEnv | V01-00-00 | 2006-07-19 | V01-01-01 | - migrated to the technology-neutral model of proxies/modules | | | | - added 'link_.mk+', regenerated 'link_.mk' ------------------+--------------+------------+--------------+---------------------------- BdbTclParmProxy | V00-01-01 | 2006-07-19 | V00-01-03 | - added 'link_.mk+', regenerated 'link_.mk' DchSimGeom | V01-00-04 | 2006-07-19 | V01-00-06 | - added 'link_.mk+', regenerated 'link_.mk' DrcSimGeom | V00-02-01 | 2006-07-19 | V00-02-03 | - added 'link_.mk+', regenerated 'link_.mk' EmcLayout | V01-01-02 | 2006-07-19 | V01-01-04 | - added 'link_.mk+', regenerated 'link_.mk' EmcSimGeom | V00-04-03 | 2006-07-19 | V00-04-05 | - added 'link_.mk+', regenerated 'link_.mk' IfrSimGeom | V00-04-03 | 2006-07-19 | V00-04-05 | - added 'link_.mk+', regenerated 'link_.mk' MatReco | V00-05-00 | 2006-07-19 | V00-05-02 | - added 'link_.mk+', regenerated 'link_.mk' PepCond | V01-00-00 | 2006-07-24 | V01-00-02 | - added 'link_.mk+', regenerated 'link_.mk' PepSimGeom | V00-02-01 | 2006-07-19 | V00-02-02 | - added 'link_.mk+', regenerated 'link_.mk' SvtSimGeom | V00-07-02 | 2006-07-19 | V00-07-03 | - added 'link_.mk+', regenerated 'link_.mk' TrkEnvModules | V00-09-02 | 2006-07-19 | V00-09-04 | - added 'link_.mk+', regenerated 'link_.mk' ------------------+--------------+------------+--------------+---------------------------- FiltEnvP | V00-00-00 | 2006-07-24 | V00-01-02 | - migrated to the technology-neutral model of proxies/modules Bear | V01-05-06 | 2006-07-24 | V01-05-08 | - follow up the refactoring of FiltEnv* ------------------+--------------+------------+--------------+---------------------------- RecoBGFilter | V00-13-01-01 | 2006-07-19 | V00-13-01-02 | - follow up the refactoring of FiltEnv*; make the "branch" tag | | | | based on V00-13-01-01; make the private tag based on the HEAD: | | | | gapon-20060719 ------------------+--------------+------------+--------------+---------------------------- CdbBase | V01-14-03 | 2006-07-20 | V01-15-00 | - technology-neutral API for transient-to-persistent translation of | | | | user defined 'payload' objects. CdbTests | N/A | 2006-07-20 | V00-00-00 | - the initial version of the package CdbBdbTests | V00-07-06 | 2006-07-20 | V00-07-07 | - turned into a provider of translators/factories; needed by CdbTests PackageList | V00-13-24 | 2006-07-20 | V00-13-25 | - added new package CdbTests with technology-neutral CDB API test applications CdbFwkModules | N/A | 2006-07-20 | V00-00-00-01 | - fake version of the package for 18.x releases; tested with refactored BgsApp in 18.7.0 | | | | NOTE: Do NOT publish this tag for the nightly! ------------------+--------------+------------+--------------+---------------------------- CdbRooReadonly | V02-00-07 | 2006-05-11 | V02-00-09 | - improved version of CdbRooBootMgr | | | | - fixed translation of 'boot' file names | | | | - NOTE: The tag is pretty old, mentioning it in here in a preparation | | | | for an official release build. ------------------+--------------+------------+--------------+---------------------------- __________________________________________________ 5.4.1 Tags published for the nightly July 24, 2006 FiltEnv V01-01-01 - migrated to the technology-neutral model of proxies/modules - added 'link_.mk+', regenerated 'link_.mk' BdbTclParmProxy V00-01-03 - added 'link_.mk+', regenerated 'link_.mk' DchSimGeom V01-00-06 - added 'link_.mk+', regenerated 'link_.mk' DrcSimGeom V00-02-03 - added 'link_.mk+', regenerated 'link_.mk' EmcLayout V01-01-04 - added 'link_.mk+', regenerated 'link_.mk' EmcSimGeom V00-04-05 - added 'link_.mk+', regenerated 'link_.mk' IfrSimGeom V00-04-05 - added 'link_.mk+', regenerated 'link_.mk' MatReco V00-05-02 - added 'link_.mk+', regenerated 'link_.mk' PepCond V01-00-02 - added 'link_.mk+', regenerated 'link_.mk' PepSimGeom V00-02-02 - added 'link_.mk+', regenerated 'link_.mk' SvtSimGeom V00-07-03 - added 'link_.mk+', regenerated 'link_.mk' TrkEnvModules V00-09-04 - added 'link_.mk+', regenerated 'link_.mk' FiltEnvP V00-01-02 - migrated to the technology-neutral model of proxies/modules Bear V01-05-08 - follow up the refactoring of FiltEnv* RecoBGFilter V00-13-01-02 - follow up the refactoring of FiltEnv*; make the "branch" tag based on V00-13-01-01; make the private tag based on the HEAD: gapon-20060719 CdbBase V01-15-00 - technology-neutral API for transient-to-persistent translation of user defined 'payload' objects. CdbTests V00-00-00 - the initial version of the package CdbBdbTests V00-07-07 - turned into a provider of translators/factories; needed by CdbTests PackageList V00-13-25 - added new package CdbTests with technology-neutral CDB API test applications CdbRooReadonly V02-00-09 - improved version of CdbRooBootMgr - fixed translation of 'boot' file names - NOTE: The tag is pretty old, mentioning it in here in a preparation for an official release build. __________________________________________________ 5.4.2 Tags published for the nightly July 28, 2006 CdbBase V01-15-02 - fixed bugs in an implementation of a function template (CdbPayloadUtils namespace) ___________________________________________________ 5.4.3 Tags published for the nightly August 7, 2006 CdbRooReadonly V02-00-10 - Created 'binlist' with the only entry: CdbRooBootMgr. Needed to manage production databases. ___________________________________________________ 5.4.4 Tags published for the nightly August 8, 2006 CdbRooReadonly V02-00-11 - Updated dependency files to ensure that package's applications are always built against the right technology ("Roo"). ________________________________ 5.5 Refactoring of Fct* packages This efforts includes: - complete refactoring of Fct* packages. This also includs the first use (in users' code) of the technology-nutral API for writing into CDB. The documentation is available in here: http://www.slac.stanford.edu/~gapon/CDB/Objy2Root/Doc/Workbook/Fct.txt ------------------+--------------+------------+--------------+---------------------------- package | tag before | migrated | tag after | comments/actions ------------------+--------------+------------+--------------+---------------------------- FctCondP | N/A | 2006-08-08 | V00-00-00 | - new package for DDL classes FctCond | V01-00-00 | 2006-08-08 | V01-01-00 | - move DDL classes into the dedicated package FctCondP Fctproxy | V01-00-03 | 2006-08-09 | V02-00-00 | - refactored to the technology-neutral CDB API for reading and writing | | | | NOTE: nightly tag was V01-00-02. However the package's PC | | | | suggested to merge our modifications with the newer tag. PackageList | V00-13-25 | 2006-08-09 | V00-13-26 | - add new package FctCondP ------------------+--------------+------------+--------------+---------------------------- ___________________________________________________ 5.5.1 Tags published for the nightly August 9, 2006 CdbBdb V01-07-02 - Added two out-of-box factories to be used in the technology-neutral transient-to-persistent CDB API objects storing scheme. ____________________________________________________ 5.5.1 Tags published for the nightly August 10, 2006 FctCondP V00-00-00 - new package for DDL classes FctCond V01-01-00 - move DDL classes into the dedicated package FctCondP FctProxy V02-00-00 - refactored to the technology-neutral CDB API for reading and writing NOTE: nightly tag was V01-00-02. However the package's PC suggested to merge our modifications with the newer tag. PackageList V00-13-26 - add new package FctCondP _______________________________ 5.6 Extend tech-neutral CDB API This efforts includes: - Added a technology-neutral way of storyng lists of objects through the new facility: CdbBase/CdbLoadList. It's based on the Objectivity-specific class: CdbBdb/CdbBdbLoadList. Also added a test for the extended interface. ------------------+--------------+------------+--------------+---------------------------- package | tag before | migrated | tag after | comments/actions ------------------+--------------+------------+--------------+---------------------------- CdbBase | V01-15-02 | 2006-08-14 | V01-15-03 | - extended CDB API with CdbLoadList to store lists of objects in tech-neutral way CdbTests | V00-00-00 | 2006-08-14 | V00-00-01 | - added the test for CdbBase/CdbLoadList ------------------+--------------+------------+--------------+---------------------------- ____________________________________________________ 5.6.1 Tags published for the nightly August 15, 2006 CdbBase V01-15-03 - extended CDB API with CdbLoadList to store lists of objects in tech-neutral way CdbTests V00-00-01 - added the test for CdbBase/CdbLoadList _________________________________________________________________________________ 5.7 Refactoring of: Elf, TrkGeom* and partial refactoring for IfrMuMuEff* classes This efforts includes: - migrated Elf from CdbBdbIit to CdbApiInitModule. This package missed the bulk migration being conducted ~2 months ago. - the final refactoring of TrkGeom* packages to allow storing tracking geometry using tech-neutral CDB API. The actual work has been perfrmed by Andy Salnikov. Modifications are based on the 'nightly-20060814' release. - refactored IfrMuMuEffP to become a CDB 'provider' of bi-directional persistent-transient translators; None of the other IfrMuMuEff code has been touched. he actual work has been perfrmed by Andy Salnikov. Modifications are based on the 'nightly-20060814' release. ------------------+--------------+------------+--------------+---------------------------- package | tag before | migrated | tag after | comments/actions ------------------+--------------+------------+--------------+---------------------------- Elf | V01-08-01 | 2006-08-15 | V01-08-02 | - this migration was left over from the bulk one CdbBase | V01-15-02 | 2006-08-16 | V01-16-02 | - redesigned CdbLoadList to allow user defined functions returning arbitrary types CdbTests | V00-00-00 | 2006-08-16 | V00-00-03 | - added a test for the recently extended CdbBase/CdbLoadList ------------------+--------------+------------+--------------+---------------------------- TrkGeom | V00-04-02 | 2006-08-15 | V00-04-03 | - migrated to the tech-neutral CDB API for storing objects (Andy) TrkGeomP | V00-04-00 | 2006-08-15 | V00-04-01 | - extended as a provider of CDB API factories for storing (Andy) IfrMuMuEffP | V00-01-02 | 2006-08-15 | V00-01-03 | - refactored IfrMuMuEffP to become a CDB 'provider' of translators (Andy) ------------------+--------------+------------+--------------+---------------------------- ____________________________________________________ 5.7.1 Tags published for the nightly August 16, 2006 Elf V01-08-02 - this migration was left over from the bulk one CdbBase V01-16-02 - redesigned CdbLoadList to allow user defined functions returning arbitrary types CdbTests V00-00-03 - added a test for the recently extended CdbBase/CdbLoadList ---- Published by Andy Salnikov ------------------------------------------------------------------- TrkGeom V00-04-03 - migrated to the tech-neutral CDB API for storing objects TrkGeomP V00-04-01 - extended as a provider of CDB API factories for storing IfrMuMuEffP V00-01-03 - refactored IfrMuMuEffP to become a CDB 'provider' of translators --------------------------------------------------------------------------------------------------- _________________________________ 5.8 Final refactoring of EmcGeomP This efforts includes: - added factories to EmcGeomP to turn it into a complete CDB 'provider' of bi-directional persistent-transient translators; None of the other EmcGeom* code has been touched. The actual work has been perfrmed by Andy Salnikov. Modifications are based on the 'nightly-20060815' release. ------------------+--------------+------------+--------------+---------------------------- package | tag before | migrated | tag after | comments/actions ------------------+--------------+------------+--------------+---------------------------- EmcGeomP | V00-01-09 | 2006-08-16 | V00-01-10 | - extended as a provider of CDB API factories for storing (Andy) ------------------+--------------+------------+--------------+---------------------------- ____________________________________________________ 5.8.1 Tags published for the nightly August 18, 2006 ---- Published by Andy Salnikov ------------------------------------------------------------------- EmcGeomP V00-01-10 - extended as a provider of CDB API factories for storing --------------------------------------------------------------------------------------------------- ________________________________________________________________________ 5.9 Partial refactoring of some Svt* packages; Dependency analysis tools This efforts includes: - turned two SVT packages into CDB 'providers'. The actual work has been perfrmed by Andy Salnikov. Modifications are based on the 'nightly-20060817' release. - added three dependency analysis tools to CdbAdmin: CdbDynDepPkgScanner.pl, CdbDynDepAppScanner.pl and CdbDynDepAnalyzer.pl. ------------------+--------------+------------+--------------+---------------------------- package | tag before | migrated | tag after | comments/actions ------------------+--------------+------------+--------------+---------------------------- CdbAdmin | V02-02-00 | 2006-08-16 | V02-02-05 | - Added three dependency analysis tools: CdbDynDep*.pl ------------------+--------------+------------+--------------+---------------------------- SvtElectronicsP | V00-05-00 | 2006-08-18 | V00-05-01 | - turned into a CDB 'provider' SvtGeomP | V00-03-05 | 2006-08-18 | V00-03-06 | - turned into a CDB 'provider' ------------------+--------------+------------+--------------+---------------------------- ____________________________________________________ 5.9.1 Tags published for the nightly August 18, 2006 CdbAdmin V02-02-05 - Added three dependency analysis tools: CdbDynDep*.pl ---- Published by Andy Salnikov ------------------------------------------------------------------- SvtElectronicsP V00-05-01 - turned into a CDB 'provider' SvtGeomP V00-03-06 - turned into a CDB 'provider' --------------------------------------------------------------------------------------------------- __________________________________________________ 5.10 Final refactoring of IFR rolling calibrations This efforts includes: - finished refactoring of IfrMuMuEff* related code. The 'IfrMuMuEffP' was initially refactored by Andy Salnikov. Some other packages were mostly refactored by Akbar Mokhtarani. The rest finished by myself. See the migration plan in here: http://www.slac.stanford.edu/~gapon/CDB/Objy2Root/Doc/Workbook/IfrMuMu.txt - migrated IfrCalibEfficiencies* code. Here is a list of packages touched/tagged with this effort: ------------------+--------------+------------+--------------+---------------------------- package | tag before | migrated | tag after | comments/actions ------------------+--------------+------------+--------------+---------------------------- IfrMuMuEffP | V00-01-03 | 2006-08-16 | V00-02-00 | - Refactored as CDB provider; move one constructor into a transient class ------------------+--------------+------------+--------------+---------------------------- IfrOffCondDataP | V00-05-02 | 2006-08-21 | V00-06-01 | - Partial refactoring as a CDB 'provider' of translators for | | | | the IfrCalibEfficienciesData_001 and IfrCalibEfficiencies_001 | | | | classes (the first class is used in the c-tor of the corresponding | | | | persistent one, and the second - in its "transient()" method). | | | | | | | | - Got rid of the out-dated persistent class IfrCalibDeadNoisyP. This class | | | | corresponds to a calibration which doesn't exist in BaBar CDB. | | | | | | | | - Moved a type definition for IfrCalibVector and the transient class | | | | IfrFecT0Corr into the transient packag IfrOffCondData. ------------------+--------------+------------+--------------+---------------------------- IfrOffCondData | V00-01-01 | 2006-08-21 | V00-02-01 | - Added the new class IfrCalibEfficienciesData_001 to serve as a transient | | | | input for the cporresponidng persistent class. This class also acomodates | | | | loading from an input file. The loading code has moved in from the persistent | | | | class. | | | | | | | | - Moved in the transient class IfrFecT0Corr which used to be in a persistent | | | | package. The change made to reverse package dependencies - now a persistent | | | | package would depend on th etransient (not vce versa, as it used to be | | | | in the older code). | | | | | | | | - Got rid of the class IfrCalibDeadNoisy as a part of a cleanup procedure for | | | | this out-of-dated calibration code which is no more in use in BaBar CDB. | | | | | | | | NOTE: This package didn't have link_.mk file! | | | | NOTE: The HEAD of CVS was 'dirty' and not tagged. Tagged it using | | | | the following private tag: 'gapon-20060816' before making any modifications | | | | to the package. Then put tag 'V00-05-02' back to the head of CVS and retagged | | | | as 'gapon-20060818'. ------------------+--------------+------------+--------------+---------------------------- IfrMuMuEff | V00-04-00 | 2006-08-16 | V00-05-01 | - refactored to the technology-neutral CDB API | | | | - added a special constructor to the IfrMuMuEff class to load objects | | | | of this class from an input file. | | | | - some minor code cleanup | | | | | | | | NOTE: The package also had the tag 'V00-04-01' pending for the nightly. | | | | the new tag produced here _excludes_ changes made in between | | | | 'V00-04-00' and 'V00-04-01'. See relevant discussion with IFR | | | | folks in a private e-mail thread. ------------------+--------------+------------+--------------+---------------------------- IfrOpr | V00-06-01-01 | 2006-08-21 | V00-07-01 | - Almost (except one client of the CalDatabase) migrated the code to | | | | the technology-neutral CDB API for storing calibrations. | | | | | | | | - Got rid of the out-dated and non-existing in BaBar CDB "dead-noise" | | | | calibration and relevant code (though some minor cleanup in | | | | the IfrOprCalibModule is still needed). ------------------+--------------+------------+--------------+---------------------------- IfrEnv | V00-15-04 | 2006-08-21 | V00-16-00 | - Got rid of a part of the environment's class interface which delivers | | | | a status of the "dead-noisy" channels. This coded corresponded to | | | | the out-dated calibration not existing in BaBar CDB. ------------------+--------------+------------+--------------+---------------------------- IfrSim | V00-13-05 | 2006-08-21 | V00-13-05-01 | - cleaned up the code because of a removal of the "dead and noisy" | | | | calibration code. Worked around modifications made in between | | | | 'V00-13-05' and 'V00-13-06'. | | | | | | | | NOTE: The package also had the tag 'V00-13-06' which has never been | | | | published for the nightly. We're going to work-around this tag | | | | and make a branch tag: V00-13-05-01 ------------------+--------------+------------+--------------+---------------------------- IfrProxy | V01-02-04 | 2006-08-21 | V01-03-03 | - Partial refactoring to the technology-neutral CDB API (only for | | | | the IfrMuMuEff calibratuion). | | | | | | | | - Refactored to the tech-neutral interface for the IfrCalibEfficiencies | | | | calibration. | | | | | | | | - Got rid of the "dead noise" calibration code since it's an out-dated | | | | calibration not existing in BaBar CDB. Related modifications have been made | | | | to TCL files. | | | | | | | | - Added a technology-neutral loader class IfrLdrT which is supposed to replace | | | | the Objectivity specific class IfrLdr as soon as the corresponding persistent | | | | classes will be migated. ------------------+--------------+------------+--------------+---------------------------- ___________________________________________ 5.11 Finished refactoring of IFR conditions This efforts includes: - final refactoring effort for the below listed packages to the tech-neutral CDB API model of serving conditions for both read and update modes. NOTE: Input tags for some packages (where it's mentioned below) are based not on the nightly, but rather on the previous refactoring efforts described at the section 5.10 above. Here is a list of packages touched/tagged with this effort: ------------------+--------------+------------+--------------+---------------------------- package | tag before | migrated | tag after | comments/actions ------------------+--------------+------------+--------------+---------------------------- IfrCabling | V00-01-04 | 2006-08-22 | V00-02-00 | - Added a transient class to be used for loading persistent objects | | | | using the technology-neutral CDB API | | | | - Moved in a parser of input files from the persistent package: IfrCablingP ------------------+--------------+------------+--------------+---------------------------- IfrCablingP | V00-02-03-01 | 2006-08-22 | V00-03-00 | - Refactored as a CDB 'provider' of translators and factories | | | | - Cleaned up code (got rid of unused code of the v-tables loaders). | | | | - Moved out a parser of input files into the transent package: IfrCabling | | | | | | | | NOTE: The package also has a series of "mainstream" tags after the one | | | | the nightly's branch one started (V00-02-03). The most recent one was 'V00-02-07'. | | | | None of them has ever been published for the nightly. So we're going | | | | to work-around this tag and make the new tag 'V00-03-00' based on | | | | the branch one. ------------------+--------------+------------+--------------+---------------------------- IfrOffCondData | V00-01-01 | 2006-08-29 | V00-02-02 | - Added the translation service from IfrAlignmentP into IfrGeom/IfrAlignT. | | | | - Moved in transient classes and data files from the persistent package | | | | IfrOffCondDataP. These entities are going to be shared between various | | | | persistent 'technologies' of CDB. This was also needed to make | | | | a clean transient/persistent refactoring of the higher IFR code. | | | | - Moved file parsers from some persistent classed into their local | | | | transient counterparts (IfrFecT0Corr, IfrStrMult, IfrT0Corr). | | | | - Updated package dependencies | | | | - Cleaned up the code of some classes to make them more readable. ------------------+--------------+------------+--------------+---------------------------- IfrOffCondDataP | V00-06-01 | 2006-08-22 | V00-06-02 | - Added the translation service from IfrAlignmentP into IfrGeom/IfrAlignT. | | | | | | 2006-08-29 | V00-06-03 | - Finished refactoring the package as a CDB 'provider' of bi-directional | | | | translation services for persistent-transient transformation. | | | | - Moved shared (among various CDB 'persistencies') transient classes and | | | | data into more appropriate packages. This was also needed to implement | | | | clean transient/persistent refactoring of the higher level IFR code. | | | | The files moved into IfrProxy and IfrOffCondData packages. | | | | - Moved text file parsers from persistent (DDL) classes into their | | | | transient counterparts. This would allow to avoid code duplication | | | | for multiple CDB persistencies. | | | | - Got rid of the obsolete forward declaration header file IfrStructure.hh. | | | | The only client of this declaration was IfrOpr, which has already been | | | | refactored. | | | | - Got rid of the obsolete application file AppUserBuild.cc as its | | | | functionality is fully duplicated by IfrOffTestApp.cc (which itself | | | | moved into the IfrProxy package) | | | | - Got rid of the obsolete virtual table initializer class | | | | IfrOffCondDataPVTblInit since its role moved into the translators/factories | | | | installer function: IfrOffCondDataPTranslators. | | | | - Updated package dependencies. | | | | Minor code clean up in some classes to make them more readable. ------------------+--------------+------------+--------------+---------------------------- IfrProxy | V01-03-03 | 2006-08-23 | V01-03-05 | - refactored IfrDetectorProxy to the tech-neutral CDB API | | | | | | 2006-08-29 | V01-03-06 | - Finished refactoring to the technology-neutral CDB API. The package has | | | | no more direct or indirect dependencies onto Objectivity/C++ API. ------------------+--------------+------------+--------------+---------------------------- IfrCorrections | V00-01-00 | 2006-08-22 | V00-02-00 | - Finished refactoring due to migration to the technology-neutral CDB API. | | | | - Minor code clean up. ------------------+--------------+------------+--------------+---------------------------- IfrCorrectionsP | V00-02-01 | 2006-08-22 | V00-03-00 | - refactored IfrDetectorProxy to the tech-neutral CDB API | | | | | | | | - moved module 'IfrBetaBuildEnv' into the transient package 'IfrProxy'. This step | | | | will eliminate doepemdemcies of this persistent package onto Framework | | | | related classes. It will also eliminate couplings between Ifr* classes | | | | and packages resulting in more "orthogonal" code. ------------------+--------------+------------+--------------+---------------------------- IfrGeom | V01-01-06 | 2006-08-23 | V01-02-00 | - accomodate input file parsers moved in from the persistent package | | | | IfrGeomP. Added new and modified existing transent classes to be | | | | created by the parsers. Objects of these classes will be used in normal | | | | constructors of the corresponding persistent classes from package IfrGeomP. | | | | | | 2006-08-29 | V01-02-01 | - minor code clean up in some classes to make it more readable. | | | | | | 2006-08-30 | V01-02-02 | - Fixed a compilation warning caused by the missing 'const' qualifier | | | | at a parameter of the method IfrLayerType::name(..). The qualifier | | | | is present in subclasses. ------------------+--------------+------------+--------------+---------------------------- IfrGeomP | V01-01-06 | 2006-08-23 | V01-02-00 | - added transient-to-persistent translation for three persistent | | | | classes: IfrRpcGeometryP, IfrRpcGeometryP and IfrStripDataP_001. | | | | Moved file parsers from these (and child) classes into the transient | | | | package IfrGeom. ------------------+--------------+------------+--------------+---------------------------- IfrPidUtils | V00-03-06 | 2006-08-25 | V00-04-00 | - refactored as a CDB 'consumer' of persistent/transient translation services | | | | | | 2006-08-29 | V00-04-01 | - simplified a design of class IfrDetectorConfigurationKey | | | | - updated package dependencies | | | | - minor code clean up in some classes to make it more readable. ------------------+--------------+------------+--------------+---------------------------- IfrPidP | V00-16-05 | 2006-08-25 | V00-17-00 | - refactored as a CDB 'provider' of persistent/transient translation services | | | | - moved IfrPidP/IfrPidObjyLoader and its relevant classes into the transient | | | | package IfrSequence for further refactoring to the tech-neutral CDB API | | | | - minor code clean up to get rid of compilation warnings | | | | - updated package dependencies ------------------+--------------+------------+--------------+---------------------------- IfrSequence | V00-15-02 | 2006-08-28 | V00-16-00 | - moved in a technology-neutral version of the IfrPidP/IfrPidObjyLoader | | | | and its relevant classes. | | | | - refactored as a CDB 'cobsumer' of the persistent-to-transient translation services | | | | for transient class IfrSampleSummary. | | | | - updated package dependencies ------------------+--------------+------------+--------------+---------------------------- BetaSequences | V00-14-01 | 2006-08-22 | V00-14-02 | - modifications due to a move of module 'IfrBetaBuildEnv' into a new home | | | | | | 2006-08-28 | V00-14-03 | - follow up a move of the IfrPidObjyLoader module from 'IfrPidP' to 'IfrSequence' ------------------+--------------+------------+--------------+---------------------------- IfrSimGeom | V00-04-05 | 2006-08-28 | V00-05-00 | - finished refactoring (Akbar) IfrSimGeomP | V00-03-02 | 2006-08-28 | V00-04-00 | - finished refactoring (Akbar) ------------------+--------------+------------+--------------+---------------------------- IfrOpr | V00-06-01-01 | 2006-08-29 | V00-07-02 | - A trivial fix in an implementation file of the module IfrOprCalibModule ------------------+--------------+------------+--------------+---------------------------- CdbBase | V01-16-02 | 2006-08-28 | V01-16-04 | - added one more constructor for CdbEnvProxy which is needed for | | | | for the NTuple's proxy ------------------+--------------+------------+--------------+---------------------------- CdbTable | V00-04-00 | 2006-08-28 | V00-04-01 | - added transient proxy template for tables ------------------+--------------+------------+--------------+---------------------------- CdbBdbTable | V00-03-02 | 2006-08-29 | V00-03-03 | - added a factory and a translator classes which are suitable for use in | | | | 'provider' packages. ------------------+--------------+------------+--------------+---------------------------- _____________________________________________________ 5.11.1 Tags published for the nightly August 31, 2006 [ The tags accumulate changes made at steps 5.10 and 5.11. ] CdbBase V01-16-04 - added one more constructor for CdbEnvProxy which is needed for for the NTuple's proxy CdbTable V00-04-01 - added transient proxy template for tables CdbBdbTable V00-03-03 - added a factory and a translator classes which are suitable for use in 'provider' packages. IfrMuMuEff V00-05-01 - refactored to the technology-neutral CDB API - added a special constructor to the IfrMuMuEff class to load objects of this class from an input file. - some minor code cleanup NOTE: The package also had the tag 'V00-04-01' pending for the nightly. the new tag produced here _excludes_ changes made in between 'V00-04-00' and 'V00-04-01'. See relevant discussion with IFR folks in a private e-mail thread. IfrMuMuEffP V00-02-00 - Refactored as CDB provider; move one constructor into a transient class IfrCabling V00-02-00 - Added a transient class to be used for loading persistent objects using the technology-neutral CDB API - Moved in a parser of input files from the persistent package: IfrCablingP IfrCablingP V00-03-00 - Refactored as a CDB 'provider' of translators and factories - Cleaned up code (got rid of unused code of the v-tables loaders). - Moved out a parser of input files into the transent package: IfrCabling NOTE: The package also has a series of "mainstream" tags after the one the nightly's branch one started (V00-02-03). The most recent one was 'V00-02-07'. None of them has ever been published for the nightly. So we're going to work-around this tag and make the new tag 'V00-03-00' based on the branch one. IfrOffCondData V00-02-02 - Added the translation service from IfrAlignmentP into IfrGeom/IfrAlignT. - Moved in transient classes and data files from the persistent package IfrOffCondDataP. These entities are going to be shared between various persistent 'technologies' of CDB. This was also needed to make a clean transient/persistent refactoring of the higher IFR code. - Moved file parsers from some persistent classed into their local transient counterparts (IfrFecT0Corr, IfrStrMult, IfrT0Corr). - Got rid of the class IfrCalibDeadNoisy as a part of a cleanup procedure for this out-of-dated calibration code which is no more in use in BaBar CDB. - Updated package dependencies - Cleaned up the code of some classes to make them more readable. NOTES: - The input nightly tag of the package didn't have link_.mk file! - The HEAD of CVS was 'dirty' and not tagged. Tagged it using the following private tag: 'gapon-20060816' before making any modifications to the package. Then put tag 'V00-05-02' back to the head of CVS and retagged as 'gapon-20060818'. IfrOffCondDataP V00-06-03 - Refactored the package as a CDB 'provider' of bi-directional translation services for persistent-transient transformation. - Moved shared (among various CDB 'persistencies') transient classes and data into more appropriate packages. This was also needed to implement clean transient/persistent refactoring of the higher level IFR code. The files moved into IfrProxy and IfrOffCondData packages. - Moved text file parsers from persistent (DDL) classes into their transient counterparts. This would allow to avoid code duplication for multiple CDB persistencies. - Got rid of the obsolete forward declaration header file IfrStructure.hh. The only client of this declaration was IfrOpr, which has already been refactored. - Got rid of the obsolete application file AppUserBuild.cc as its functionality is fully duplicated by IfrOffTestApp.cc (which itself moved into the IfrProxy package) - Got rid of the obsolete virtual table initializer class IfrOffCondDataPVTblInit since its role moved into the translators/factories installer function: IfrOffCondDataPTranslators. - Updated package dependencies. - Got rid of the out-dated persistent class IfrCalibDeadNoisyP. This class corresponds to a calibration which doesn't exist in BaBar CDB. - Minor code clean up in some classes to make them more readable. IfrCorrections V00-02-00 - Finished refactoring due to migration to the technology-neutral CDB API. - Minor code clean up. IfrCorrectionsP V00-03-00 - refactored IfrDetectorProxy to the tech-neutral CDB API - moved module 'IfrBetaBuildEnv' into the transient package 'IfrProxy'. This step will eliminate doepemdemcies of this persistent package onto Framework related classes. It will also eliminate couplings between Ifr* classes and packages resulting in more "orthogonal" code. IfrGeom V01-02-02 - accomodate input file parsers moved in from the persistent package IfrGeomP. Added new and modified existing transent classes to be created by the parsers. Objects of these classes will be used in normal constructors of the corresponding persistent classes from package IfrGeomP. - Fixed a compilation warning caused by the missing 'const' qualifier at a parameter of the method IfrLayerType::name(..). The qualifier is present in subclasses. - minor code clean up in some classes to make it more readable. IfrGeomP V01-02-00 - added transient-to-persistent translation for three persistent classes: IfrRpcGeometryP, IfrRpcGeometryP and IfrStripDataP_001. Moved file parsers from these (and child) classes into the transient package IfrGeom. IfrPidUtils V00-04-01 - refactored as a CDB 'consumer' of persistent/transient translation services - simplified a design of class IfrDetectorConfigurationKey - updated package dependencies - minor code clean up in some classes to make it more readable. IfrPidP V00-17-00 - refactored as a CDB 'provider' of persistent/transient translation services - moved IfrPidP/IfrPidObjyLoader and its relevant classes into the transient package IfrSequence for further refactoring to the tech-neutral CDB API - minor code clean up to get rid of compilation warnings - updated package dependencies IfrSimGeom V00-05-00 - finished refactoring by adding factories IfrSimGeomP V00-04-00 - finished refactoring by adding factories IfrProxy V01-03-06 - Refactored to the technology-neutral CDB API. The package has no more direct or indirect dependencies onto Objectivity/C++ API. - Got rid of the "dead noise" calibration code since it's an out-dated calibration not existing in BaBar CDB. Related modifications have been made to TCL files. IfrSequence V00-16-00 - moved in a technology-neutral version of the IfrPidP/IfrPidObjyLoader and its relevant classes. - refactored as a CDB 'cobsumer' of the persistent-to-transient translation services for transient class IfrSampleSummary. - updated package dependencies BetaSequences V00-14-03 - modifications due to a move of module 'IfrBetaBuildEnv' into a new home - follow up a move of the IfrPidObjyLoader module from 'IfrPidP' to 'IfrSequence' IfrSim V00-13-05-01 - cleaned up the code because of a removal of the "dead and noisy" calibration code. Worked around modifications made in between 'V00-13-05' and 'V00-13-06'. NOTE: The package also had the tag 'V00-13-06' which has never been published for the nightly. We're going to work-around this tag and make a branch tag: V00-13-05-01 ########################################################################################################### # There is another tag produced by Andy Salnkov, which already includes the modifications mentioned # below. # # IfrOpr V00-07-02 # - Almost (except one client of the CalDatabase) migrated the code to # the technology-neutral CDB API for storing calibrations. # - Got rid of the out-dated and non-existing in BaBar CDB "dead-noise" # calibration and relevant code (though some minor cleanup in # the IfrOprCalibModule is still needed). ########################################################################################################### IfrEnv V00-16-00 - Got rid of a part of the environment's class interface which delivers a status of the "dead-noisy" channels. This coded corresponded to the out-dated calibration not existing in BaBar CDB. _________________________________________________ 5.12 Finished refactoring of *SimGeom* conditions This efforts includes: - final refactoring effort for the *SimGeom* to allow technology-neutral writing into these conditions. NOTE: Input tags for some packages (where it's mentioned below) are based not on the nightly, but rather on the previous refactoring efforts described at the sections 5.10 and 5.11 above. Here is a list of packages touched/tagged with this effort: ------------------+--------------+------------+--------------+---------------------------- package | tag before | migrated | tag after | comments/actions ------------------+--------------+------------+--------------+---------------------------- SvtSimGeom | V00-07-03 | 2006-08-31 | V00-08-00 | - Finished refactoring to the technology-neutral CDB API. | | | | - Moved in loader module, a TCL file and a loading application from the persistent | | | | package SvtSimGeomP. Refactored the new code to the technology-neutral | | | | CDB API for writing into the database. | | | | - synchronized HEAD with the nightly tag (removed traces of the old | | | | development: new class SvtSimZFanout and relevant changes in svtginert_273.dat). | | | | The removed stuff is still available via tag: gapon-2006-04-02. | | | | - updated package dependencies | | | | - legacy to standard migration | | | | - fixed compilation warnings in constructors (members initialization order) ------------------+--------------+------------+--------------+---------------------------- SvtSimGeomP | V00-06-03 | 2006-08-31 | V00-07-00 | - Finished refactoring to the technology-neutral CDB API. | | | | - Moved loader module, a TCL file and a loading application into the transient | | | | package SvtSimGeom. | | | | - updated package dependencies ------------------+--------------+------------+--------------+---------------------------- EmcSimGeom | V00-04-05 | 2006-08-31 | V00-05-00 | - Finished refactoring to the technology-neutral CDB API. | | | | - Moved in loader module, a TCL file and a loading application from the persistent | | | | package EmcSimGeomP. Refactored the new code to the technology-neutral | | | | CDB API for writing into the database. | | | | - got rid of several compilation warnings | | | | - updated package dependencies ------------------+--------------+------------+--------------+---------------------------- EmcSimGeomP | V00-04-04 | 2006-08-31 | V00-05-00 | - Finished refactoring to the technology-neutral CDB API. | | | | - Moved loader module, a TCL file and a loading application into the transient | | | | package EmcSimGeom. | | | | - removed link_EmcSimGeomP.mk+ added into the package by a misstake. | | | | - updated package dependencies ------------------+--------------+------------+--------------+---------------------------- DchSimGeom | V01-00-06 | 2006-09-05 | V01-01-00 | - Added technology-neutral loading of objects into the database | | | | - Minor code clean up ------------------+--------------+------------+--------------+---------------------------- DchSimGeomP | V00-05-03 | 2006-09-05 | V00-06-00 | - Moved object loaders into the technology-neutral package DchSimGeom | | | | - Minor code clean up | | | | - Updated package dependencies ------------------+--------------+------------+--------------+---------------------------- PepSimGeom | V00-02-02 | 2006-09-05 | V00-03-00 | - Finished refactoring to the technology-neutral CDB API | | | | - Moved in loaders of conditions | | | | - Updated package dependencies | | | | - Minor code clean up ------------------+--------------+------------+--------------+---------------------------- PepSimGeomP | V00-03-02 | 2006-09-05 | V00-04-00 | - Finished refactoring to the technology-neutral CDB API | | | | - Moved loaders of conditions an drelevant files into the transient | | | | package PepSimGeom. | | | | - Updated package dependencies | | | | - Minor code clean up ------------------+--------------+------------+--------------+---------------------------- _______________________________________________________ 5.12.1 Tags published for the nightly September 1, 2006 SvtSimGeom V00-08-00 - Finished refactoring to the technology-neutral CDB API. - Moved in loader module, a TCL file and a loading application from the persistent package SvtSimGeomP. Refactored the new code to the technology-neutral CDB API for writing into the database. - synchronized HEAD with the nightly tag (removed traces of the old development: new class SvtSimZFanout and relevant changes in svtginert_273.dat). The removed stuff is still available via tag: gapon-2006-04-02. - updated package dependencies - legacy to standard migration - fixed compilation warnings in constructors (members initialization order) SvtSimGeomP V00-07-00 - Finished refactoring to the technology-neutral CDB API. - Moved loader module, a TCL file and a loading application into the transient package SvtSimGeom. - updated package dependencies EmcSimGeom V00-05-00 - Finished refactoring to the technology-neutral CDB API. - Moved in loader module, a TCL file and a loading application from the persistent package EmcSimGeomP. Refactored the new code to the technology-neutral CDB API for writing into the database. - got rid of several compilation warnings - updated package dependencies EmcSimGeomP V00-05-00 - Finished refactoring to the technology-neutral CDB API. - Moved loader module, a TCL file and a loading application into the transient package EmcSimGeom. - removed link_EmcSimGeomP.mk+ added into the package by a misstake. - updated package dependencies _______________________________________________________ 5.12.2 Tags published for the nightly September 6, 2006 DchSimGeom V01-01-00 - Added technology-neutral loading of objects into the database - Minor code clean up DchSimGeomP V00-06-00 - Moved object loaders into the technology-neutral package DchSimGeom - Minor code clean up - Updated package dependencies PepSimGeom V00-03-00 - Finished refactoring to the technology-neutral CDB API - Moved in loaders of conditions - Updated package dependencies - Minor code clean up PepSimGeomP V00-04-00 - Finished refactoring to the technology-neutral CDB API - Moved loaders of conditions an drelevant files into the transient package PepSimGeom. - Updated package dependencies - Minor code clean up __________________________________________________________________________________ 5.13 Extended CDB API to prevent "dead-locks", added CdbTransaction::abort(), etc. This efforts includes: - extending the API to allow underlying implementations to implement the "dead-locks"-free access to conditions. - extended API to allow 'aborting' transactions. Only CdbBdbShard got an actual maning to this operation. The MySQL one still needs to be completed. - left over migration from BdbCondInitSequence to CdbApiInitSequence - partial migration by Andy Salnikov NOTE: Input tags for some packages (where it's mentioned below) are based not on the nightly, but rather on the previous refactoring efforts described at the sections 5.10 and 5.11 above. Here is a list of packages touched/tagged with this effort: ---------------------+--------------+------------+--------------+---------------------------- package | tag before | migrated | tag after | comments/actions ---------------------+--------------+------------+--------------+---------------------------- CdbBase | V01-16-04 | 2006-08-31 | V01-17-01 | - Extended the method(s) CdbCondition::findObject() with the additional (optional) | | | | parameter "exclusiveAccess" to allow locking (whatever it means in an underlying | | | | persistent technology) conditions for update when reading a first object from | | | | theem. That measure is meant to help to cope with deadlocks when multiple | | | | parallel processes are attempting to update the same condition. | | | | - Bug fix in CdbLoadListTypes.hh | | | | | | 2006-09-01 | V01-18-00 | - added CdbTransaction::abort() ---------------------+--------------+------------+--------------+---------------------------- CdbBdb | V01-07-02 | 2006-09-01 | V01-08-00 | - implemented CdbTransaction::abort() for the "Bdb" technology ---------------------+--------------+------------+--------------+---------------------------- CdbBdbWrapper | V01-03-03 | 2006-08-31 | V01-04-00 | - Follow up the changed/extended CDB API. No changes in the behavior. ---------------------+--------------+------------+--------------+---------------------------- CdbBdbShared | V01-03-04 | 2006-08-31 | V01-04-00 | - Follow up the changed/extended CDB API. Actual implementation of | | | | the "exclusive access" feature. ---------------------+--------------+------------+--------------+---------------------------- CdbBdbTests | V00-07-07 | 2006-08-31 | V00-08-00 | - Added a test for the recently extended CDB API ("exclusive access"). | | | | | | 2006-09-01 | V00-08-01 | - Added a test for transactions in CdbSimplestWriteTest | | | | - Minor code refcatoring of CdbSimplestWriteTest ---------------------+--------------+------------+--------------+---------------------------- CdbSQL | V00-00-04