Integration Methodology and Procedures

Slides:



Advertisements
Similar presentations
Github. Download & install git   Git bash  Git GUI.
Advertisements

Update on Version Control Systems: GitLab, SVN, Git, Trac, CERNforge
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.
Introduction to Git and Github Joshua imtraum.com.
BIT 285: ( Web) Application Programming Lecture 07 : Tuesday, January 27, 2015 Git.
Git for Version Control These slides are heavily based on slides created by Ruth Anderson for CSE 390a. Thanks, Ruth! images taken from
Getting Started with GIT. Basic Navigation cd means change directory cd.. moves you up a level cd dir_name moves you to the folder named dir_name A dot.
Created by: Maria Abrahms Modified Date: Classification: How to get it done Contributing to OpenStack.
Git A distributed version control system Powerpoint credited to University of PA And modified by Pepper 8-Oct-15.
Version control Using Git Version control, using Git1.
Version Control. How do you share code? Discussion.
SWEN 302: AGILE METHODS Roma Klapaukh & Alex Potanin.
Information Systems and Network Engineering Laboratory II DR. KEN COSH WEEK 1.
Development Environment Matthew Sell, CSSE Student MASS Research Participant, October 2014.
Team 708 – Hardwired Fusion Created by Nam Tran 2014.
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.
1 GIT NOUN \’GIT\ A DISTRIBUTED REVISION CONTROL AND SOURCE CODE MANAGEMENT (SCM) SYSTEM WITH AN EMPHASIS ON SPEED. INITIALLY DESIGNED AND DEVELOPED BY.
Page 1 TBD 12/08/2014 Formation GIT Laurent Kappel Groupe SII 65, rue de Bercy Paris Tél : Fax :
It’s not just an insult from Harry Potter!. What is Git? Distributed Version Control System (DVCS) – Compared to a Centralized Version Control System.
Information Systems and Network Engineering Laboratory I DR. KEN COSH WEEK 1.
Lecture 5 Remotes Sign in on the attendance sheet! Turn in homework at the front!
1 Ivan Marsic Rutgers University LECTURE 2: Software Configuration Management.
Installing git In Linux: sudo apt-get install git In Windows: download it from run the setuphttp://git-scm.com/download/win.
BIT 285: ( Web) Application Programming Lecture 07 : Tuesday, January 27, 2015 Git.
Git workflows: using multiple branches for parallel development SE-2800 Dr. Mark L. Hornick 1.
Git A distributed version control system Powerpoint credited to University of PA And modified by Pepper 28-Jun-16.
Jun-Ru Chang Introduction GIT Jun-Ru Chang
GIT Version control. Version Control Sharing code via a centralized DB Also provides for Backtracking (going back to a previous version of code), Branching.
Version Control Systems
CS5220 Advanced Topics in Web Programming Version Control with Git
M.Sc. Juan Carlos Olivares Rojas
Information Systems and Network Engineering Laboratory II
Source Control Systems
L – Modeling and Simulating Social Systems with MATLAB
LECTURE 2: Software Configuration Management
Version Control.
CS/COE 1520 Recitation Week 2
L – Modeling and Simulating Social Systems with MATLAB
Version Control overview
Version control, using Git
ALICE-Juniors Meeting
Software Engineering for Data Scientists
Version Control Systems
The Websites Team Robert Mayr (robyduck).
Version Control with Git accelerated tutorial for busy academics
SU Development Forum Introduction to Git - Save your projects!
Distributed Version Control with git
Akshay Narayan git up to speed with RCS Akshay Narayan
LECTURE 3: Software Configuration Management
The Big Picture
SIG: Open Week 1: GitHub Tim Choh.
Getting Started with Contribution to Openstack
Revision Control Daniel Daugherty
Part 1: Editing and Publishing Files
Collaboration Work Flow with Git
Source Code Repository
Using Github.
Version Control System - Git
Version control with Git
Introduction to Git and GitHub
Setting up your dev environment
Version Control with Git
Version/revision control via git
Introduction to Git and Github
Git GitHub.
Final Review 27th March Final Review 27th March 2019.
Introduction to The Git Version Control System
Advanced Git for Beginners
Presentation transcript:

Integration Methodology and Procedures ROBIL2 CDR 20/02/14 IAI ROBIL – Integration Procedures

ROBIL – Integration Procedures Content Continuous Integration Operational Methodology Highlights Methodology Practical Steps Bugs and Issues Tracking Summary ROBIL – Integration Procedures

CONTINUOUS INTEGRATION ROBIL – Integration Procedures

ROBIL – Integration Status What is integration? Checking that interfaces are implemented as specified: according ROBIL2 Diagrams.pdf Checking that the components work properly together in order to implement a feature as specified Checking system behavior as a system ROBIL – Integration Status

ROBIL – Integration Procedures Implication Sprint #N Feature 1 Feature 2 Feature 3 1st Week 2nd Week 3 Week 4 Week 5th Week 6th Week 7th Week 8th Week MUST BE READY Nice to have: Most of the code Sprint Each time you have partial functionality, send to integration  Continuous integration Continuous integration  Push code to integration each time it makes sense ROBIL – Integration Procedures

ROBIL – Integration Procedures Implication - Suite #2 Sprint 1st Week 2nd Week 3 Week 4 Week 5th Week 6th Week 7th Week 8th Week MUST BE READY Feature 1 Feature 2 Feature 2 Feature 1 Feature 2 Feature 1 Nice to have: Most of the code Feature 3 Feature 3 Feature 3 Feature 3 06/03 Today End Sprint #2 = 06/03/2014 Most of the code#2 = 20/02/2014 == Today ROBIL – Integration Procedures

Operational Methodology ROBIL – Integration Procedures

ROBIL – Integration Procedures Highlights Version control: git Software repository: www.github.com Directory structure according pre-defined format README file for each component Automatic Testing: Jenkins Integration inside one component is out of scope of general integration of ROBIL2 ROBIL – Integration Procedures

Highlights -Directory Structure Component skeleton automatically generated by infrastructure after having edited file: configuration.yaml Simulation branch less structured. robil2 Framework iedsim Llc src/component ComponentMain.cpp ComponentMain.h src/roscomm RosComm.cpp RosComm.h src/main.cpp Loc … wsm Simulation ROBIL – Integration Procedures

Highlights - Code Convention See www.robil.org. ROBIL – Integration Procedures

ROBIL – Integration Procedures Highlights - Tests From http://wiki.ros.org/UnitTesting: Must write unit test for each module: Python: unittest C++: gtest Must write unit test for each ros node: rostest How to write unit tests in ROS with Catkin - Movie ROBIL – Integration Procedures

Integration Methodology GIT HUB ROBIL2 Official Tree ro PULL REQUEST Remote Component FORK PUSH CLONE/PULL Local Git Repository Local Component ROBIL – Integration Procedures

Integration Methodology (2) New Version!!! GIT HUB PULL REQUEST ROBIL Official Tree ro Remote Component FORK PUSH PULL PUSH CLONE/PULL Local Git Repository Integrator Local Local Component Remote Component Integrator ROBIL – Integration Procedures

Integration Methodology(3) PULL REQUEST HOOKS GIT HUB JENKINS Clone ROBIL2 official repository Pull Comp2 Robil2-forked repository Compile Automatic test: running gtests, unittests and rostests ROBIL2 Official Tree ro RemoteComp2 SUCCESS FAIL Reject Accept Pull Request ROBIL – Integration Procedures

ROBIL – Integration Procedures Practical Steps (1) In git hub: Each participant should open an account. Each team (per component) should fork the project in the github from the official tree. GIT HUB ROBIL Official Tree ro RemoteTeam FORK ROBIL – Integration Procedures

ROBIL – Integration Procedures Practical Steps (2) At local site: Each local computer: install git. For ubuntu: sudo apt-get install git-core (that’s it) Strong Request: establish a reliable identity git config --global user.name “Michele Hallak” git config --global user.email “integrator.iai@gmail.com” See online book: http://git-scm.com/book/ ROBIL – Integration Procedures

ROBIL – Integration Procedures Practical Steps (3) At local site: Create or fetch a convenient git repository: Via eclipse or >>git clone https://github.com/iops/robil2.git Add remote for push: >>git remote add upload //github.com/TEAM/robil.git If you want to check that it is properly configured: >>cd robil2 >>git remote –v origin https://github.com/iosp/robil2.git (fetch) upload https://github.com/team/robil2.git (fetch) upload https://github.com/team/robil2.git (push) ROBIL – Integration Procedures

ROBIL – Integration Procedures Practical Steps (5) Developing Team Work Locally Develop Integrate Test Pull from Origin Merge locally with the official repository Update README Push & Pull Request Push to your hub repository Send pull request ROBIL – Integration Procedures

ROBIL – Integration Procedures Practical Steps (6) Integrator Pull Request Is there README file? Are there unittest /gtest and rostest modules? Pull Locally Test Integrate Push to official Tree Watchers (on github) are alerted ROBIL – Integration Procedures

Bugs and Issues Tracking ROBIL – Integration Procedures

Bugs and Issues Tacking Using web-based software project management and ticket system: Trac Tickets are relevant after code has been merged Tickets have: Component: all the components type: defect, CR, issue Priority: immediate, high, normal, low, defer Severity: blocker, critical, major, minor, trivial Blocker: Bug preventing the whole system to work Critical: Affecting one functionality Major: Affecting part of the functionality ROBIL – Integration Procedures

Bugs and Issues Tacking (2) Anyone can open a ticket but mainly integration Defects are closed by integrator CR and issues are closed by system engineer Dealing with a ticket: Accept or resolve as fixed Reject, cancel, duplicate ROBIL – Integration Procedures

Bugs and Issues Tacking (3) Configuration: Login to www.robil.org Go to preferences Setup your email ROBIL – Integration Procedures

ROBIL – Integration Procedures SUMMARY ROBIL – Integration Procedures

ROBIL – Integration Procedures Team Responsibility Each user must have a reliable identity in git as well as in github and watch robil2 repository Provide unit tests and rostest Provide README file Pull most updated version before pushing Be responsive and available on the phone/skype until “pull request” is closed. Configure email address on www.robil.org Follow-up on TRAC issues/bugs ROBIL – Integration Procedures

THANK YOU!!! Looking forward to see you online! SkypeID, YahooID, GmailID:  mhallakstamler Integrator.iai@gmail.com Looking forward to see you online! ROBIL – Integration Procedures