Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Tuning Github for SPL development Branching models and operations for product engineers Oscar Díaz University of the Basque Country ONEKIN Research Group."— Presentation transcript:

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…


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

Similar presentations


Ads by Google