90 likes | 272 Views
Proposal: Factorize PWGs and core AliRoot. Alina Grigoras Jan Fiete Grosse-Oetringhaus Peter Hristov Offline Meeting, 10.02.14. Proposal. Some parts of AliRoot change more frequently than others AN tag often only for analysis code Split AliRoot into two parts PWG = (PWG, PWGCF, PWGDQ, …)
E N D
Proposal: Factorize PWGs and core AliRoot Alina Grigoras Jan Fiete Grosse-Oetringhaus Peter Hristov Offline Meeting, 10.02.14
Proposal • Some parts of AliRoot change more frequently than others • AN tag often only for analysis code • Split AliRoot into two parts • PWG = (PWG, PWGCF, PWGDQ, …) • 9 folders in total = 0.3 GB • CORE = STEER, subdetectors, OCDB, OADB, ANALYSIS, etc. • I.e. everything else = 0.9 GB • Separate repositories • Separate tagging • CORE for example monthly, or on request • PWG twice weekly (like AN tags now) CORE PWG Jan Fiete Grosse-Oetringhaus
Tagging • Separate tagging, for example • CORE for example monthly, or on request • PWG twice weekly (like AN tags now) GEANT3 ROOT COREv1 COREv2 PWGv1 PWGv2 PWGv3 PWGv4 PWGv5 Jan Fiete Grosse-Oetringhaus
Some Comments • Advantages • Stable CORE part • Regular PWG tags lead to faster build & smaller archive • Committers to PWG don't need to update CORE part on each commit • Implications for users • Need to download one package more • Detector developers may not need PWG package • Need to build one package more • May build into same directory, no change in includes, library path required • AliRoot download script can do this transparently • Implications for train operators • Selection of PWG tag instead of AliRoot tag, dependencies automatic Jan Fiete Grosse-Oetringhaus
How much work? • Split git repositories (Alina) • Split cmake files (Alina, Peter) • Adapt build server (Alina) • Adapt train system (JF) • Adapt MonALISA scripts (Alina, Costin) • Adapt AliRoot download scripts (Dario?) • Adapt documentation Jan Fiete Grosse-Oetringhaus
Backup Jan Fiete Grosse-Oetringhaus
Mumbling about Future Directions • Users send their code to expert (PWG responsible or conveners) for committing (pushing) • What does the expert do? • Import the code, compile, load libraries, push • No functional checks are done usually • Why? If user code crashes no one else is affected (train test catches this user is excluded) • Can we automatize this? Jan Fiete Grosse-Oetringhaus
An Open Repository? • Each user has write access to own branch (created by "git branch user_jgrosseo") • NB. name "user_<username>" allows access control PWG tag git master not ok? email ok? merge check branch jgrosseo ok? merge not ok? email check commit/push branch grigoras Build server commit/push Jan Fiete Grosse-Oetringhaus
Mumbling about Future Directions • Power users which still use the Grid manually argue that AN tags are too infrequent for their work • Possible solution: daily tagging of PWG part • Requires automatic system • Before tagging, code is compiled and checked if libraries can be loaded (few functional tests if at all) • If we know that the master compiles (see previous slide), the PWG tag could be automatic ("nightly builds") Jan Fiete Grosse-Oetringhaus