Tuning Github for SPL development Branching models and operations for product engineers Oscar Díaz University of the Basque Country ONEKIN Research Group.

Slides:



Advertisements
Similar presentations
RESTful, Resource-Oriented Architectures: a Model-Driven Approach Sandy Pérez 1, Frederico Durao 2, Santiago Meliá 3, Peter Dolog 2, Oscar Díaz 1 1st International.
Advertisements

1 Mind Visual Diff An architecture comparison tool December 16 th, 2014 – v0.2.2 Seyvoz Stephane Assystem.
Simple Git Steve Pieper. Topics Git considerations and Slicer Git as if it were svn Git the way it is meant to be.
Mashup-Aware Corporate Portals Sandy Pérez and Oscar Díaz ONEKIN Research Group University of the Basque Country San Sebastián (Spain) The 11th International.
Version Control 1.  Version control (or revision control) is the term for the management of source files, and all of the intermediate stages as development.
©2011 Rolls-Royce plc The information in this document is the property of Rolls-Royce plc and may not be copied or communicated to a third party, or used.
Update on Version Control Systems: GitLab, SVN, Git, Trac, CERNforge
G51FSE Version Control Naisan Benatar. Lecture 5 - Version Control 2 On today’s menu... The problems with lots of code and lots of people Version control.
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.
Git: Part 1 Overview & Object Model These slides were largely cut-and-pasted from tutorial/, with some additions.
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.
Version control Using Git 1Version control, using Git.
"Piled Higher and Deeper" by Jorge Cham
Version control with Github August 26th, 2014 Daniel Schreij VU Cognitive Psychology departement
Conditions and Terms of Use
A primer on version control at OTN
Introduction to Git and GitHub
Software Engineering CS3003 Lecture 3 Software maintenance and evolution.
Git – versioning and managing your software L. Grewe.
SOFTWARE REUSABILITY AJAYINDER SINGH CSC What is Software Reuse Software reuse is the process of implementing or updating software systems using.
Version control Using Git Version control, using Git1.
2010. The Subversion Dilemma Check in buggy code and drive everyone else crazy Avoid checking it in until it’s fully debugged or.
Git workflow and basic commands By: Anuj Sharma. Why git? Git is a distributed revision control system with an emphasis on speed, data integrity, and.
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.
Tagging Aware Portlets Oscar Díaz, Sandy Pérez and Cristóbal Arellano ONEKIN Research Group University of the Basque Country San Sebastián (Spain) The.
Team 708 – Hardwired Fusion Created by Nam Tran 2014.
Version Control Systems. Version Control Manage changes to software code – Preserve history – Facilitate multiple users / versions.
GitHub and the MPI Forum: The Short Version December 9, 2015 San Jose, CA.
Git with Eclipse (EGit) /article.html.
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.
Technical Presentation by: David Spano. About Git (VCS) Simple Git Commands Branching Github Git GUI Summary.
© Trustees of Indiana University Released under Creative Commons 3.0 unported license; license terms on last slide. Take Group Projects to the Next Level.
CS102 Basic Computer Science and Programming Assoc. Prof. Jens Allmer Teaching Assistants: Canan Has, Caner Bağcı.
Installing git In Linux: sudo apt-get install git In Windows: download it from run the setuphttp://git-scm.com/download/win.
INFSOM-RI Elisabetta Ronchieri INFN CNAF ETICS 2 nd EU Review (CERN) 15 February 2008 WP3 - Software Configuration Tools and Methodologies.
GitHub A web-based Git repository hosting service.
Version Control Systems
CS5220 Advanced Topics in Web Programming Version Control with Git
Information Systems and Network Engineering Laboratory II
Software Configuration Management
Configuration Management
Discussion #11 11/21/16.
Git & Github Timothy McRoy.
Git and GitHub primer.
External Web Services Quick Start Guide
CS4961 Software Design Laboratory I Collaboration using Git and GitHub
Discussion 11 Final Project / Git.
Version Control overview
Version control, using Git
SysML 2.0 Model Lifecycle Management (MLM) Working Group
Software Engineering for Data Scientists
Version Control Systems
Akshay Narayan git up to speed with RCS Akshay Narayan
LECTURE 3: Software Configuration Management
BIT 286: (Web) Application Programming
Large Collaboration and GitHub in Unreal
Git & Github Timothy McRoy.
Getting Started with Git and Bitbucket
Part 1: Editing and Publishing Files
Collaboration Work Flow with Git
GitHub and Git.
Patrick Cozzi University of Pennsylvania CIS Fall 2012
Managing Data Updates Chuck Bailey, VP of Software Implementation and Support.
Version Control with Git
Hop Aboard the Git Train – Transitioning from TFVC
1. GitHub.
Keeping your SQL Code safe
Introduction to The Git Version Control System
Presentation transcript:

Tuning Github for SPL development Branching models and operations for product engineers Oscar Díaz University of the Basque Country ONEKIN Research Group San Sebastian, Spain Leticia Montalvillo University of the Basque Country ONEKIN Research Group San Sebastian, Spain SPLC’15 Nashville 2015, TN

SPL Setting Evolving SPLs Feature-Oriented SPLs Onekin Reserch Group2

SPL Scope of reuse Onekin Research Group3 Deestral&Bosch2005: Product Derivation in Software Product Families: A Case Study

Domain engineering development Onekin Reserch Group4 Feature-Oriented SPLs Feature implementation =

Application engineering development Onekin Reserch Group5 1. Get initial feature configuration 2. Customization 3. Assemble Customized core asset Brand new asset

It looks like two kinds of repositories exist Onekin Reserch Group6 … 1 Core_Asset_Repository + N Product_Repository

Where do we keep the assets? VCSs Onekin Research Group7

Github highlights Onekin Reserch Group8  More than 10 million of users  More than 24 million of repositories  Web-based Git Repository hosting service  Popular for collaborative development "GitHub Press Info""GitHub Press Info". github.com. Github. Retrieved

? A Look into a Github Repository Onekin Reserch Group9 Repository Owner Repository Name User logged Default branch Source Code

? A look into a Forked Repository Onekin Reserch Group10 Cloned Source Code All branches & commits A link to the “original” repository My account

How do both repositories look like on Github? Onekin Reserch Group11 …

How does a core asset repository look like in Github? Onekin Research Group12 Domain developer Features implementation Core asset repository name

How does a Product Repository look like in Github? Onekin Research Group13 Application developer Product repository name Product assets

The problem The sync Challenge Onekin Reserch Group14

? Now, let’s have a show of hands … Onekin Reserch Group15

Should a product repository be obtained after a core asset repository? Onekin Research Group16

Should reusable core asset updates be propagated to existing products? Onekin Research Group17

Should product specific customizations be upgraded as core assets? Onekin Research Group18

If you answered “Yes” to any …. There is a sync challenge Onekin Research Group19

The problem: The Sync Challenge  The sync challenge implies to: 1.Create product repositories from core asset repositories along a feature configuration 2.Update product assets with newer versions available at core asset repository 3.Feedback product customizations from product repository to core asset repository Onekin Reserch Group20

Does Github support the sync challenge?  Fork & pull Request operate at high granularity.  We want them at feature level  Fork  Granularity: at repository level (branches and commit history)  What if we only want a subset of the features?  Pull Requests  Granularity: at branch level ( branches hold a project’s snapshot)  What if we only want the changes related to a given feature to be propagated?  What happens if my product is not reusing that feature? Onekin Reserch Group21

How can we tune Github to support engineers on the sync challenge? Onekin Reserch Group22

The solution GitLine: a Firefox plug-in that extends Github functionality Onekin Reserch Group23

Github operations for the sync challenge 3 OPERATIONS FOR PRODUCT ENGINEERS 1.Create product repositories from Core Asset repositories along a core asset configuration  PRODUCT FORK 2.Update product assets with newer versions from core asset repository  UPDATE PROPAGATION 3.Feedback product specific assets from product repositories to core asset repository  FEEDBACK PROPAGATION Onekin Reserch Group24

Onekin Research Group25 Product Fork operation Product Fork ( User_Account X Core_Asset_Repository X Configuration_of_core_assets ) :: Product_Repository

Product Fork: Accesing the Core Asset Repository Onekin Reserch Group26

Product Fork: Getting the feature configuration Onekin Reserch Group27  Product Fork  Update Propagation  Feedback Propagation Feature selection Configuration steps

Behind the scenes … Onekin Reserch Group28 … GitLine creates a new product repository initialized only with the core assets of the selected features: deleting not wanted assets & branches & setting up the branching model for the user  Product Fork  Update Propagation  Feedback Propagation

Product Fork: A new Product Repository Onekin Reserch Group29  Product Fork  Update Propagation  Feedback Propagation

Onekin Research Group30 Update Propagation Operation Update Propagation ( User_Account X Core_Asset_Repository X Product_Repository):: Pull_Request

Core Asset Repository has new updates Onekin Reserch Group31  Product Fork  Update Propagation  Feedback Propagation

Update Propagation: Enacting the operation Onekin Reserch Group32

Behind the scenes … Onekin Reserch Group33 … GitLine is accessing the core asset repository and checks where there are newer feature versions that my product is reusing & brings them into a product’s repository dedicated branch  Product Fork  Update Propagation  Feedback  Propagation

Update Propagation pulling new versions of Core Assets Onekin Reserch Group34

Opening the update request: Diff view Onekin Reserch Group35  Product Fork  Update Propagation  Feedback  Propagation

Onekin Research Group36 Feedback Propagation Feedback Propagation ( User_Account X Product_Repository X customization_branch X Core_Asset_Repository ):: Pull_Request

There is a new product specific asset Onekin Reserch Group37 Product specific customization We want to feedback

Selecting the product specific asset Onekin Reserch Group38

Behind the scenes … Onekin Reserch Group39 … GitLine traverses the branch history to cherry- pick only the changes that occurred under that branch and propose them as feedback for a core asset repository feature.

A new Feedback Pull Request in the Core Asset Repository Onekin Reserch Group40

Opening the feedback request: Diff view Onekin Reserch Group41  Product Fork  Update Propagation  Feedback Propagation Comparing PlayMovie Feature

Almost reaching the end… Onekin Reserch Group42

What can you find in the paper? Things I did not explained during the presentation:  A branching model for core asset repositories  A branching model for product repositories  The operational semantics for 3 sync repository operations Onekin Reserch Group43

A branching model for Core Asset Repository Onekin Reserch Group44 4 main type of branches. Branch-per-purpose style

What can you find in the paper? Things I did not explained during the presentation:  A branching model for core asset repositories  A branching model for product repositories  The operational semantics for 3 sync repository operations Onekin Reserch Group45

A branching model for Product Repository Onekin Reserch Group46 7 main type of branches. Branch-per-purpose style

What can you find in the paper? Things I did not explained during the presentation:  A branching model for core asset repositories  A branching model for product repositories  The operational semantics for 3 sync repository operations Onekin Reserch Group47

What can you find in the Web?  A realization of these operations as a Firefox plug-in: GitLine  GitLine is freely-available as a GitHub project Onekin Reserch Group48

Onekin Reserch Group49

ne Onekin Reserch Group50

Summary  Problem  Sync DE & AE developments  Contribution  Branching models for Core Asset & Product Repository  Formalization of three sync SPL operations  Validation  Feasibility: GitLine tool, Firefox plug-in for GitHub Onekin Reserch Group51

Limitations and future lines  Evaluation of the branching model & operations with practitioners  GitLine depends on Github  Provide GitLine with different composition mechanisms Onekin Reserch Group52

@ Contact us, s Thanks for your attention! Onekin Reserch Group53

Onekin Reserch Group54 Extra to illustrate operations in action …

Product Fork Operation Onekin Research Group55

Update Propagation Onekin Research Group56 Enact update propagation… Diff=

Feedback Propagation Onekin Research Group57 Onekin Research Group57 Diff= Enact Feedback…