A python-based testing infrastructure Colin Bernet (IPNL)

Slides:



Advertisements
Similar presentations
Heppy A lightweight python event processing framework for high-energy physics Colin Bernet, IPNL/IN2P3.
Advertisements

FCC Software Status Report from a User’s Perspective Colin Bernet (IPNL), Benedikt Hegner (CERN) 14 January
SubVersioN – the new Central Service at DESY by Marian Gawron.
Version Control with git. Version Control Version control is a system that records changes to a file or set of files over time so that you can recall.
FCC Software Status Report from a User’s Perspective Colin Bernet (IPNL) 18 March 2015 Code Contributors: Michele De Gruttola, Benedikt Hegner, Clément.
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.
Chapter - 2 What is “GIT” VERSION CONTROL AND GIT BASICS.
Customized cloud platform for computing on your terms !
Tools and software process for the FLP prototype B. von Haller 9. June 2015 CERN.
Framework for Automated Builds Natalia Ratnikova CHEP’03.
M Gallas CERN EP-SFT LCG-SPI: SW-Testing1 LCG-SPI: SW-Testing LCG Applications Area GridPP 7 th Collaboration Meeting LCG/SPI LCG.
Rsv-control Marco Mambelli – Site Coordination meeting October 1, 2009.
The Pipeline Processing Framework LSST Applications Meeting IPAC Feb. 19, 2008 Raymond Plante National Center for Supercomputing Applications.
The huge amount of resources available in the Grids, and the necessity to have the most up-to-date experimental software deployed in all the sites within.
CERN IT Department CH-1211 Geneva 23 Switzerland t Daniel Gomez Ruben Gaspar Ignacio Coterillo * Dawid Wojcik *CERN/CSIC funded by Spanish.
CERN - IT Department CH-1211 Genève 23 Switzerland t DB Development Tools Benthic SQL Developer Application Express WLCG Service Reliability.
Continuous Integration and Code Review: how IT can help Alex Lossent – IT/PES – Version Control Systems 29-Sep st Forum1.
Introduction to GitHub Alex Bigazzi Dec. 4, 2013 ITS Lab GitHub Introduction1.
Ganga A quick tutorial Asterios Katsifodimos Trainer, University of Cyprus Nicosia, Feb 16, 2009.
Computing Division Requests The following is a list of tasks about to be officially submitted to the Computing Division for requested support. D0 personnel.
EGEE is a project funded by the European Union under contract IST Tools survey status, first experiences with the prototype Diana Bosio EGEE.
Testing Grid Software on the Grid Steven Newhouse Deputy Director.
Firmware - 1 CMS Upgrade Workshop October SLHC CMS Firmware SLHC CMS Firmware Organization, Validation, and Commissioning M. Schulte, University.
Testing in Android. Methods Unit Testing Integration Testing System Testing Regression Testing Compatibility Testing Black Box (Functional) White Box.
Technical Validation The Technical Validation is a testing framework of the AUGER offline to monitor the code development process. It is not a validation.
RCE Platform Technology (RPT) Mark Arndt User Support.
GLAST LAT Project CU Beam Test Workshop 3/20/2006 C. Sgro’, L. Baldini, J. Bregeon1 Glast LAT Calibration Unit Beam Test Status Report on Online Monitor.
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
11/01/2012B.Couturier - Core Software Workshop 1 Software Development Infrastructure Main Topics Development tools Build and Release tools Tracking/Management.
GLite build and integration system Building and Packaging Robert HARAKALY
JRA1 Meeting – 09/02/ Software Configuration Management and Integration EGEE is proposed as a project funded by the European Union under contract.
Introduction to FCC Software FCC Istanbul 11 March, 2016 Alice Robson (CERN/UNIGE) on behalf of / with thanks to the FCC software group.
It’s not just an insult from Harry Potter!. What is Git? Distributed Version Control System (DVCS) – Compared to a Centralized Version Control System.
Ansible and Ansible Tower 1 A simple IT automation platform November 2015 Leandro Fernandez and Blaž Zupanc.
Why do F77 always spoil the landscape ?. Several ideas … slide 2.
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.
Using Git with collaboration, code review, and code management for open source and private projects. & Using Terminal to create, and push commits to repositories.
SCDB Update Michel Jouvin LAL, Orsay March 17, 2010 Quattor Workshop, Thessaloniki.
DECTRIS Ltd Baden-Daettwil Switzerland Continuous Integration and Automatic Testing for the FLUKA release using Jenkins (and Docker)
Instrumenting CernVM-FS Code José Molina Colmenero CERN PH-SFT 1June 29th 2015.
Status of Analysis Software for FCC-ee Studies Colin Bernet (IPNL) FCC-ee Higgs Workshop 24th of September,
Software and Communication Driver, for Multimedia analyzing tools on the CEVA-X Platform. June 2007 Arik Caspi Eyal Gabay.
Appium Studio Appium testing made easy at any scale.
Analysing FCC Data Files in SWAN
Open-O Integration Project Introduction
Contoso Insurance Azure App Services Code Sample
How to Contribute to System Testing and Extract Results
L – Modeling and Simulating Social Systems with MATLAB
Git & Github Timothy McRoy.
L – Modeling and Simulating Social Systems with MATLAB
L – Modeling and Simulating Social Systems with MATLAB
Code Management Releases
L – Modeling and Simulating Social Systems with MATLAB
FCC Software Status Readiness for FCC-ee Physics
SPI external software build tool and distribution mechanism
LCGAA nightlies infrastructure
Enhancing Cloud Foundry with CLI Plugins
Instructor: Prasun Dewan (FB 150,
LECTURE 3: Software Configuration Management
X in [Integration, Delivery, Deployment]
Trainings 11/18 Advanced Java Things.
Module 01 ETICS Overview ETICS Online Tutorials
A Collaborative Environment
Software for Neutron Imaging Analysis
Open Automation Software
Carthage ios 8 onwards Dependency manager that streamlines the process of integrating the libraries into the project.
Intro to Git & GitHub By Sean O’Mahoney.
PyWBEM Python WBEM Client: Overview #2
Presentation transcript:

A python-based testing infrastructure Colin Bernet (IPNL)

The FCC Softare 2 albers-core (podio) EDM definition and I/O albers-core (podio) EDM definition and I/O fcc-edm FCC EDM fcc-edm FCC EDM FCCSW full framework e.g. Delphes FCC EDM output FCCSW full framework e.g. Delphes FCC EDM output pythiafcc Standalone pythia FCC EDM output pythiafcc Standalone pythia FCC EDM output analysis-cpp read FCC EDM in C++ analysis-cpp read FCC EDM in C++ heppy generic python analysis framework heppy_fcc read FCC EDM in python; PAPAS heppy_fcc read FCC EDM in python; PAPAS Event Data Model Event production Analysis tools

Testing the FCC Softare 3 albers-core (podio) EDM definition and I/O albers-core (podio) EDM definition and I/O fcc-edm FCC EDM fcc-edm FCC EDM FCCSW full framework e.g. Delphes FCC EDM output FCCSW full framework e.g. Delphes FCC EDM output pythiafcc Standalone pythia FCC EDM output pythiafcc Standalone pythia FCC EDM output analysis-cpp read FCC EDM in C++ analysis-cpp read FCC EDM in C++ heppy generic python analysis framework heppy_fcc read FCC EDM in python; PAPAS heppy_fcc read FCC EDM in python; PAPAS pythia fcc modified test: -pythiafcc install: -albers-core -fcc-edm -pythiafcc

Testing the FCC Softare 4 albers-core (podio) EDM definition and I/O albers-core (podio) EDM definition and I/O fcc-edm FCC EDM fcc-edm FCC EDM FCCSW full framework e.g. Delphes FCC EDM output FCCSW full framework e.g. Delphes FCC EDM output pythiafcc Standalone pythia FCC EDM output pythiafcc Standalone pythia FCC EDM output analysis-cpp read FCC EDM in C++ analysis-cpp read FCC EDM in C++ heppy generic python analysis framework heppy_fcc read FCC EDM in python; PAPAS heppy_fcc read FCC EDM in python; PAPAS heppy modified test: -heppy -heppy_fcc install: -heppy -albers-core -fcc-edm -heppy_fcc

Testing Issues 5 albers-core (podio) EDM definition and I/O albers-core (podio) EDM definition and I/O fcc-edm FCC EDM fcc-edm FCC EDM FCCSW full framework e.g. Delphes FCC EDM output FCCSW full framework e.g. Delphes FCC EDM output pythiafcc Standalone pythia FCC EDM output pythiafcc Standalone pythia FCC EDM output analysis-cpp read FCC EDM in C++ analysis-cpp read FCC EDM in C++ heppy generic python analysis framework heppy_fcc read FCC EDM in python; PAPAS heppy_fcc read FCC EDM in python; PAPAS Just before FCC-ee Higgs workshop: -modification of albers-core, fcc-edm -dependent packages were not tested: -pythiafcc -analysis-cpp -heppy_fcc -Tutorial broken!

Why no test? Several interdependent packages – dependencies not easy to follow Several platforms – need access to lxplus6, unbuntu, mac os 10.9 The testing procedure is fully manual: – for each platform install all packages follow all tutorial instructions if a problem is spotted, fix it, and repeat the loop – pain in the neck, nobody can be blamed for lack of testing at the moment.

What we need – 1 An automatic dependency tracking system – package2 modified test 2 – install 5 then 3, 4, 2 test 1 – install 1 Package2 Package3 Package4 Package5 Package1

What we need – 2 A github robot – om/cms- sw/cmssw/pulls om/cms- sw/cmssw/pulls To: – monitor PRs – trigger tests – send reports

What we need – 3 Build machines – with all the platforms we support Benedikt can tell us a few words

Available Tools Main Continuous Integration (CI) tools: – Jenkis, Circle CI, Travis CI, … I have no idea about Jenkis or Circle CI Travis CI could be used – easy and free for open source projects – but build machines hosted by Travis… VMs need to be set up – install the whole FCC software + dependencies everytime? lack of flexibility? People welcome to investigate Decided to write a small CI tool in python

fcc-spi Tools python – unittest python’s unit testing framework – networkx graph module (test dependency) github API – pygithub? – direct use of the REST API? the fcc-spi module core – core tools stack: handles dependencies call_script: calls bash scripts fcc_tests – fcc test suite example.spitest – test suite for test packages ~500 lines of code

Example Test Module Needed: -workdir: -directory where the package will be installed -requirements: -dependencies -install function TODO: -cloning should be done by the framework. -handle branches spitest_3 spitest_4 spitest_5 install once for all tests go to workdir before each test go back after each test only one test in this example

Stack of tests spitest_3 spitest_4 spitest_5 spitest_6 spitest_1 spitest_2

Stack of tests: spitest_1 modified spitest_3 spitest_4 spitest_5 spitest_6 spitest_1 spitest_2

Stack of tests: spitest_4 modified spitest_3 spitest_4 spitest_5 spitest_6 spitest_1 spitest_2 Todo: -allow install without test when test becomes CPU intensive -log all results (printouts, files, etc)

First FCC test TODO: -suppress and log warnings

Github robot: Tasks look for new pull requests in all packages – every x minutes run the test suite on the new PR: – install dependencies – install package merge PR locally – test package – test dependent packages comment on the PR page – green light or indications on what to do to fix thing – if green light : a human admin will still have to review and merge the PR

Github robot: which API? pygithub – can log to my account, browse my repositories, etc from a python script – but I don’t manage to read pull requests! REST interface – wrap it myself in python – should be easy – but not familiar with REST interfaces yet

TODO write the missing tests – FCCSW, pythiafcc, analysis-cpp, heppy, heppy_fcc – connect to documentation (twiki, README.md) suppress stderr printouts, save detailed logs, etc. manage multiple platforms move boilerplate code from tests to central modules github robot for full automatization set up on the build machines at CERN