Download presentation
Presentation is loading. Please wait.
Published byHannah Blankenship Modified over 9 years ago
1
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
2
SPL Setting Evolving SPLs Feature-Oriented SPLs Onekin Reserch Group2
3
SPL Scope of reuse Onekin Research Group3 Deestral&Bosch2005: Product Derivation in Software Product Families: A Case Study
4
Domain engineering development Onekin Reserch Group4 Feature-Oriented SPLs Feature implementation =
5
Application engineering development Onekin Reserch Group5 1. Get initial feature configuration 2. Customization 3. Assemble Customized core asset Brand new asset
6
It looks like two kinds of repositories exist Onekin Reserch Group6 … 1 Core_Asset_Repository + N Product_Repository
7
Where do we keep the assets? VCSs Onekin Research Group7
8
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 2015-07-23
9
? A Look into a Github Repository Onekin Reserch Group9 Repository Owner Repository Name User logged Default branch Source Code
10
? A look into a Forked Repository Onekin Reserch Group10 Cloned Source Code All branches & commits A link to the “original” repository My account
11
How do both repositories look like on Github? Onekin Reserch Group11 …
12
How does a core asset repository look like in Github? Onekin Research Group12 Domain developer Features implementation Core asset repository name
13
How does a Product Repository look like in Github? Onekin Research Group13 Application developer Product repository name Product assets
14
The problem The sync Challenge Onekin Reserch Group14
15
? Now, let’s have a show of hands … Onekin Reserch Group15
16
Should a product repository be obtained after a core asset repository? Onekin Research Group16
17
Should reusable core asset updates be propagated to existing products? Onekin Research Group17
18
Should product specific customizations be upgraded as core assets? Onekin Research Group18
19
If you answered “Yes” to any …. There is a sync challenge Onekin Research Group19
20
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
21
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
22
How can we tune Github to support engineers on the sync challenge? Onekin Reserch Group22
23
The solution GitLine: a Firefox plug-in that extends Github functionality Onekin Reserch Group23
24
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
25
Onekin Research Group25 Product Fork operation Product Fork ( User_Account X Core_Asset_Repository X Configuration_of_core_assets ) :: Product_Repository
26
Product Fork: Accesing the Core Asset Repository Onekin Reserch Group26
27
Product Fork: Getting the feature configuration Onekin Reserch Group27 Product Fork Update Propagation Feedback Propagation Feature selection Configuration steps
28
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
29
Product Fork: A new Product Repository Onekin Reserch Group29 Product Fork Update Propagation Feedback Propagation
30
Onekin Research Group30 Update Propagation Operation Update Propagation ( User_Account X Core_Asset_Repository X Product_Repository):: Pull_Request
31
Core Asset Repository has new updates Onekin Reserch Group31 Product Fork Update Propagation Feedback Propagation
32
Update Propagation: Enacting the operation Onekin Reserch Group32
33
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
34
Update Propagation pulling new versions of Core Assets Onekin Reserch Group34
35
Opening the update request: Diff view Onekin Reserch Group35 Product Fork Update Propagation Feedback Propagation
36
Onekin Research Group36 Feedback Propagation Feedback Propagation ( User_Account X Product_Repository X customization_branch X Core_Asset_Repository ):: Pull_Request
37
There is a new product specific asset Onekin Reserch Group37 Product specific customization We want to feedback
38
Selecting the product specific asset Onekin Reserch Group38
39
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.
40
A new Feedback Pull Request in the Core Asset Repository Onekin Reserch Group40
41
Opening the feedback request: Diff view Onekin Reserch Group41 Product Fork Update Propagation Feedback Propagation Comparing PlayMovie Feature
42
Almost reaching the end… Onekin Reserch Group42
43
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
44
A branching model for Core Asset Repository Onekin Reserch Group44 4 main type of branches. Branch-per-purpose style
45
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
46
A branching model for Product Repository Onekin Reserch Group46 7 main type of branches. Branch-per-purpose style
47
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
48
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
49
https://github.com/letimome/GitLine Onekin Reserch Group49
50
http://letimome.github.io/GitLi ne Onekin Reserch Group50
51
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
52
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
53
@ Contact us, leticia.montalvillo@ehu.eu s Thanks for your attention! Onekin Reserch Group53
54
Onekin Reserch Group54 Extra to illustrate operations in action …
55
Product Fork Operation Onekin Research Group55
56
Update Propagation Onekin Research Group56 Enact update propagation… Diff=
57
Feedback Propagation Onekin Research Group57 Onekin Research Group57 Diff= Enact Feedback…
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.