Tools and software process for the FLP prototype B. von Haller 9. June 2015 CERN.

Slides:



Advertisements
Similar presentations
Software change management
Advertisements

Update on Version Control Systems: GitLab, SVN, Git, Trac, CERNforge
Wellcome Trust Centre for Gene Regulation & Expression College of Life Sciences, University of Dundee Dundee, Scotland, UK Continuous Integration 0.
CWG2 Tools, Guidelines and Procedures 16 December 2014 ALICE O 2 Asian Workshop
Configuration Management Process and Environment MACS Review 1 February 5th, 2010 Roland Moser PR a-RMO, February 5 th, 2010 R. Moser 1 R. Gutleber.
Quality Control B. von Haller 8th June 2015 CERN.
SPI Software Process & Infrastructure GRIDPP Collaboration Meeting - 3 June 2004 Jakub MOSCICKI
Lecture 8 – Platform as a Service. Introduction We have discussed the SPI model of Cloud Computing – IaaS – PaaS – SaaS.
SPI Software Process & Infrastructure EGEE France - 11 June 2004 Yannick Patois
Hall C Software Development From the perspective of a user.
Introduction to Git and GitHub
Putting What We Learned Into Context – WSGI and Web Frameworks A290/A590, Fall /16/2014.
 To explain the importance of software configuration management (CM)  To describe key CM activities namely CM planning, change management, version management.
GIT An introduction to GIT Source Control. What is GIT (1 of 2) ▪ “Git is a free and open source distributed version control system designed to handle.
A. Aimar - EP/SFT LCG - Software Process & Infrastructure1 Software Process panel SPI GRIDPP 7 th Collaboration Meeting 30 June – 2 July 2003 A.Aimar -
Configuration Management (CM)
Overview of LHCb applications and software environment LHCb software tutorial - March
Ernst Peter Tamminga Get started with GitHub XCESS expertise center b.v. Netherlands.
Information Systems and Network Engineering Laboratory II DR. KEN COSH WEEK 1.
INFSO-RI Module 01 ETICS Overview Etics Online Tutorial Marian ŻUREK Baltic Grid II Summer School Vilnius, 2-3 July 2009.
Continuous Integration and Code Review: how IT can help Alex Lossent – IT/PES – Version Control Systems 29-Sep st Forum1.
SEAL Core Libraries and Services CLHEP Workshop 28 January 2003 P. Mato / CERN Shared Environment for Applications at LHC.
Migration from Savannah to JIRA Alina Grigoras A.
B. Hegner, P. Mato, P. Mendez CERN, PH-SFT Group 1 ST FORUM CERN 28-SEP-2015 THE QUALITY AND TESTING INFRASTRUCTURE OF PH-SFT.
Optimal Pipeline Using Perforce, Jenkins & Puppet Nitin Pathak Works on
Servicing HEP experiments with a complete set of ready integrated and configured common software components Stefan Roiser 1, Ana Gaspar 1, Yves Perrin.
Software Engineering Overview DTI International Technology Service-Global Watch Mission “Mission to CERN in Distributed IT Applications” June 2004.
G.Govi CERN/IT-DB 1 September 26, 2003 POOL Integration, Testing and Release Procedure Integration  Packages structure  External dependencies  Configuration.
Separate distribution of the analysis code (and more) P. Hristov 19/03/2014.
A python-based testing infrastructure Colin Bernet (IPNL)
ATS code development workflow Group Name: TST WG Source: Mahdi Ben Alaya, TST WG vice chair, SENSINOV, Miguel.
INFSO-RI JRA2 Test Management Tools Eva Takacs (4D SOFT) ETICS 2 Final Review Brussels - 11 May 2010.
CERN AI Config Management 16/07/15 AI for INFN visit2 Overview for INFN visit.
The ALICE data quality monitoring Barthélémy von Haller CERN PH/AID For the ALICE Collaboration.
ATS code development workflow Group Name: TST WG Source: Mahdi Ben Alaya, TST WG vice chair, SENSINOV, Miguel.
Information Systems and Network Engineering Laboratory I DR. KEN COSH WEEK 1.
Advancing CernVM-FS and its Development Infrastructure José Molina Colmenero CERN EP-SFT.
Software collaboration tools as a stack of services Borja Aparicio Cotarelo IT-PES-IS 2HEPiX Fall 2015 Workshop.
Pyragen A PYTHON WRAPPER GENERATOR TO APPLICATION CORE LIBRARIES Fernando PEREIRA, Christian THEIS - HSE/RP EDMS tech note:
Using Git with collaboration, code review, and code management for open source and private projects. & Using Terminal to create, and push commits to repositories.
DECTRIS Ltd Baden-Daettwil Switzerland Continuous Integration and Automatic Testing for the FLUKA release using Jenkins (and Docker)
Barthélémy von Haller CERN PH/AID For the ALICE Collaboration The ALICE data quality monitoring system.
Testing and Release Procedures/Tools Cristina Aiftimiei (INFN-CNAF) Mario David (LIP)
Agenda:- DevOps Tools Chef Jenkins Puppet Apache Ant Apache Maven Logstash Docker New Relic Gradle Git.
Chapter 10, Software Configuration Management
Web application hosting with Openshift, and Docker images
IT Services Katarzyna Dziedziniewicz-Wojcik IT-DB.
Web application hosting with Openshift, and Docker images
External Web Services Quick Start Guide
CS4961 Software Design Laboratory I Collaboration using Git and GitHub
Integration Methodology and Procedures
SPI external software build tool and distribution mechanism
Transition from git.cern.ch
Open-O O-Parent Project Proposal
Platform as a Service.
A Canonical Production January 2013
API Documentation Guidelines
Jenkins Work-Flow Improvements and CMake Find-Module Standardization
Validation & conformity testing
Simplified Development Toolkit
SISAI STATISTICAL INFORMATION SYSTEMS ARCHITECTURE AND INTEGRATION
Module 01 ETICS Overview ETICS Online Tutorials
Google App Engine Ying Zou 01/24/2016.
Git CS Fall 2018.
Software Development - Version Control
CI/CD Workflow and Event Pages
Final Review 27th March Final Review 27th March 2019.
PyWBEM Python WBEM Client: Overview #2
Erik Vollebekk Application Architect
SSDT, Docker, and (Azure) DevOps
Presentation transcript:

Tools and software process for the FLP prototype B. von Haller 9. June 2015 CERN

Overview ▶ Scope ▶ FLP prototype ▶ O2 ▶ Software development ▶ Software quality ▶ Software deployment ▶ Continuous Integration ▶ Specific to FLP proto : B. von Haller | CWG11 |

▶ Operating Systems ▶ SLC6, CC7, Ubuntu, Mac ▶ Compilers ▶ Gcc, llvm, icc ▶ Languages ▶ Low level : C ▶ Middle level : C++11, stl, boost libraries, ROOT6 ▶ Open to higher level languages (e.g. python) ▶ Expose interfaces using generators such as SWIG ▶ Web : PHP or Python with Django. To be decided Ecosystem B. von Haller | CWG11 | Only Limited to these 2

Software development ▶ Tools ▶ Version control system: Git with GitLab/GitHub ▶ Software build system: CMake ▶ Issue tracking system: JIRA ▶ Code formatter: clang-format ▶ Procedures ▶ Workflows  A la GitHub (pull request, see next slides) B. von Haller | CWG11 | GitLab to be gradually introduced

Software development GitHub development workflow B. von Haller | CWG11 | ▶ Collaborators have a full remote clone of the main repo, called a fork ▶ Full rights on their fork, none on the main repo ▶ Anything in the master branch is always deployable. ▶ Owners of the main repo (librarians) comment and accept/reject the pull requests ▶ Open source clone of GitHub: GitLabs

Software development GitHub/Gitlab B. von Haller | CWG11 | ▶ Advantages of GitHub/GitLab and the related development workflow ▶ Collaborative and intuitive web interface ▶ Code always reviewed and commented before being accepted ▶ Code can be checked automatically by tools before human reviews ▶ Feature-rich api

Software development ▶ Procedures (continued) ▶ Workflows  A la GitHub (pull request, see next slides) ▶ Coding conventions, naming, formatting -> CWG2 ▶ Code access policy  Open (license still under discussion) -> CWG2 ▶ Repositories ▶ Neither monolithic nor excessively fragmented ▶ Group components that share same dependencies and/or similar functionalities ▶ Packages ▶ Does not always match with repositories (also more flexible) ▶ Release pace or common dependent packages to take into account ▶ Dependency handling for developers ▶ External : original + patch -> recompile (tool to be decided) ; packages ▶ Internal : packages (avoid recompiling what does not need to) ▶ CernVM-FS B. von Haller | CWG11 |

Software quality ▶ Tools ▶ Static analysis -> Clang Static Analyzer ▶ Dynamic analysis -> Valgrind ▶ Tool for code reviews -> GitLab ▶ Code conventions and formatting enforcer -> clang-format B. von Haller | CWG11 | Not initially

Software quality ▶ Testing ▶ Unit tests, usually at the function level ▶ CTest and boost.test ▶ Functional tests ▶ Integration tests, software modules are combined and tested as a group. Full chain. ▶ Requires the code to be designed for it and to provide mock systems at the interfaces ▶ Environment must be controlled B. von Haller | CWG11 |

Software deployment ▶ Packaging ▶ CPack or fpm (to be decided, evaluation ongoing) ▶ Dependency manager for users ▶ Packages using native system offered by OS ▶ CernVM-FS B. von Haller | CWG11 |

Continuous Integration (CI) ▶ Actually wider than pure CI ▶ Inter connects development, quality and deployment ▶ Jenkins ▶ Extensible, open source CI server ▶ Hundreds plugins, wide industry support ▶ Can do many type of tasks (e.g. build, test, release) ▶ On scheduled time or following a trigger (e.g. pull request) ▶ API to build our own tools in front or make other tools collaborate (e.g. JIRA) B. von Haller | CWG11 |

Continuous Integration ▶ Master hosted in IT for ALICE on a VM ▶ Use VMs with Docker on Openstack ▶ Authentication using CERN SSO and egroups ▶ Mesos deployment containers to deal with non-homogeneous tasks and load ▶ Integration with JIRA and GitHub/GitLab ▶ Time scale : infrastructure ready this summer Jenkins for O 2 B. von Haller | CWG11 |

Conclusion ▶ Tools have been chosen and procedures defined to ensure ▶ Code quality, readability and maintainability ▶ Products delivery, stability and performance ▶ The FLP prototype development can start in July directly within this frame B. von Haller | CWG11 |