Download presentation
Presentation is loading. Please wait.
Published byRoderick Caldwell Modified over 8 years ago
1
Experiencing in using ETICS, a multi-platform and open source build and test system for big software projects Elisabetta Ronchieri INFN CNAF 5 July 2011, Computing R&D Workshop, Ferrara, Italy
2
Overview ETICS course – From ‘ETICS in Plain English’ by Lorenzo Dini, 10 January 2010, CERN Experience as user Experience in using ETICS, a multi-platform and open source build and test system for big software projects, Elisabetta Ronchieri 27/5/2011
3
Overview ETICS course – From ‘ETICS in Plain English’ by Lorenzo Dini, 10 January 2010, CERN Experience as user Experience in using ETICS, a multi-platform and open source build and test system for big software projects,Elisabetta Ronchieri 37/5/2011
4
ETICS Chronicles ETICS stands for “E-infrastructure for Testing, Integration and Configuration of Software” It was funded by the European Commission on January 2006 and February 2008. ETICS 2 ended on February 2010 It was a consortium of 8 partners Now it is provided by CERN and part of EMI It is also maintained by Engineering Ingegneria Informatica Experience in using ETICS, a multi-platform and open source build and test system for big software projects, Elisabetta Ronchieri 47/5/2011
5
The ETICS System ETICS in Plain English, Lorenzo Dini57/5/2011 INFSO-RI-223782 Continuous software build, test and QA system – Checkout, Build, Test, Code Analysis Metrics, Reports, Packages Versatile dependency management system – Build/Test dependencies, Metapackages, Release definition Extensive collection of ready-to-use third-party libraries Extensive multi-platform virtualized infrastructure Independent from any specific language, build or test tool – CVS, SVN, Make, Ant, Maven, Java, Python, C/C++, Bash,... Plugin framework for tools integration – JUnit, FindBugs, Checkstyle, PyUnit, PyCoverage, CCCC, … Open repository of configuration metadata, packages and build, test and QA reports. With YUM generation
6
Architecture 67/5/2011 INFSO-RI-223782 Experience in using ETICS, a multi-platform and open source build and test system for big software projects, Elisabetta Ronchieri
7
Command-line Client 77/5/2011 INFSO-RI-223782 ETICS in Plain English, Lorenzo Dini
8
The ETICS Portal 87/5/2011 INFSO-RI-223782 ETICS in Plain English, Lorenzo Dini
9
Data Model: Basic Concepts It is compliant with the standard CIM model (Configuration Information Model) It defines: – Modules: objects representing software Components or an aggregation of components to be managed as a units of functionality or deployment (Subsystems), or Projects – Configurations: unique versions of a component, or a subsystem, or a project A module can have 0, 1 or many Configurations Each configuration: – can only belong to one Module – contains an aggregation of more specific objects to fully define its identity and behaviour, like platform, checkout command, build command, and so on Platform is a particular combination of operating system distribution, processor architecture, and c++ compiler version – A Defulat platform contains configuration objects that are platform-independent 7/5/2011 Experience in using ETICS, a multi-platform and open source build and test system for big software projects 9 INFSO-RI-223782
10
The Configuration Web Client 107/5/2011 INFSO-RI-223782 ETICS in Plain English, Lorenzo Dini
11
The Repository Web Client 117/5/2011 INFSO-RI-223782 ETICS in Plain English, Lorenzo Dini
12
Data Model: Component versions and dependencies MY PROJECT UTILSSERVICE EXTERNALS TOMCAT BOOST JDK UTILSWA … CLIENT 1.6 1.4 1.5 v. 3 v. 1.3.7 v. 2.1.8 v. 1 v. 2 Experience in using ETICS, a multi-platform and open source build and test system for big software projects, Elisabetta Ronchieri 127/5/2011 INFSO-RI-223782 Project Subsystem Component Configuration
13
Data Model: Defining releases Release v. 1.0.0 Service v. 2.1.0Utils v. 1.1.0 MY PROJECT UTILSSERVICE UTILSWACLIENT v. 3 v. 1.3.7 v. 1 v. 2 v. 2.1.8 v. 1.1.0 Experience in using ETICS, a multi-platform and open source build and test system for big software projects, Elisabetta Ronchieri 137/5/2011 INFSO-RI-223782 Project Subsystem Component Configuration v. 1 v. 1.3.7 v. 2.1.8
14
Data Model: Metapackages MY PROJECT UTILSSERVICE EXTERNALS TOMCAT JDK UTILSWACLIENT 1.6 1.4 1.5 v. 3 v. 1.3.7v. 1 v. 2 1.5 1.4 v. 2.4.5 MPKG 1.0 Experience in using ETICS, a multi-platform and open source build and test system for big software projects, Elisabetta Ronchieri 147/5/2011 INFSO-RI-223782 Project Subsystem Component Configuration Metapackage
15
Dependencies Automatic build-order resolution WHEN? Build-time: pointer to binaries made available Run-time: REQUIRES added in package WHICH VERSION? Static: hardcoded by the component Dynamic: decided at project level Version based: Dynamic with >= X.Y.Z 157/5/2011 INFSO-RI-223782 Experience in using ETICS, a multi-platform and open source build and test system for big software projects, Elisabetta Ronchieri
16
Properties Key-Value Pairs for customization CUSTOM Inherited, overwritable, isolated enable.optimization=yes DEFAULT Used to manipulate dependencies MySQL.DEAFULT=mysql v 5.0.28 SYSTEM Used to tune the system package.buildarch=noarch Used to load the system information libdir location Experience in using ETICS, a multi-platform and open source build and test system for big software projects, Elisabetta Ronchieri 167/5/2011 INFSO-RI-223782
17
Typical ETICS Build Execution Sequence etics-get-projectetics-checkoutetics-build Extract metadata information about a project from the ETICS DB Extract configuration information from the ETICS DB and source/binary packages from different repositories cvssvnhttp Execute the build operations make ant Unit tests, coverage, compliance, packaging, reporting 177/5/2011 INFSO-RI-223782 ETICS in Plain English, Lorenzo Dini
18
The ETICS Packager ETICS contains an automated packaging system, the ETICS Packager It uses configuration metadata to create package or packages for a given platform (RPMS, deb, MSIs, tarballs, zip files etc) It covers about 80% of the packaging needs of a typical software component It can be overridden by the users in various ways to get more specific behaviours Developers focus on the code not the packaging for N different packaging systems, it allows to enforce consistent packaging guidelines 187/5/2011 INFSO-RI-223782 ETICS in Plain English, Lorenzo Dini
19
The Repository ETICS provides an online repository where all software packages and build, test and QA reports are stored The Repository generates dynamic YUM repository at every build to automate the execution of deployment, integration and functional tests It can be browsed and queried using a web application with a REST interface (XPATH and SQL syntax), a command-line client or a mountable file system (AFS-based) 197/5/2011 INFSO-RI-223782 ETICS in Plain English, Lorenzo Dini
20
Plugins and Metrics Collectors The ETICS system is plugin-based Plugins are wrappers around existing or custom tools providing specific functionality Can be activated by user choice (profiles) or letting ETICS decide which tools are most appropriate (autoprofile) Plugins can publish information in the ETICS system as metrics used to do trend analysis and quality monitoring using the ETICS reporting tools 207/5/2011 INFSO-RI-223782 ETICS in Plain English, Lorenzo Dini
21
Examples of metrics collectors MetricsTypeProgramming languages/ technologies ToolETICS Plugin ComplexitystaticJava, PythonJavancssJCcnPlugin PyComplexityPlugin.py Design qualitystaticJavaJdependJDependPlugin N of potential bugsstaticC/C++, Python, Perl, PHP Java Flawfinder, RATS, PMD, Findbugs CFlawfinderPlugin CPyPhpRatsPlugin JPmdPlugin JFindbugsPlugin N of potential bugsdynamicC/C++ValgrindCValgrindPlugin Lines of codestaticAllSLOCCountSLOCCountPlugin CoveragedynamicJavaEmma, Cobertura PyCoverage, LCOV JUnitemmaPlugin JCoberturaPlugin Unit tests success rate dynamicJava, PythonJUnit PyUnit JUnitPlugin JUnitreportsPlugin.py PyUnitPlugin.py Compliance with standards staticIPv6, WSIIPv6Plugin WSInteroperabilityPlugin ProfilingdynamicC/C++, JavaJrat, ValgrindJRatPlugin CValgrindPlugin 217/5/2011 INFSO-RI-223782 ETICS in Plain English, Lorenzo Dini
22
Example of ETICS metric report 7/5/2011 Experience in using ETICS, a multi-platform and open source build and test system for big software projects 22 CCN = Cyclomatic Complexity Number
23
Screenshot of dashboard 237/5/2011 INFSO-RI-223782 ETICS in Plain English, Lorenzo Dini
24
Overview ETICS course – From ‘ETICS in Plain English’ by Lorenzo Dini, 10 January 2010, CERN Experience as user Experience in using ETICS, a multi-platform and open source build and test system for big software projects, Elisabetta Ronchieri 247/5/2011
25
In case of StoRM The StoRM software is structured in several components: – written mainly in C++ and Java by different people – managed by autotool, ant and maven A StoRM project is being added into ETICS since ETICS 2, supported and maintained by the INFN partner of ETICS 2 – Provided changes in all components to handle non hard-coded dependencies – Requested all needed dependencies to the ETICS support team Now StoRM is a subsystem inside the EMI project of ETICS Most of the StoRM components provides a custorm spec file – Improved spec files according to fedora guidelines 7/5/2011 Experience in using ETICS, a multi-platform and open source build and test system for big software projects, Elisabetta Ronchieri 25
26
In case of WNoDeS The WNoDeS software is structured in several components: – written mainly in Python – managed by autotool A WNoDeS project is being added into ETICS since the end of May 2011 – Triggered Nightly Build by a cron file executed on a machine at INFN CNAF – Re-engineered WNoDeS software to be compliant with the python best practices and the fedora guidelines 7/5/2011 Experience in using ETICS, a multi-platform and open source build and test system for big software projects, Elisabetta Ronchieri 26
27
9 Steps to adopt the ETICS system 1.Asking the ETICS support to register your software project into the ETICS system and to give to your project manager permission to access it 2.Modelling your software project in terms of subsystem and components 3.Defining the project structure containing all modules that are part of a specific version of the project 4.Defining the project configuration (representing a specifc version of the project) containing one and only one configuration of one or more of the project components and subsystems relevant to prepare a specific release of the project 7/5/2011 Experience in using ETICS, a multi-platform and open source build and test system for big software projects, Elisabetta Ronchieri 27
28
9 Steps to adopt the ETICS system 5.Composing the configuration structrue, the tree of configurations attached to a project configuration 6.Identifying dependencies of your software 7.Asking the ETICS support to register dependencies into the ETICS repository when necessary 8.Asking the ETICS support to register your software project users into the ETICS system 9.Granting your siftware project users with the appropriate role on modules and configurations 7/5/2011 Experience in using ETICS, a multi-platform and open source build and test system for big software projects, Elisabetta Ronchieri 28
29
Considerations: Pros Trigger a build on several platforms Adhere custom scemarios: Maintaining just one configuration with several platforms easily compiling in different platforms Maintaining just one configuration per platform completely independent of changes in the other platforms Verify local build results remotelly Simplify handling of dependencies Automate the creation of a YUM repository with the contents of the builds Provide a public repository for your artefacts 7/5/2011 Experience in using ETICS, a multi-platform and open source build and test system for big software projects 29
30
Considerations: Pros Uniform the build environment of your components Improve the quality of your software thanks to the reports of the metrics calculated during the builds Produce artefacts for different distributions and operating systems Require few effort after the first porting of a software project into ETICS Ask central level to provide you with private resoruces in case of licensed external packages (like oracle) Be well-supported by the ETICS team 7/5/2011 Experience in using ETICS, a multi-platform and open source build and test system for big software projects 30
31
Considerations: Cons Local build can be unconsistent with the remote one due to a mismatch between build environments – The use of a virtual machine that replicates a remote resource of ETICS can be a solution Remote build is often time consuming – A local machine dedicated to the ETICS builds can represent a workaround Software components versions set in several locations such as ETICS configuration, configure.ac, build.xml, pom.xml, Makefile, can cause values’ discrepancy and be error prones – Be carful during the update of the version An initial training is necessary to use ETICS properly An expert packager needs no more than two weeks to port a software product 7/5/2011 Experience in using ETICS, a multi-platform and open source build and test system for big software projects 31
32
Considerations: Cons The ETICS packager does not support all rpm build functionalities – A custom spec file can be a solution Private resources at central level can be provided after a long time – An ETICS infrastructure can be installed and configured on software projct side if resources are available Guest user can look at information of all the projects metadata registered into ETICS – Software products that have strict privacy requirements can perceive this as a big issue 7/5/2011 Experience in using ETICS, a multi-platform and open source build and test system for big software projects 32
33
Useful Links ETICS Portal – https://etics.cern.ch/eticsPortal/ https://etics.cern.ch/eticsPortal/ ETICS Documentation – http://etics.web.cern.ch/etics/ http://etics.web.cern.ch/etics/ FAQs – https://web.infn.it/etics-support/index.php/faq2 https://web.infn.it/etics-support/index.php/faq2 Mailing list – etics-support@cern.ch 7/5/2011 Experience in using ETICS, a multi-platform and open source build and test system for big software projects 33
34
Thanks... 7/5/2011 Experience in using ETICS, a multi-platform and open source build and test system for big software projects 34
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.