framework for automated builds natalia ratnikova chep’03
TRANSCRIPT
![Page 1: Framework for Automated Builds Natalia Ratnikova CHEP’03](https://reader036.vdocument.in/reader036/viewer/2022072011/56649e2e5503460f94b1e261/html5/thumbnails/1.jpg)
Framework for Automated Builds
Natalia Ratnikova
CHEP’03
![Page 2: Framework for Automated Builds Natalia Ratnikova CHEP’03](https://reader036.vdocument.in/reader036/viewer/2022072011/56649e2e5503460f94b1e261/html5/thumbnails/2.jpg)
25 March 2003 N. Ratnikova BOA: Framework for Automated Builds 2
Project Goals
Facilitate software maintenance, help to improve software quality in the areas of software development, release management and distribution processes with the aids of the automated builds.
Systematize available tools and components and put them all to work together in a highly automated fashion.
Provide knowledge base management system for the automated software builds.
![Page 3: Framework for Automated Builds Natalia Ratnikova CHEP’03](https://reader036.vdocument.in/reader036/viewer/2022072011/56649e2e5503460f94b1e261/html5/thumbnails/3.jpg)
25 March 2003 N. Ratnikova BOA: Framework for Automated Builds 3
System Requirements
Set up tools to collect code tags and automatically build the corresponding software on the range of supported CMS platforms.
Hyperlinked log files for builds should be provided.
The system should also support building of pre-releases, releases and even private test builds.
![Page 4: Framework for Automated Builds Natalia Ratnikova CHEP’03](https://reader036.vdocument.in/reader036/viewer/2022072011/56649e2e5503460f94b1e261/html5/thumbnails/4.jpg)
25 March 2003 N. Ratnikova BOA: Framework for Automated Builds 4
Analyzing Existing Systems
Nightly ATLAS software releases on Linux platformhttp://www.usatlas.bnl.gov/computing/software/nightlies/www/nightly_builds.html
Night builds of ALICE off-line softwarehttp://alisoft.cern.ch/offline/aliroot-pro/nightbuilds.html
CDF run II software managementhttp://cdfkits.fnal.gov/
Continuous integration with CruisecontrolHttp://cruisecontrol.sourceforge.Net/
GCC testing efforts http://gcc.gnu.org/testing/
… and many others
![Page 5: Framework for Automated Builds Natalia Ratnikova CHEP’03](https://reader036.vdocument.in/reader036/viewer/2022072011/56649e2e5503460f94b1e261/html5/thumbnails/5.jpg)
25 March 2003 N. Ratnikova BOA: Framework for Automated Builds 5
CMS Case Study
Massive software development.Over 300 public software releases for the last 15 months.
World-wide distributed development.
Multiple software projects with anisochronous release schedule.
Cross dependencies between projects.
External products and tools (from 5 to 45)
Multiple platforms
compiler and OS upgrades …
![Page 6: Framework for Automated Builds Natalia Ratnikova CHEP’03](https://reader036.vdocument.in/reader036/viewer/2022072011/56649e2e5503460f94b1e261/html5/thumbnails/6.jpg)
25 March 2003 N. Ratnikova BOA: Framework for Automated Builds 6
CMS Case Study(cont)Versatile supporting tools and services are already available in the CMS environment:
Source Code Repositoryand Versions Management
SCRAM Configuration, Build andRelease Management
Oval
Validation Tests Framework
Warning Filter
Build Output Parser and Publisher
ProjectsWatch
Release Monitoring and Notification
SCRAM Tool Box
External Software Configuration Repository
PacmanUniversalSoftwareInstaller
![Page 7: Framework for Automated Builds Natalia Ratnikova CHEP’03](https://reader036.vdocument.in/reader036/viewer/2022072011/56649e2e5503460f94b1e261/html5/thumbnails/7.jpg)
25 March 2003 N. Ratnikova BOA: Framework for Automated Builds 7
CMS Case Study
Main challenge: Configuration Cross-projects dependencies.
Plenty of detailed specific information.
Changing requirements and infrastructure.
Lack of standardization for regular operations.
Complicated and dynamic dependencies between components.
Site specific configuration management (most tedious and error-prone operations).
![Page 8: Framework for Automated Builds Natalia Ratnikova CHEP’03](https://reader036.vdocument.in/reader036/viewer/2022072011/56649e2e5503460f94b1e261/html5/thumbnails/8.jpg)
25 March 2003 N. Ratnikova BOA: Framework for Automated Builds 8
BOA Solutions:MODEL:
Look for invariants in the complex system
Abstract the structure from the functionality, and the functionality from the implementation
IMPLEMENTATION:Accumulate and systematize the knowledge base
Provide standard interfaces to inter-changeable components
PROCESS:Cyclic development and early prototyping
Constantly testing and documenting
![Page 9: Framework for Automated Builds Natalia Ratnikova CHEP’03](https://reader036.vdocument.in/reader036/viewer/2022072011/56649e2e5503460f94b1e261/html5/thumbnails/9.jpg)
25 March 2003 N. Ratnikova BOA: Framework for Automated Builds 9
Handles installation specific information and algorithms
System Architecture
Installation
DomainDomain
VersionsVersionsVersionsVersionsVersions
ProjectProjectProjects
Maintains list of projects, site dependent information, defines projects types, provides access to projects user interface
Maintains list of versions.Implements type specific operations.
Maintains different types of installation (e.g. Release, Nightly, Integration…). Contains configuration requirements.
![Page 10: Framework for Automated Builds Natalia Ratnikova CHEP’03](https://reader036.vdocument.in/reader036/viewer/2022072011/56649e2e5503460f94b1e261/html5/thumbnails/10.jpg)
10N. Ratnikova BOA: Framework for Automated Builds25 March 2003
BOA Framework Architecture
KnowledgeBase
Inference Engine
User Interface
Shell
UserDomain independent(in principle)
Domaindependent
Corresponds to basic expert system architecture
![Page 11: Framework for Automated Builds Natalia Ratnikova CHEP’03](https://reader036.vdocument.in/reader036/viewer/2022072011/56649e2e5503460f94b1e261/html5/thumbnails/11.jpg)
25 March 2003 N. Ratnikova BOA: Framework for Automated Builds 11
System Features
Proposed architecture allows to separate services from the implementation details
supports multiple types of projects: scramified, pacmanized… and builds: releases, nightlies,…
allows for customized configuration on the domain level
provides convenient user interface with built-in help and standard interfaces to the underlying pluggable components.
domain database keeps track of multiple projects, versions, installations and their status
![Page 12: Framework for Automated Builds Natalia Ratnikova CHEP’03](https://reader036.vdocument.in/reader036/viewer/2022072011/56649e2e5503460f94b1e261/html5/thumbnails/12.jpg)
25 March 2003 N. Ratnikova BOA: Framework for Automated Builds 12
Implementation and Status
First experience with Perl-written prototype while providing solid base for algorithmic part of the system, did not allow required flexibility in configuration. Object oriented model has been developed, base BOA classes and their responsibilities have been identified and implemented in Python. Base classes: Framework, Domain, Project, Version, Installation, Platform,… and their major subclasses are implemented.
![Page 13: Framework for Automated Builds Natalia Ratnikova CHEP’03](https://reader036.vdocument.in/reader036/viewer/2022072011/56649e2e5503460f94b1e261/html5/thumbnails/13.jpg)
25 March 2003 N. Ratnikova BOA: Framework for Automated Builds 13
Implementation and Status (Cont)
Utilities module provides support for: Users command line interface with built-in help (based on standard python module cmd) Child-parent components architecturePersistency mechanisms (pickle)Abstract factory for support multiple types of componentsLogger with built-in timer
Work on the algorithmic part and standard interfaces to the components is currently in progress.