Presentation is loading. Please wait.

Presentation is loading. Please wait.

Integration Methodology and Procedures

Similar presentations


Presentation on theme: "Integration Methodology and Procedures"— Presentation transcript:

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

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

3 CONTINUOUS INTEGRATION
ROBIL – Integration Procedures

4 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

5 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

6 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

7 Operational Methodology
ROBIL – Integration Procedures

8 ROBIL – Integration Procedures
Highlights Version control: git Software repository: 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

9 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

10 Highlights - Code Convention
See ROBIL – Integration Procedures

11 ROBIL – Integration Procedures
Highlights - Tests From 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

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

13 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

14 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

15 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

16 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. See online book: ROBIL – Integration Procedures

17 ROBIL – Integration Procedures
Practical Steps (3) At local site: Create or fetch a convenient git repository: Via eclipse or >>git clone 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 (fetch) upload (fetch) upload (push) ROBIL – Integration Procedures

18 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

19 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

20 Bugs and Issues Tracking
ROBIL – Integration Procedures

21 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

22 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

23 Bugs and Issues Tacking (3)
Configuration: Login to Go to preferences Setup your ROBIL – Integration Procedures

24 ROBIL – Integration Procedures
SUMMARY ROBIL – Integration Procedures

25 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 address on Follow-up on TRAC issues/bugs ROBIL – Integration Procedures

26 THANK YOU!!! Looking forward to see you online!
SkypeID, YahooID, GmailID:  mhallakstamler Looking forward to see you online! ROBIL – Integration Procedures


Download ppt "Integration Methodology and Procedures"

Similar presentations


Ads by Google