Presentation is loading. Please wait.

Presentation is loading. Please wait.

EGEE is a project funded by the European Union under contract IST-2003-508833 build & integration system Framework & configuration Joachim Flammer Integration.

Similar presentations


Presentation on theme: "EGEE is a project funded by the European Union under contract IST-2003-508833 build & integration system Framework & configuration Joachim Flammer Integration."— Presentation transcript:

1 EGEE is a project funded by the European Union under contract IST-2003-508833 build & integration system Framework & configuration Joachim Flammer Integration Team JRA1 all-hands-meeting, RAL 28.06.2004 www.eu-egee.org

2 RAL JRA1 meeting, 28.06.04 - 2 Contents The GLite puzzle build system overview Integration process Some important build system aspects Adding new subsystem / components External libraries Configuration Documentation

3 RAL JRA1 meeting, 28.06.04 - 3 The glite puzzle RPM DLL MSI XSLT XML C++ ant auto- tools make testing Unit- testing QUALITY coverage check style RGMA Data- manage- ment WMS Security lb Confi- guration user automatic versions bugfixes CVS Releases Savannah Nightly builds cruise control Build machines maven Documen- tation WWW PDF User manual

4 RAL JRA1 meeting, 28.06.04 - 4 Build system overview Main ideas of glite build system  Ease development and the release of quality software  Common build system using ant  Three level hierarchy: Global – subsystem – component  Each component is individual module in CVS  Possibility to build on global/subsystem/component level  Uniform process as much as possible Use common elements (targets, settings …) / move up common stuff  Allow user settings to easily adapt system E.g. testing a new library  Provide src/bin tar ball  Produce installation pieces: rpm, dll (stay tuned for Roberts talk …)  Automatic build system (stay tuned for Marian’s talk …) Made by

5 RAL JRA1 meeting, 28.06.04 - 5 Integration process Integration started  Different subsystems are putting code in Training of developers  So far only a small group of developers involved  Integration team offered some training for developers – only minor fraction of developers involved  Is there a requirement for more training at the different sites? Information flow  We try to announce every major change well in advance  Information about build system changes is not propagated fast and widely enough  How to make sure that everybody knows what changes are done to the build system SUBYSTEM # of components ALIEN6 DATA13 LB5 RGMA5 SECURITY11 UI2 WMS15 7 subsystems 57 components

6 RAL JRA1 meeting, 28.06.04 - 6 Build structure glite org.glite org.glite.alien system data lb rgma security ui alien subsystem Org.glite.data. Catalog-interface Org.glite.data. Catalog-client-prel Org.glite.data. common org.glite.data org.glite.lb ● ● ● common catalog- interface catalog- client-perl component ● ● ● JRA1 CVS modules

7 RAL JRA1 meeting, 28.06.04 - 7 A typical build file properties dependencies taskdefs targets config Private targets command line baseline user component subsystem global command line user component subsystem global subsystem global subsystem global external Language java cpp-ant cpp-make perl python Language java cpp-ant cpp-make perl python For more details about see Robert’s talk …

8 RAL JRA1 meeting, 28.06.04 - 8 Global description e.g. targets Global description e.g. targets The content of the property: file prefix name url The content of the property: file prefix name url Properties in build system Use properties whenever possible in build files  Flexibility  Common approach  Maintainability Properties in build system should follow common naming convention Intuitive names prefix.central-part.suffix Part of build system, the property belongs to: global component subsystem external Part of build system, the property belongs to: global component subsystem external prefix You can get a list of the properties via ant print.properties to print all properties ant print.properties –Dproperty.regex=“ext.*” to print regex selected properties ant print.properties to print all properties ant print.properties –Dproperty.regex=“ext.*” to print regex selected properties central-part suffix

9 RAL JRA1 meeting, 28.06.04 - 9 Adding a new component/subsystem Scripts to automatic produce new components and subsystems  CVS module org.integration.administration global org.glite create_subsystem Subsystem org.glite.subsystem Components org.glite.subsystem.component create_component add_component add_subsystem Description on web page D e s c r i p t i o n o n w e b p a g e Adapt subsystem/components  e.g. add language targets, dependencies Put the module to CVS

10 RAL JRA1 meeting, 28.06.04 - 10 External dependencies Agree on one set of official external dependencies only  new version of external libraries have to agreed via the Change Control Board  Update to newest version now if necessary/possible … Common repository that contains all external dependencies  directory tree in repository to distinguish/support several versions and platforms  package_name  package_version  platform Each package contains  Necessary parts of external component in original vendor structure We will omit the included secondary components  one tarball with only the necessary parts but otherwise untouched package External packages are defined in org.glite/project/dependencies.properties file  Name  Description  Download place … We need your input !!!

11 RAL JRA1 meeting, 28.06.04 - 11 External dependencies II Building a module: External dependencies are copied to local repository  make sure that components use same version  allow standalone work (e.g. on a laptop without network connection) Possible places  Workspace (default): workspace/repository/…  Afs (CERN)  Common group server User can  (a) define place of his ‘local’ repository  (b) overwrite the default version numbers (e.g. to test a new version) CENTRAL HTTP REPOSITORY (CERN) CENTRAL HTTP REPOSITORY (CERN) LOCAL REPOSITORY (CERN - AFS) LOCAL REPOSITORY (CERN - AFS) LOCAL REPOSITORY (USER WORKSPACE) LOCAL REPOSITORY (USER WORKSPACE) LOCAL REPOSITORY (GROUP SERVER) LOCAL REPOSITORY (GROUP SERVER) Download (if not up to date)

12 RAL JRA1 meeting, 28.06.04 - 12 External dependencies - overview GLITEALIENR-GMADM WMSIntegration ant-contrib0.6 axis1.1 boost1.29 bouncy castle1.23 1.19.21.23 cgsi-soap2.6-1.1.3 checkstyle3.3 condor classADs0.9.5 condorG6.5.3 cpptasks1.0b2 Cppunit1.9.14 EDG Java Security1.5.10 EDG Java Security Client1.5.10 expat1.95.2 gfal1.3.2 1.3.2 ? gsi libs2.4 gSoap2.6 jas1.0.0-1 java1.4.2_04 1.4.1_01 java-cog1.1 UNDER INVESTIGATION – to be included by CPAN

13 RAL JRA1 meeting, 28.06.04 - 13 External dependencies - overview propo sed Package nameEGEE LCG 2 RGM A Datama nag.Integration ant-contrib0.6 axis1.1 boost1.29 bouncy castle1.23 1.19.21.23 checkstyle3.3 condor classADs0.9.5 condorG6.5.3 cpptasks1.0b2 EDG Java Security 1.5.9- 1 EDG Java Security Client 1.5.9- 1 expat1.95.2 gfal1.3.2 gsi libs2.4 gSoap2.6 jas 1.0.0- 1 java 1.4.2_ 04 1.4.1_ 01 java-cog1.1 jalopy 1.0b1 0 junit3.8.1 jxUtil 1.0.1- 1 lcg srm1.2.2 log4j1.2.8 1.2.6- 11.2.8 myproxy1.1.8 mySQL4.0.18 4.0.1 64.0.134.0.18 mySQL java driver 2.0.14 -1 openssl0.9.7 perl5.8 5.6 / 5.8 prevayler 1.3.3- 2 python2.3 2.2 / 2.3 swig 1.3.19 -1 tomcat4.1.30 trio1.4 xerces-C 1.7.0- 3 xerces-J 1.4.4- 12 xml commons 1.0.0. b2.1jp p 1.0- 0.b2.1 jpp xml Commons Apis 1.0.0. b2.1jp p 1.0- 0.b2.1 jpp GLITEALIENR-GMADMWMSIntegration jalopy1.0b10 Junit3.8.1 jxUtil1.0.1-1 lcg srm1.2.2 log4j1.2.8 1.2.6-11.2.8 myproxy1.1.8 mySQL4.0.18 4.0.134.0.18 mySQL java driver2.0.14-1 openssl0.9.7 perl5.8 5.6 / 5.8 prevayler1.3.3-2 python2.3 2.2 / 2.3 swig1.3.19-1 tomcat5.0.25 trio1.4 xerces-C1.7.0-3 xerces-J1.4.4-12 xml commons1.0.0.b2.1jpp 1.0-0.b2.1jpp xml Commons Apis1.0.0.b2.1jpp 1.0-0.b2.1jpp UNDER INVESTIGATION – to be included by CPAN

14 RAL JRA1 meeting, 28.06.04 - 14 Configuration – Where do we stand ? What we learned from the past  Configuration is a key functional/operational point  System must be easily configurable for inexperienced users  SA1 requirements Configuration – status quo  Configuration is distributed over several places and files  Each system uses their own configuration system Some values are repeated Some values might be obsolete Very heterogeneous systems –Attribute-value pair (R-GMA, DM) –Classads (WMS) –LDAP (Alien) –… Specialized Configuration scripts …

15 RAL JRA1 meeting, 28.06.04 - 15 Configuration – Important aspects Use a common structure for glite system  common places in file system (e.g. /opt/glite/etc/…)  common file type (plain text file, xml, structured file …)  common used variables (e.g. no replication of hostname …) Guide user in selecting the correct values  Default values for configuration wherever possible  Example values if feasible  Good documentation for each configuration value  Configuration tool  Human readable configuration files  be able to work without tools Mark/structure configuration elements according their “to be changed” type  Values that must be changed (e.g. hostname)  Values that could be changed (e.g. the port number)  Values that should (normally) not be changed (e.g. the ) Group/structure configuration elements according their system part  Globally used configuration values  Subsystem configuration values  Component configuration values Make system configurable  Internal structure of components …

16 RAL JRA1 meeting, 28.06.04 - 16 Configuration – Important aspects II Local/remote configuration  Keep configuration locally as file  Have central configuration server  Combination of both Update of configurations  Update via configuration server?  Pulling model  Push model Different types of configuration different types of system  User configuration  Server configuration  Cluster configuration Retrieve Configuration information  by user  by administrator  by help center

17 RAL JRA1 meeting, 28.06.04 - 17 Configuration – Getting to a common glite system Meeting of design team to discuss various ideas Investigate current configurations of the subsystems in more detail  What type of configuration ?  Try to structure configuration elements  Identify common elements  Understand reason for different configuration tools and their needs  Understand configuration needs  Start documenting configuration values, default values … Try to come up with a common structure I will need your help !!!

18 RAL JRA1 meeting, 28.06.04 - 18 Documentation Learning more about the Integration  JRA1 Integration Team web pages http://egee-jra1-integration.web.cern.ch/ egee-jra1-integration/  JRA1 CVS web access pages http://jra1mw.cvs.cern.ch:8180/  Software Configuration Management plan Version 1.0 https://edms.cern.ch/document/446241/1.0  Developers guide https://edms.cern.ch/document/468700/0.1

19 RAL JRA1 meeting, 28.06.04 - 19 Summary Integration process in build system  Major problems so far for different subsystems ?  More training necessary ?  Information flow ok ? Tools for integration in build system  Scripts for component/subsystem creation  Other scripts necessary? External libraries  Finalize common set of external libraries Configuration  Important aspects  Next steps …


Download ppt "EGEE is a project funded by the European Union under contract IST-2003-508833 build & integration system Framework & configuration Joachim Flammer Integration."

Similar presentations


Ads by Google