nicos system of nightly builds for distributed development alexander undrus chep’03
TRANSCRIPT
![Page 1: NICOS System of Nightly Builds for Distributed Development Alexander Undrus CHEP’03](https://reader030.vdocument.in/reader030/viewer/2022032606/56649e8e5503460f94b921ab/html5/thumbnails/1.jpg)
NICOS System of Nightly Builds for Distributed
Development
Alexander Undrus
CHEP’03
![Page 2: NICOS System of Nightly Builds for Distributed Development Alexander Undrus CHEP’03](https://reader030.vdocument.in/reader030/viewer/2022032606/56649e8e5503460f94b921ab/html5/thumbnails/2.jpg)
CHEP'03 - Alexander Undrus - NICOS system 2
Purpose of NICOS NIghtly COntrol System Provide flexible nightly build system for
coordination of distributed development Test new software submissions Send immediate feedback to developers Facilitate multi-person, multi-platform
development of code Ensure maximum stability of build
processes
![Page 3: NICOS System of Nightly Builds for Distributed Development Alexander Undrus CHEP’03](https://reader030.vdocument.in/reader030/viewer/2022032606/56649e8e5503460f94b921ab/html5/thumbnails/3.jpg)
CHEP'03 - Alexander Undrus - NICOS system 3
Flexible Build System Based on experience gained in software
management of large HEP projects (CLEO, ATLAS)
Operates on UNIX-like platforms (adaptation for Windows is planned)
Works with popular release tools (CMT, SCRAM, SRT)
Provides options for version management Allows optional number of releases in a
cycle
![Page 4: NICOS System of Nightly Builds for Distributed Development Alexander Undrus CHEP’03](https://reader030.vdocument.in/reader030/viewer/2022032606/56649e8e5503460f94b921ab/html5/thumbnails/4.jpg)
CHEP'03 - Alexander Undrus - NICOS system 4
Software Testing Unit tests supported by release
tools Success is determined by the return
value of a test Integrated tests defined at NICOS
configuration. Success criteria: Critical patterns in the output Comparison of histograms (under
development)
![Page 5: NICOS System of Nightly Builds for Distributed Development Alexander Undrus CHEP’03](https://reader030.vdocument.in/reader030/viewer/2022032606/56649e8e5503460f94b921ab/html5/thumbnails/5.jpg)
CHEP'03 - Alexander Undrus - NICOS system 5
Informing Developers NICOS dynamic web pages
Detailed status of builds is displayed on the project web page
Build summary web pages display results for individual packages and integrated tests
Responsible developers are notified about problems via e-mail
![Page 6: NICOS System of Nightly Builds for Distributed Development Alexander Undrus CHEP’03](https://reader030.vdocument.in/reader030/viewer/2022032606/56649e8e5503460f94b921ab/html5/thumbnails/6.jpg)
CHEP'03 - Alexander Undrus - NICOS system 6
Stability of builds Build process is divided into steps
Current step is displayed on the project web page
If any step fails, NICOS Controller tries to restart from the point of failure
Time limits are imposed for execution of steps NICOS job can be automatically killed
if runs overtime
![Page 7: NICOS System of Nightly Builds for Distributed Development Alexander Undrus CHEP’03](https://reader030.vdocument.in/reader030/viewer/2022032606/56649e8e5503460f94b921ab/html5/thumbnails/7.jpg)
NICOS Organization
NICOS Controller
NICOS Job
Error Analysis
Testing
Project Make
ProjectSetup
Code Checkout
PackagesDatabase
PackagesDatabase
ProjectDatabase
ProjectDatabase
NICOS Webmaster
Nicos WebServer
CHEP’03 - Alexander Undrus - NICOS system
7
![Page 8: NICOS System of Nightly Builds for Distributed Development Alexander Undrus CHEP’03](https://reader030.vdocument.in/reader030/viewer/2022032606/56649e8e5503460f94b921ab/html5/thumbnails/8.jpg)
CHEP'03 - Alexander Undrus - NICOS system 8
NICOS Project Database XML-like file with configuration parameters Each build step is associated with Markup tag Markup tag with parameters is followed by
commands for particular step
<project build dir=src>scram b<error analysis>NICOS_MAIL=“no”
![Page 9: NICOS System of Nightly Builds for Distributed Development Alexander Undrus CHEP’03](https://reader030.vdocument.in/reader030/viewer/2022032606/56649e8e5503460f94b921ab/html5/thumbnails/9.jpg)
CHEP'03 - Alexander Undrus - NICOS system 9
NICOS Packages Database Names of packages Method of CVS tag selection (for each
package) Exact tag Latest CVS tag Latest CVS tag with restrictions (e.g.
starting with some string) External script
Addresses of responsible developers
![Page 10: NICOS System of Nightly Builds for Distributed Development Alexander Undrus CHEP’03](https://reader030.vdocument.in/reader030/viewer/2022032606/56649e8e5503460f94b921ab/html5/thumbnails/10.jpg)
CHEP'03 - Alexander Undrus - NICOS system 10
NICOS Web Server (available in 0.2 version of NICOS)
Based on PHP scripts Version Administrator
Change conventions for tag selections Change e-mail addresses of developers Add/Delete packages
Project Configurator Configure project from internet
NICOS Job Controller (in 0.3 version of NICOS)
Show status of builds, stop/start builds All actions require admin privileges
![Page 11: NICOS System of Nightly Builds for Distributed Development Alexander Undrus CHEP’03](https://reader030.vdocument.in/reader030/viewer/2022032606/56649e8e5503460f94b921ab/html5/thumbnails/11.jpg)
NICOS Web Pages
CHEP’03 - Alexander Undrus - NICOS system
11
NICOS Project Page
NICOS Project Page
Build Results Build
Results
Project Configuration Page
Project Configuration Page NICOS Job
Controller
NICOS Job Controller
Project Configurator
Project Configurator
NICOS Version Administrator
NICOS Version Administrator
![Page 12: NICOS System of Nightly Builds for Distributed Development Alexander Undrus CHEP’03](https://reader030.vdocument.in/reader030/viewer/2022032606/56649e8e5503460f94b921ab/html5/thumbnails/12.jpg)
Example of NICOS Project
Web Page
CHEP’03 - Alexander Undrus - NICOS system
12
![Page 13: NICOS System of Nightly Builds for Distributed Development Alexander Undrus CHEP’03](https://reader030.vdocument.in/reader030/viewer/2022032606/56649e8e5503460f94b921ab/html5/thumbnails/13.jpg)
Example of NICOS Build
Results Web Page
CHEP’03 - Alexander Undrus - NICOS system
13
![Page 14: NICOS System of Nightly Builds for Distributed Development Alexander Undrus CHEP’03](https://reader030.vdocument.in/reader030/viewer/2022032606/56649e8e5503460f94b921ab/html5/thumbnails/14.jpg)
Example of NICOS Job Controller
Page
CHEP’03 - Alexander Undrus - NICOS system 14
![Page 15: NICOS System of Nightly Builds for Distributed Development Alexander Undrus CHEP’03](https://reader030.vdocument.in/reader030/viewer/2022032606/56649e8e5503460f94b921ab/html5/thumbnails/15.jpg)
Example of NICOS Version
Administrator Page
CHEP’03 - Alexander Undrus - NICOS system 15
![Page 16: NICOS System of Nightly Builds for Distributed Development Alexander Undrus CHEP’03](https://reader030.vdocument.in/reader030/viewer/2022032606/56649e8e5503460f94b921ab/html5/thumbnails/16.jpg)
CHEP'03 - Alexander Undrus - NICOS system 16
Schedule
Three phases of NICOS development
1. Basic functionalities2. NICOS Web Master, replacing shell
scripts3. NICOS Smart Configurator, consider
porting to Windows
Jan Feb Mar Apr May Jun July Sep Oct Nov Dec
Version 1Version 1
Version 2Version 2
Version 3Version 3
![Page 17: NICOS System of Nightly Builds for Distributed Development Alexander Undrus CHEP’03](https://reader030.vdocument.in/reader030/viewer/2022032606/56649e8e5503460f94b921ab/html5/thumbnails/17.jpg)
CHEP'03 - Alexander Undrus - NICOS system 17
NICOS projects Atlas Nightly Builds
Since autumn 2001 500 packages Several platforms and OS About hundred developers
POOL nightly builds Since February 2003
![Page 18: NICOS System of Nightly Builds for Distributed Development Alexander Undrus CHEP’03](https://reader030.vdocument.in/reader030/viewer/2022032606/56649e8e5503460f94b921ab/html5/thumbnails/18.jpg)
CHEP'03 - Alexander Undrus - NICOS system 18
Further Information ATLAS nightly builds web page
atlas.web.cern.ch/Atlas/GROUPS/SOFTWARE/OO/dist/nightlies/www/nightly_builds.html
NICOS web page www.usatlas.bnl.gov/computing/software/nicos/index.html
POOL nightly builds web page atlas.web.cern.ch/Atlas/GROUPS/SOFTWARE/OO/dist/nightlies/poolwww/index.html