Proposal for ONAP Development Best Practices Gildas Lanilis – ONAP Release Manager June 23 , 2017.

Slides:



Advertisements
Similar presentations
Code Review as a Great Tool in the Agile Toolbox Matthias Sohn, Stefan Lay (SAP)
Advertisements

JIRA Agile for Your Agile Implementation by Rajeswari Pandyram & Kevin Coughlan.
EpSOS Industry Team and OpenNCP Community Workshop OpenNCP Development Tools, Integration and Testing Arrangements Marcelo Fonseca Software Developer
1 The IIPC Web Curator Tool: Steve Knight The National Library of New Zealand Philip Beresford and Arun Persad The British Library An Open Source Solution.
Copyright Dong Chen, This work is the intellectual property of the author. Permission is granted for this material to be shared for non-commercial,
Continuous Integration for OpenEdge Applications NameDivyaTheja Pachipula TitleSenior Engineer Date8 th June, 2015.
Big Projects  Part of this class is about picking a cool software project and building it 1.
#PhUSE Standard Scripts Project Proposal for Qualification of Standard Scripts.
Introduction to Continuous Integration Mike Roberts.
By John Boal  Continuous Integration [CI] ◦ Automating the build process ◦ Build the entire system each time any new.
Craig Berntson
SWEN 302: AGILE METHODS Roma Klapaukh & Alex Potanin.
© ALEXANDRE CUVA  VERSION 2.00 Test Driven Design.
XP – Extreme Programming
Sofia Bulgaria Summer School IST eXPERT: Best Practice on e-Project Development 30 June - 2 July 2003 eXtreme programming.
EGEE is a project funded by the European Union under contract IST JRA1-SA1 requirement gathering Maite Barroso JRA1 Integration and Testing.
THE AGILE MENTALITY CHAPTER Topics  Why Use Agile and Scrum?  Agile Development –Manifesto for Agile Software Development  Scrum Methodology.
TEST-1 6. Testing & Refactoring. TEST-2 How we create classes? We think about what a class must do We focus on its implementation We write fields We write.
Chapter 2 Software processes. Topics covered Software process models Process activities Coping with change.
Confidential Continuous Integration Framework (CIF) 5/18/2004.
Theories of Agile, Fails of Security Daniel Liber CyberArk.
CERN IT Department CH-1211 Genève 23 Switzerland t Towards agile software development Marwan Khelif IT-CS-CT IT Technical Forum – 31th May.
OCTOPUS. CONTINUOUS INTEGRATION CI is a software development practice which requires all the developers integrate their work into master frequently. Some.
Build and Deployment Process Understand NCI’s DevOps and continuous integration requirements Understand NCI’s build and distribution requirements.
8/29/10 Maven Repository Management with Nexus Jim McMahon.
JRA1 Meeting – 09/02/ Software Configuration Management and Integration EGEE is proposed as a project funded by the European Union under contract.
28 May 2010 HMA-FO Task 2: Feasibility Analysis Service HMA Follow On Activities Task 2: Feasibility Analysis Service (Sensor Planning Service) Monthly.
Managing Software Development Projects with Jira.
Image by apaixonada: Talking people into creating patches.
Project Management Software development models & methodologies
ALM Deployment Pipeline Implementation. Create a Repeatable, Reliable Process for Releasing Software. Automate Almost Everything Keep Everything in Version.
BU Power Tools & Accessories – PT&A Task management – Definitions
Open source development model and methodologies.
Rapid Launch Workshop ©CC BY-SA.
Process Overview.
Joonas Sirén, Technology Architect, Emerging Technologies Accenture
Process improvements for better quality
Implementing Cloud-based Agile Team Development - Lessons Learned
OPEN-O Onboarding New Developer
Open-O Integration Project Introduction
ONAP security meeting
Proposed IT Infrastructure for TOP OS project
Appendix B Agile Methodologies
Software Tango Meeting - May 2011 N. Leclercq on behalf of the SOLEIL Computing Team.
ONAP Release Planning Draft Proposal Gildas Lanilis
Open-O O-Parent Project Proposal
Resolution Writing MUN OR DIE.
Openecomp Migration Proposals Catherine Lefèvre (AT&T)
eXtremely Distributed Software Development
Chapter 3 – Agile Software Development
Design and Implementation
Auditing in an Agile Environment
ONAP Security Sub-committee Update
What do you need to know about XP?
Standard Scripts Project 2
Tools and Techniques for Agile Project Management
Git Best Practices Jay Patel Git Best Practices.
Baisc Of Software Testing
Continuous Integration
LESSON 01 Hands-on Training Execution
Coming up: What is Agile?
Standard Scripts Project 2
Let’s start from the beginning
Appendix B Agile Methodologies
Standard Scripts Project 2
Extreme Programming.
Links Launch Outlook Launch Skype Place Skype on Do Not Disturb.
Proposal on TSC policy for ONAP release Maintenance
Standard Scripts Project 2
Akraino R2 inputs, goals, & Planning
Presentation transcript:

Proposal for ONAP Development Best Practices Gildas Lanilis – ONAP Release Manager June 23 , 2017

Scope Background: Development Best Practices were discussed: Goal: In general audience at F2F Beijing In Release Planning Training Goal: Get Approval from the TSC on the application of the Development Best Practices for ONAP Amsterdam Release as presented in this document and available in wiki.

Development Best Practices Draft Development Best Practices in wiki Continuous Integration Commit Process Code Review Code Coverage and Static Code Analysis Functional Test Case Testing Java Code Style Scrum and Jira IP compliance

Continuous Integration CI Practice The core goal of Continuous Integration is to get fast feedback There is ONE Branch: Master If there is 1 word to remember "Commit, commit, commit" multiple times a day Don't check In on a broken build:  If the build breaks, the developers are responsible for fixing it Always run all commit tests locally before committing Wait for commit tests to pass before moving on. If the build fails, fix it immediately or reverse your changes Never go home on a broken build …

Commit Process Commit Practice 3 reasons to perform a good commit: ONAP is public, so everything you do is widely visible. As you are proud of your work, you want to make good impressions It speeds up the reviewing process It helps to write good Release Notes JIRA ID mandatory in message (not in the header) ONLY 1 JIRA issue per commit Self-commits are not allowed NEVER embed binaries (jar, war, tar, gz, gzip, zip) in Gerrit

Code Review Practice You may not find bugs while doing Code Review, however you will find mistakes overlooked in the initial development phase Code Review is mandatory What to check? Comply to commit Practices Check for FOSS compliance Check if only ONE JIRA issue per commit Is the code easily readable? All Code is in English. Comment is Code Shall we recommend a due time to complete the code Review? 36 Business hours

Code Coverage and Static Code Analysis Practice ONAP Amsterdam Release: 30-50% Sonar is available: https://sonar.onap.org/

Functional Test Case Testing This is about functional testing of your components, not the whole ONAP Beside Unit Tests, the team needs to have the confidence they have not broken their surroundings Functional Test Case must be automated Functional Test Case are developed by Team, executed locally and then within ONAP Jenkins What are the steps All functional Test Case defined by M2 Functionality Freeze 50% of functional test case implemented by M3 API Freeze 100% of functional test case implemented by M4 Code Freeze

Java Code Style Practices Recommended but not Mandatory Not enforced for seed code For new code: Practice Based on Google Java Style 4.2 Block indentation: +4 spaces 4.4 Column limit: 120

Scrum and Jira Practice Scrum, Jira How To? We want to be Agile. What does it mean? >Focused and Transparent to the community Usage of 2 weeks iteration Scrum Board Simplified Jira workflow Simplified Workflow (4 statuses: Todo, In Progress, Implemented, Done) Simplified Resolution code (Unresolved, Done, Cannot Reproduce, Duplicate, Won’t do)

Intellectual Property Compliance (1/2) Members agree that all new inbound code contributions to ONAP shall be made under the Apache License, Version 2.0 Anything re-compile MUST be Apache 2 Linux Foundation runs FOSSOLOGY [16] Awareness of any executable embedded Talking Points: Start be making a reference to latest California court decision between Oracle and Google. Cost: millions. Predictability on the outcome: NONE. https://wiki.onap.org/display/DW/Open+Source

Intellectual Property Compliance (2/2) For Legal purpose, there is a need to record all Third Party code and libraries embedded within ONAP Info in FOSS Table (for both Open Source Code and Libraries): Open Source Code Name Version License Type Description Link toward License Info Notes (including reason not using Apache Version 2) Action: Foss table for each project have been created in wiki Fill out FOSS table for each projects (important for M2, but not show stopper for M1)

谢谢