SlideShare a Scribd company logo

tizen-upstream-coop-tdc2014-pcoval

This document provides tips and tricks for cooperating with upstream open source projects when packaging software for Tizen. It discusses the benefits of cooperation, including maximizing results while minimizing efforts and time. It recommends communicating openly with upstream projects, being respectful, and using tools like Git and gbs to track changes. The document outlines workflows for reporting bugs, developing changes on the Tizen branch, getting feedback from upstream, and merging changes. It provides examples of downstream patches and emphasizes maintaining changes in both Tizen and upstream projects for long-term support.

1 of 39
Download to read offline
Cooperating with
upstream projects
Packaging tips and tricks
Philippe Coval
Tizen engineer
<https://wiki.tizen.org/wiki/User:Pcoval>
<philippe.coval@open.eurogiciel.org>
Context
3
Who am I ?
● FLOSS enthusiast
● Communities: MeeGo/harmattan, debian, Qt, gnome, meamo, jolla ...
● Tizen packager, maintainer and developer
● Co maintenance :
● Domains: Automotive, Graphics & UI frameworks, Multimedia...
● Focus on core distro, graphics, toolkits (EFL, Qt … )
● Hacked webapps on Tizen RDPQ, ia32 mobile, ARM
● Works for Eurogiciel Opensource Dept
● Intel OTC contractor for 2 year located in France (Brittany)
4
Agenda
● Cooperation matters
● Upstream opensource projects
● Tizen integrate them
● A bug life
● Patches , trackers and git flow
● Communities
● Ask for Tips
● Tools : git, gbs, rpm
Cooperation
matters
6
Cooperation matters : Why ?
● Goals : Philosophy + Pragmatism
● Maximize : result / ( efforts * time )
● Best skills on worst issues
● Better quality (Several POV More tests = More feedback)
● Benefit for tizen (system)
● Focus on Integration not development
● Long term maintenance
● Benefit for upstream (softwares)
● Focus on Development not Integration
● Users base / testing real use case
● Tizen:Common : Bleeding edge
● Wayland, connman, gfx stack (intel drivers)

More Related Content

What's hot

Why Open Source is Important and What are We Doing About it?
Why Open Source is Important and What are We Doing About it?Why Open Source is Important and What are We Doing About it?
Why Open Source is Important and What are We Doing About it?Samsung Open Source Group
 
The RULE project: efficient computing for all GNU/Linux users
The RULE project: efficient computing for all GNU/Linux usersThe RULE project: efficient computing for all GNU/Linux users
The RULE project: efficient computing for all GNU/Linux usersMarco Fioretti
 
IoT Prototyping using BBB and Debian
IoT Prototyping using BBB and DebianIoT Prototyping using BBB and Debian
IoT Prototyping using BBB and DebianMender.io
 
RISC-V and open source chip design
RISC-V and open source chip designRISC-V and open source chip design
RISC-V and open source chip designDrew Fustini
 
Let's Go @ St. Louis CocoaHeads
Let's Go @ St. Louis CocoaHeadsLet's Go @ St. Louis CocoaHeads
Let's Go @ St. Louis CocoaHeadsPaul Balogh
 
Embedded Android Workshop with Marshmallow
Embedded Android Workshop with MarshmallowEmbedded Android Workshop with Marshmallow
Embedded Android Workshop with MarshmallowOpersys inc.
 
Embedded Android Workshop with Lollipop
Embedded Android Workshop with LollipopEmbedded Android Workshop with Lollipop
Embedded Android Workshop with LollipopOpersys inc.
 
Embedded Android Workshop
Embedded Android WorkshopEmbedded Android Workshop
Embedded Android WorkshopOpersys inc.
 
Teaching Open Source In The University
Teaching Open Source In The UniversityTeaching Open Source In The University
Teaching Open Source In The UniversityDominique Cimafranca
 
Open Source, Sourceforge Projects, & Apache Foundation
Open Source, Sourceforge Projects, & Apache FoundationOpen Source, Sourceforge Projects, & Apache Foundation
Open Source, Sourceforge Projects, & Apache FoundationMohammad Kotb
 
OpenStack: Community driven development, For Real!
OpenStack: Community driven development, For Real!OpenStack: Community driven development, For Real!
OpenStack: Community driven development, For Real!Flavio Percoco Premoli
 
Memory Management in Android
Memory Management in AndroidMemory Management in Android
Memory Management in AndroidOpersys inc.
 
Droidcon Italy 2015: can you work without open source libraries?
Droidcon Italy 2015: can you work without open source libraries?Droidcon Italy 2015: can you work without open source libraries?
Droidcon Italy 2015: can you work without open source libraries?gabrielemariotti
 
Introduction to Android ROM cooking, part of my AnDevCon workshop (AnDevCon S...
Introduction to Android ROM cooking, part of my AnDevCon workshop (AnDevCon S...Introduction to Android ROM cooking, part of my AnDevCon workshop (AnDevCon S...
Introduction to Android ROM cooking, part of my AnDevCon workshop (AnDevCon S...Ron Munitz
 
Flatpak and AppImage usage on openSUSE
Flatpak and AppImage usage on openSUSEFlatpak and AppImage usage on openSUSE
Flatpak and AppImage usage on openSUSEKukuh Syafaat
 
Embedded Android Workshop
Embedded Android WorkshopEmbedded Android Workshop
Embedded Android WorkshopOpersys inc.
 
Debugging Qt, Fixing and Contributing a Bug Report (Using Gitorious)
Debugging Qt, Fixing and Contributing a Bug Report (Using Gitorious)Debugging Qt, Fixing and Contributing a Bug Report (Using Gitorious)
Debugging Qt, Fixing and Contributing a Bug Report (Using Gitorious)account inactive
 

What's hot (20)

Using OpenEmbedded
Using OpenEmbeddedUsing OpenEmbedded
Using OpenEmbedded
 
Why Open Source is Important and What are We Doing About it?
Why Open Source is Important and What are We Doing About it?Why Open Source is Important and What are We Doing About it?
Why Open Source is Important and What are We Doing About it?
 
The RULE project: efficient computing for all GNU/Linux users
The RULE project: efficient computing for all GNU/Linux usersThe RULE project: efficient computing for all GNU/Linux users
The RULE project: efficient computing for all GNU/Linux users
 
IoT Prototyping using BBB and Debian
IoT Prototyping using BBB and DebianIoT Prototyping using BBB and Debian
IoT Prototyping using BBB and Debian
 
PEAR - An introduction
PEAR - An introductionPEAR - An introduction
PEAR - An introduction
 
RISC-V and open source chip design
RISC-V and open source chip designRISC-V and open source chip design
RISC-V and open source chip design
 
Let's Go @ St. Louis CocoaHeads
Let's Go @ St. Louis CocoaHeadsLet's Go @ St. Louis CocoaHeads
Let's Go @ St. Louis CocoaHeads
 
Embedded Android Workshop with Marshmallow
Embedded Android Workshop with MarshmallowEmbedded Android Workshop with Marshmallow
Embedded Android Workshop with Marshmallow
 
Embedded Android Workshop with Lollipop
Embedded Android Workshop with LollipopEmbedded Android Workshop with Lollipop
Embedded Android Workshop with Lollipop
 
Embedded Android Workshop
Embedded Android WorkshopEmbedded Android Workshop
Embedded Android Workshop
 
Teaching Open Source In The University
Teaching Open Source In The UniversityTeaching Open Source In The University
Teaching Open Source In The University
 
Open Source, Sourceforge Projects, & Apache Foundation
Open Source, Sourceforge Projects, & Apache FoundationOpen Source, Sourceforge Projects, & Apache Foundation
Open Source, Sourceforge Projects, & Apache Foundation
 
Using OpenEmbedded
Using OpenEmbeddedUsing OpenEmbedded
Using OpenEmbedded
 
OpenStack: Community driven development, For Real!
OpenStack: Community driven development, For Real!OpenStack: Community driven development, For Real!
OpenStack: Community driven development, For Real!
 
Memory Management in Android
Memory Management in AndroidMemory Management in Android
Memory Management in Android
 
Droidcon Italy 2015: can you work without open source libraries?
Droidcon Italy 2015: can you work without open source libraries?Droidcon Italy 2015: can you work without open source libraries?
Droidcon Italy 2015: can you work without open source libraries?
 
Introduction to Android ROM cooking, part of my AnDevCon workshop (AnDevCon S...
Introduction to Android ROM cooking, part of my AnDevCon workshop (AnDevCon S...Introduction to Android ROM cooking, part of my AnDevCon workshop (AnDevCon S...
Introduction to Android ROM cooking, part of my AnDevCon workshop (AnDevCon S...
 
Flatpak and AppImage usage on openSUSE
Flatpak and AppImage usage on openSUSEFlatpak and AppImage usage on openSUSE
Flatpak and AppImage usage on openSUSE
 
Embedded Android Workshop
Embedded Android WorkshopEmbedded Android Workshop
Embedded Android Workshop
 
Debugging Qt, Fixing and Contributing a Bug Report (Using Gitorious)
Debugging Qt, Fixing and Contributing a Bug Report (Using Gitorious)Debugging Qt, Fixing and Contributing a Bug Report (Using Gitorious)
Debugging Qt, Fixing and Contributing a Bug Report (Using Gitorious)
 

Viewers also liked

IoT: From Arduino Microcontrollers to Tizen Products using IoTivity
IoT: From Arduino Microcontrollers to Tizen Products using IoTivityIoT: From Arduino Microcontrollers to Tizen Products using IoTivity
IoT: From Arduino Microcontrollers to Tizen Products using IoTivitySamsung Open Source Group
 
Sistemi domotici integrati per la gestione intelligente d’ambiente
Sistemi domotici integrati per la gestione intelligente d’ambienteSistemi domotici integrati per la gestione intelligente d’ambiente
Sistemi domotici integrati per la gestione intelligente d’ambientefreedomotic
 

Viewers also liked (6)

tdc2015-strategy-devel-20150916
tdc2015-strategy-devel-20150916tdc2015-strategy-devel-20150916
tdc2015-strategy-devel-20150916
 
Development Boards for Tizen IoT
Development Boards for Tizen IoTDevelopment Boards for Tizen IoT
Development Boards for Tizen IoT
 
IoTivity: From Devices to the Cloud
IoTivity: From Devices to the CloudIoTivity: From Devices to the Cloud
IoTivity: From Devices to the Cloud
 
Toward "OCF Automotive" profile
Toward "OCF Automotive" profileToward "OCF Automotive" profile
Toward "OCF Automotive" profile
 
IoT: From Arduino Microcontrollers to Tizen Products using IoTivity
IoT: From Arduino Microcontrollers to Tizen Products using IoTivityIoT: From Arduino Microcontrollers to Tizen Products using IoTivity
IoT: From Arduino Microcontrollers to Tizen Products using IoTivity
 
Sistemi domotici integrati per la gestione intelligente d’ambiente
Sistemi domotici integrati per la gestione intelligente d’ambienteSistemi domotici integrati per la gestione intelligente d’ambiente
Sistemi domotici integrati per la gestione intelligente d’ambiente
 

Similar to tizen-upstream-coop-tdc2014-pcoval

Introduction to Git
Introduction to GitIntroduction to Git
Introduction to GitAmit Mathur
 
Civilized Git Process
Civilized Git ProcessCivilized Git Process
Civilized Git ProcessTu Hoang
 
Introducing Git and git flow
Introducing Git and git flow Introducing Git and git flow
Introducing Git and git flow Sebin Benjamin
 
Developing with versioning and CI/CD
Developing with versioning and CI/CDDeveloping with versioning and CI/CD
Developing with versioning and CI/CDMatteo Di Carlo
 
Introduction of Git
Introduction of GitIntroduction of Git
Introduction of GitWayne Chen
 
My "Perfect" Toolchain Setup for Grails Projects
My "Perfect" Toolchain Setup for Grails ProjectsMy "Perfect" Toolchain Setup for Grails Projects
My "Perfect" Toolchain Setup for Grails ProjectsGR8Conf
 
BLUG 2012 Version Control for Notes Developers
BLUG 2012 Version Control for Notes DevelopersBLUG 2012 Version Control for Notes Developers
BLUG 2012 Version Control for Notes DevelopersMartin Jinoch
 
[scala.by] Launching new application fast
[scala.by] Launching new application fast[scala.by] Launching new application fast
[scala.by] Launching new application fastDenis Karpenko
 
Open source projects with python
Open source projects with pythonOpen source projects with python
Open source projects with pythonroskakori
 
Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)
Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)
Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)Per Henrik Lausten
 
Git for work groups ironhack talk
Git for work groups ironhack talkGit for work groups ironhack talk
Git for work groups ironhack talkTiago Ameller
 
Advanced Git Tutorial
Advanced Git TutorialAdvanced Git Tutorial
Advanced Git TutorialSage Sharp
 
Git and GitHub workflows
Git and GitHub workflowsGit and GitHub workflows
Git and GitHub workflowsArthur Shvetsov
 
Mastering git - Workflow
Mastering git - WorkflowMastering git - Workflow
Mastering git - WorkflowTahsin Abrar
 
How to plan and define your CI-CD pipeline
How to plan and define your CI-CD pipelineHow to plan and define your CI-CD pipeline
How to plan and define your CI-CD pipelineElasTest Project
 
Introduction to Git and Github - Google Developer Student Clubs CET, Trivandrum
Introduction to Git and Github - Google Developer Student Clubs CET, TrivandrumIntroduction to Git and Github - Google Developer Student Clubs CET, Trivandrum
Introduction to Git and Github - Google Developer Student Clubs CET, TrivandrumAbhijitNarayan2
 

Similar to tizen-upstream-coop-tdc2014-pcoval (20)

Introduction to Git
Introduction to GitIntroduction to Git
Introduction to Git
 
Git Basics
Git BasicsGit Basics
Git Basics
 
Civilized Git Process
Civilized Git ProcessCivilized Git Process
Civilized Git Process
 
Introducing Git and git flow
Introducing Git and git flow Introducing Git and git flow
Introducing Git and git flow
 
Open source
Open sourceOpen source
Open source
 
Developing with versioning and CI/CD
Developing with versioning and CI/CDDeveloping with versioning and CI/CD
Developing with versioning and CI/CD
 
Introduction of Git
Introduction of GitIntroduction of Git
Introduction of Git
 
My "Perfect" Toolchain Setup for Grails Projects
My "Perfect" Toolchain Setup for Grails ProjectsMy "Perfect" Toolchain Setup for Grails Projects
My "Perfect" Toolchain Setup for Grails Projects
 
BLUG 2012 Version Control for Notes Developers
BLUG 2012 Version Control for Notes DevelopersBLUG 2012 Version Control for Notes Developers
BLUG 2012 Version Control for Notes Developers
 
Switching to Git
Switching to GitSwitching to Git
Switching to Git
 
[scala.by] Launching new application fast
[scala.by] Launching new application fast[scala.by] Launching new application fast
[scala.by] Launching new application fast
 
Open source projects with python
Open source projects with pythonOpen source projects with python
Open source projects with python
 
Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)
Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)
Source Control with Domino Designer 8.5.3 and Git (DanNotes, November 28, 2012)
 
Git for work groups ironhack talk
Git for work groups ironhack talkGit for work groups ironhack talk
Git for work groups ironhack talk
 
Advanced Git Tutorial
Advanced Git TutorialAdvanced Git Tutorial
Advanced Git Tutorial
 
Git and GitHub workflows
Git and GitHub workflowsGit and GitHub workflows
Git and GitHub workflows
 
Mastering git - Workflow
Mastering git - WorkflowMastering git - Workflow
Mastering git - Workflow
 
How to plan and define your CI-CD pipeline
How to plan and define your CI-CD pipelineHow to plan and define your CI-CD pipeline
How to plan and define your CI-CD pipeline
 
Introduction to Git and Github - Google Developer Student Clubs CET, Trivandrum
Introduction to Git and Github - Google Developer Student Clubs CET, TrivandrumIntroduction to Git and Github - Google Developer Student Clubs CET, Trivandrum
Introduction to Git and Github - Google Developer Student Clubs CET, Trivandrum
 
Git essentials
Git essentialsGit essentials
Git essentials
 

More from Phil www.rzr.online.fr (17)

Iot privacy-soscon-2019
Iot privacy-soscon-2019Iot privacy-soscon-2019
Iot privacy-soscon-2019
 
aframe-webthing-20190710
aframe-webthing-20190710aframe-webthing-20190710
aframe-webthing-20190710
 
web-of-twins-20190604rzr
web-of-twins-20190604rzrweb-of-twins-20190604rzr
web-of-twins-20190604rzr
 
digital-twins-webthings-iotjs-20190512rzr
digital-twins-webthings-iotjs-20190512rzrdigital-twins-webthings-iotjs-20190512rzr
digital-twins-webthings-iotjs-20190512rzr
 
wotxr-20190320rzr
wotxr-20190320rzrwotxr-20190320rzr
wotxr-20190320rzr
 
mozilla-things-fosdem-2019
mozilla-things-fosdem-2019mozilla-things-fosdem-2019
mozilla-things-fosdem-2019
 
IoT-javascript-2019-fosdem
IoT-javascript-2019-fosdemIoT-javascript-2019-fosdem
IoT-javascript-2019-fosdem
 
webthing-iotjs-tizenrt-cdl2018-20181117rzr
webthing-iotjs-tizenrt-cdl2018-20181117rzrwebthing-iotjs-tizenrt-cdl2018-20181117rzr
webthing-iotjs-tizenrt-cdl2018-20181117rzr
 
webthing-iotjs-20181027rzr
webthing-iotjs-20181027rzrwebthing-iotjs-20181027rzr
webthing-iotjs-20181027rzr
 
tizen-rt-javascript-20181011
tizen-rt-javascript-20181011tizen-rt-javascript-20181011
tizen-rt-javascript-20181011
 
webthing-floss-iot-20180607rzr
webthing-floss-iot-20180607rzrwebthing-floss-iot-20180607rzr
webthing-floss-iot-20180607rzr
 
osvehicle-connected-20160429
osvehicle-connected-20160429osvehicle-connected-20160429
osvehicle-connected-20160429
 
Iotivity atmel-20150328rzr
Iotivity atmel-20150328rzrIotivity atmel-20150328rzr
Iotivity atmel-20150328rzr
 
Iotivity tizen-fosdem-2015
Iotivity tizen-fosdem-2015Iotivity tizen-fosdem-2015
Iotivity tizen-fosdem-2015
 
FOSDEM2015: Porting Tizen:Common to open source hardware devices
FOSDEM2015: Porting Tizen:Common to open source hardware devicesFOSDEM2015: Porting Tizen:Common to open source hardware devices
FOSDEM2015: Porting Tizen:Common to open source hardware devices
 
tizen-oshw-tds14sh
tizen-oshw-tds14shtizen-oshw-tds14sh
tizen-oshw-tds14sh
 
Tizen sdk-solutionslinux-20130529
Tizen sdk-solutionslinux-20130529Tizen sdk-solutionslinux-20130529
Tizen sdk-solutionslinux-20130529
 

Recently uploaded

GraphSummit London Feb 2024 - ABK - Neo4j Product Vision and Roadmap.pptx
GraphSummit London Feb 2024 - ABK - Neo4j Product Vision and Roadmap.pptxGraphSummit London Feb 2024 - ABK - Neo4j Product Vision and Roadmap.pptx
GraphSummit London Feb 2024 - ABK - Neo4j Product Vision and Roadmap.pptxNeo4j
 
Unleash the Solace Pub Sub connector | Banaglore MuleSoft Meetup #31
Unleash the Solace Pub Sub connector | Banaglore MuleSoft Meetup #31Unleash the Solace Pub Sub connector | Banaglore MuleSoft Meetup #31
Unleash the Solace Pub Sub connector | Banaglore MuleSoft Meetup #31shyamraj55
 
National Institute of Standards and Technology (NIST) Cybersecurity Framework...
National Institute of Standards and Technology (NIST) Cybersecurity Framework...National Institute of Standards and Technology (NIST) Cybersecurity Framework...
National Institute of Standards and Technology (NIST) Cybersecurity Framework...MichaelBenis1
 
Leonis Insights: The State of AI (7 trends for 2023 and 7 predictions for 2024)
Leonis Insights: The State of AI (7 trends for 2023 and 7 predictions for 2024)Leonis Insights: The State of AI (7 trends for 2023 and 7 predictions for 2024)
Leonis Insights: The State of AI (7 trends for 2023 and 7 predictions for 2024)Jay Zhao
 
Roundtable_-_API_Research__Testing_Tools.pdf
Roundtable_-_API_Research__Testing_Tools.pdfRoundtable_-_API_Research__Testing_Tools.pdf
Roundtable_-_API_Research__Testing_Tools.pdfMostafa Higazy
 
Mastering Play Store App Listing and Optimization
Mastering Play Store App Listing and OptimizationMastering Play Store App Listing and Optimization
Mastering Play Store App Listing and OptimizationAppsthentic Technology
 
AGFM - Toyota Coaster 1HZ Install Guide.pdf
AGFM - Toyota Coaster 1HZ Install Guide.pdfAGFM - Toyota Coaster 1HZ Install Guide.pdf
AGFM - Toyota Coaster 1HZ Install Guide.pdfRodneyThomas28
 
Mind your App Footprint 🐾⚡️🌱 (@FlutterHeroes 2024)
Mind your App Footprint 🐾⚡️🌱 (@FlutterHeroes 2024)Mind your App Footprint 🐾⚡️🌱 (@FlutterHeroes 2024)
Mind your App Footprint 🐾⚡️🌱 (@FlutterHeroes 2024)François
 
How AI and ChatGPT are changing cybersecurity forever.pptx
How AI and ChatGPT are changing cybersecurity forever.pptxHow AI and ChatGPT are changing cybersecurity forever.pptx
How AI and ChatGPT are changing cybersecurity forever.pptxInfosec
 
Utilising Energy Modelling for LCSF and PSDS Funding Applications
Utilising Energy Modelling for LCSF and PSDS Funding ApplicationsUtilising Energy Modelling for LCSF and PSDS Funding Applications
Utilising Energy Modelling for LCSF and PSDS Funding ApplicationsIES VE
 
Introducing the New FME Community Webinar - Feb 21, 2024 (2).pdf
Introducing the New FME Community Webinar - Feb 21, 2024 (2).pdfIntroducing the New FME Community Webinar - Feb 21, 2024 (2).pdf
Introducing the New FME Community Webinar - Feb 21, 2024 (2).pdfSafe Software
 
AI for Educators - Integrating AI in the Classrooms
AI for Educators - Integrating AI in the ClassroomsAI for Educators - Integrating AI in the Classrooms
AI for Educators - Integrating AI in the ClassroomsPremsankar Chakkingal
 
SKY Paradigms, change and cake: the steep curve of introducing new technologies
SKY Paradigms, change and cake: the steep curve of introducing new technologiesSKY Paradigms, change and cake: the steep curve of introducing new technologies
SKY Paradigms, change and cake: the steep curve of introducing new technologiesNeo4j
 
Cultivating Entrepreneurial Mindset in Product Management: Strategies for Suc...
Cultivating Entrepreneurial Mindset in Product Management: Strategies for Suc...Cultivating Entrepreneurial Mindset in Product Management: Strategies for Suc...
Cultivating Entrepreneurial Mindset in Product Management: Strategies for Suc...Product School
 
LF Energy Webinar: Introduction to TROLIE
LF Energy Webinar: Introduction to TROLIELF Energy Webinar: Introduction to TROLIE
LF Energy Webinar: Introduction to TROLIEDanBrown980551
 
Huntly presentation deck design for Behance
Huntly presentation deck design for BehanceHuntly presentation deck design for Behance
Huntly presentation deck design for Behancewhalesdesign
 
KUBRICK Graphs: A journey from in vogue to success-ion
KUBRICK Graphs: A journey from in vogue to success-ionKUBRICK Graphs: A journey from in vogue to success-ion
KUBRICK Graphs: A journey from in vogue to success-ionNeo4j
 
Python For Kids - Sách Lập trình cho trẻ em
Python For Kids - Sách Lập trình cho trẻ emPython For Kids - Sách Lập trình cho trẻ em
Python For Kids - Sách Lập trình cho trẻ emNho Vĩnh
 
Act Like an Owner, Challenge Like a VC by former CPO, Tripadvisor
Act Like an Owner,  Challenge Like a VC by former CPO, TripadvisorAct Like an Owner,  Challenge Like a VC by former CPO, Tripadvisor
Act Like an Owner, Challenge Like a VC by former CPO, TripadvisorProduct School
 

Recently uploaded (20)

GraphSummit London Feb 2024 - ABK - Neo4j Product Vision and Roadmap.pptx
GraphSummit London Feb 2024 - ABK - Neo4j Product Vision and Roadmap.pptxGraphSummit London Feb 2024 - ABK - Neo4j Product Vision and Roadmap.pptx
GraphSummit London Feb 2024 - ABK - Neo4j Product Vision and Roadmap.pptx
 
In sharing we trust. Taking advantage of a diverse consortium to build a tran...
In sharing we trust. Taking advantage of a diverse consortium to build a tran...In sharing we trust. Taking advantage of a diverse consortium to build a tran...
In sharing we trust. Taking advantage of a diverse consortium to build a tran...
 
Unleash the Solace Pub Sub connector | Banaglore MuleSoft Meetup #31
Unleash the Solace Pub Sub connector | Banaglore MuleSoft Meetup #31Unleash the Solace Pub Sub connector | Banaglore MuleSoft Meetup #31
Unleash the Solace Pub Sub connector | Banaglore MuleSoft Meetup #31
 
National Institute of Standards and Technology (NIST) Cybersecurity Framework...
National Institute of Standards and Technology (NIST) Cybersecurity Framework...National Institute of Standards and Technology (NIST) Cybersecurity Framework...
National Institute of Standards and Technology (NIST) Cybersecurity Framework...
 
Leonis Insights: The State of AI (7 trends for 2023 and 7 predictions for 2024)
Leonis Insights: The State of AI (7 trends for 2023 and 7 predictions for 2024)Leonis Insights: The State of AI (7 trends for 2023 and 7 predictions for 2024)
Leonis Insights: The State of AI (7 trends for 2023 and 7 predictions for 2024)
 
Roundtable_-_API_Research__Testing_Tools.pdf
Roundtable_-_API_Research__Testing_Tools.pdfRoundtable_-_API_Research__Testing_Tools.pdf
Roundtable_-_API_Research__Testing_Tools.pdf
 
Mastering Play Store App Listing and Optimization
Mastering Play Store App Listing and OptimizationMastering Play Store App Listing and Optimization
Mastering Play Store App Listing and Optimization
 
AGFM - Toyota Coaster 1HZ Install Guide.pdf
AGFM - Toyota Coaster 1HZ Install Guide.pdfAGFM - Toyota Coaster 1HZ Install Guide.pdf
AGFM - Toyota Coaster 1HZ Install Guide.pdf
 
Mind your App Footprint 🐾⚡️🌱 (@FlutterHeroes 2024)
Mind your App Footprint 🐾⚡️🌱 (@FlutterHeroes 2024)Mind your App Footprint 🐾⚡️🌱 (@FlutterHeroes 2024)
Mind your App Footprint 🐾⚡️🌱 (@FlutterHeroes 2024)
 
How AI and ChatGPT are changing cybersecurity forever.pptx
How AI and ChatGPT are changing cybersecurity forever.pptxHow AI and ChatGPT are changing cybersecurity forever.pptx
How AI and ChatGPT are changing cybersecurity forever.pptx
 
Utilising Energy Modelling for LCSF and PSDS Funding Applications
Utilising Energy Modelling for LCSF and PSDS Funding ApplicationsUtilising Energy Modelling for LCSF and PSDS Funding Applications
Utilising Energy Modelling for LCSF and PSDS Funding Applications
 
Introducing the New FME Community Webinar - Feb 21, 2024 (2).pdf
Introducing the New FME Community Webinar - Feb 21, 2024 (2).pdfIntroducing the New FME Community Webinar - Feb 21, 2024 (2).pdf
Introducing the New FME Community Webinar - Feb 21, 2024 (2).pdf
 
AI for Educators - Integrating AI in the Classrooms
AI for Educators - Integrating AI in the ClassroomsAI for Educators - Integrating AI in the Classrooms
AI for Educators - Integrating AI in the Classrooms
 
SKY Paradigms, change and cake: the steep curve of introducing new technologies
SKY Paradigms, change and cake: the steep curve of introducing new technologiesSKY Paradigms, change and cake: the steep curve of introducing new technologies
SKY Paradigms, change and cake: the steep curve of introducing new technologies
 
Cultivating Entrepreneurial Mindset in Product Management: Strategies for Suc...
Cultivating Entrepreneurial Mindset in Product Management: Strategies for Suc...Cultivating Entrepreneurial Mindset in Product Management: Strategies for Suc...
Cultivating Entrepreneurial Mindset in Product Management: Strategies for Suc...
 
LF Energy Webinar: Introduction to TROLIE
LF Energy Webinar: Introduction to TROLIELF Energy Webinar: Introduction to TROLIE
LF Energy Webinar: Introduction to TROLIE
 
Huntly presentation deck design for Behance
Huntly presentation deck design for BehanceHuntly presentation deck design for Behance
Huntly presentation deck design for Behance
 
KUBRICK Graphs: A journey from in vogue to success-ion
KUBRICK Graphs: A journey from in vogue to success-ionKUBRICK Graphs: A journey from in vogue to success-ion
KUBRICK Graphs: A journey from in vogue to success-ion
 
Python For Kids - Sách Lập trình cho trẻ em
Python For Kids - Sách Lập trình cho trẻ emPython For Kids - Sách Lập trình cho trẻ em
Python For Kids - Sách Lập trình cho trẻ em
 
Act Like an Owner, Challenge Like a VC by former CPO, Tripadvisor
Act Like an Owner,  Challenge Like a VC by former CPO, TripadvisorAct Like an Owner,  Challenge Like a VC by former CPO, Tripadvisor
Act Like an Owner, Challenge Like a VC by former CPO, Tripadvisor
 

tizen-upstream-coop-tdc2014-pcoval

  • 1. Cooperating with upstream projects Packaging tips and tricks Philippe Coval Tizen engineer <https://wiki.tizen.org/wiki/User:Pcoval> <philippe.coval@open.eurogiciel.org>
  • 3. 3 Who am I ? ● FLOSS enthusiast ● Communities: MeeGo/harmattan, debian, Qt, gnome, meamo, jolla ... ● Tizen packager, maintainer and developer ● Co maintenance : ● Domains: Automotive, Graphics & UI frameworks, Multimedia... ● Focus on core distro, graphics, toolkits (EFL, Qt … ) ● Hacked webapps on Tizen RDPQ, ia32 mobile, ARM ● Works for Eurogiciel Opensource Dept ● Intel OTC contractor for 2 year located in France (Brittany)
  • 4. 4 Agenda ● Cooperation matters ● Upstream opensource projects ● Tizen integrate them ● A bug life ● Patches , trackers and git flow ● Communities ● Ask for Tips ● Tools : git, gbs, rpm
  • 6. 6 Cooperation matters : Why ? ● Goals : Philosophy + Pragmatism ● Maximize : result / ( efforts * time ) ● Best skills on worst issues ● Better quality (Several POV More tests = More feedback) ● Benefit for tizen (system) ● Focus on Integration not development ● Long term maintenance ● Benefit for upstream (softwares) ● Focus on Development not Integration ● Users base / testing real use case ● Tizen:Common : Bleeding edge ● Wayland, connman, gfx stack (intel drivers)
  • 7. 7 Cooperation matters : How ? ● Communicate ● In the open several places : connect tizen to upstream ● Be nice, patient and proactive ● Use efficient tools : ● git, gbs ● Track changes ● Avoid loosing contexts ● Ease up co maintenance ● Community : + not vs ● Downstream + upstream ● Inside project + Outside project
  • 9. 9 Communicate ● Is the bug or feature tracked ? ● No : Open bug http://bugs.tizen.org , (TC if not profile specific) ● Yes : let know your plans ● Is the bug specific to tizen ? ● Yes : fix, commit mention “Bug-Tizen: TC-42” ● Is this and upstream bug ? ● Yes : Open an item on upstream tracker or mailing list ● Link it on tizen tracker ASAP ● Benefits : ● Avoid duplication of efforts / Long term maintenance
  • 10. 10 Package for Tizen ● All packages are in VC :-) ● check repo manifest ● Get the sources : create upstream branch ● git clone -b upstrean $git_upstreamurl ● gbs import ../$package-$version.tar.gz ● RPM packaging ● create “packaging/$package.spec” ● Build package along tizen rpm repos ● gbs build ● Ask me for tips : ● Avoid packaging mistake, git submodules, community repo ...
  • 11. 11 Upstream & tizen git branches {master}@upstream <0.4.1> {tizen}@tizen packaging: Initial packaging on 0.4.1 for Tizen Bug-Tizen: TC-41 {upstream}@tizen <upstream/0.4.1> {master}@upstream ... git checkout -b upstream $tag git checkout -b tizen git add packaging/*.spec gbs build
  • 12. 12 Develop on Tizen ● Use Tizen:Common if possible ● Minimal config, then will land in other profiles (IVI) ● Ability to hack, build and run on a target (desktop) ● Track changes : using DEP3 conventions Bug-Tizen: TC-42 Bug: 2014 ● Verify you changes, check packaging, test ● Ask for Tips : ● Sharing code in sandboxes ● Avoid spec files mistakes
  • 13. 13 Local change on tizen branch {tizen}@tizen packaging: Initial packaging on 0.4.1 for Tizen Bug-Tizen: TC-41 {master}@upstream {tizen}@tizen packaging: Initial packaging on 0.4.1 for Tizen Bug-Tizen: TC-41 {tizen}@local Fix bug Y by adding feature X Bug-Tizen: TC-42 $ git rebase remotes/origin/devel $ git format-patch -o ../patches/ HEAD~1
  • 14. 14 Show for feedback ● Use upstream bug report at entry point ● Rebase on upstream's devel branch ● Check your changes are clean ● Is tracked (using Bug:) ● Keep the changes minimal : (tizen packaging free) ● Publish patch ● and ask authors kindly for reviewing code ● Take care of it ● Take feedbacks into account , improve to reach consensus ● Make it evolve until agreement ● Be patient, constructive and never give up :)
  • 15. 15 Change rebased on upstream dev branch {tizen}@tizen packaging: Initial packaging on 0.4.1 for Tizen Bug-Tizen: TC-41 {master}@upstream {devel}@upstream {for-upstream}@local Fix bug Y by adding feature X Bug: 2014
  • 16. 16 Get the change merged upstream ● is it reviewed ? ● positive feedback ? none negative ? ● Is it merged upstream ? ● git cherry-pick , reword commit message using DEP3 tags : Bug-Tizen: TC-42 Origin: $upstream_url ● git snapshot ● Is change in new released version ? ● Rebase on new version : git commit -sam 'packaging: Bump to 1.4.2nBug-Tizen: TC-42'
  • 17. 17 6/ Update version will bring the change packaging: Initial packaging on 0.4.1 for Tizen Bug-Tizen: TC-41 <0.4.1> Fix bug Y by adding feature X Bug: 2014 <0.4.2> {tizen}@tizen : packaging : Bump to 0.4.2 Bug-Tizen: TC-42 git checkout upstream git rebase -i $new git checkout tizen git rebase -i upstream git commit {master}@upstream
  • 18. 18 But in reality ? ● Upstream integration will happened when ready ● but it was needed for yesterday ● timeout expire (TBD ~1 week) ● If no negative feedback ● Just commit and push it to tizen reviewing branch Tags: “Bug-Tizen:” “Bug:” “Origin:“ ... ● Risky ? Then try to make the changes conditional ● Packaging flag or env variable ● Dont mix upstream changes and tizen/packaging ones ● Half done job ● Keep an eye for next version ● maintain change downstream (and maybe also upstream)
  • 19. 19 Downstream change on tizen branch {master}@upstream {tizen}@tizen packaging: Initial packaging on 0.4.1 for Tizen Bug-Tizen: TC-41 {tizen}@tizen Fix bug Y by adding feature X Bug: 2014 Bug-Tizen: TC-41 Origin : $url_of_patch
  • 20. 20 Workflow Summary ● Report, assign, comment bugs ● Develop on tizen system : Tizen:Common ● Rebase on upstream ● Track changes : Bug: / Bug-Tizen: / Origin: $url ● Forward patch to upstream project for reviewing ● Adapt if needed ● Merge it to tizen ● reviewing tizen side too
  • 21. 21 Downstream patches examples ● Downstream change ● Upstream : reviewed about to merge URL: https://codereview.qt-project.org/#change,84222 Task-number: QTBUG-38633/part/2of2 ● Tizen : merged URL : https://review.tizen.org/gerrit/#/c/21158/ Task-number: QTBUG-38633/part/2of2 Bug-Tizen: TIVI-3113 Origin: https://codereview.qt-project.org/#change,84222 ● Upstreamed changes : ● Connman : https://01.org/jira/browse/CM-655 ● Wayland : Bug-Tizen: TIVI-2049 TIVI-2792 Bug: 53214 (thx tarnyko)
  • 23. 23 Community contribs ● Projects : ● QtForTizen, tizen-sunxi, MonoTizen, yours? ● Platform : ● Start packaging, file bug, look for mentors, share source ● Applications : ● Let us know, share .wgt or code ● https://wiki.tizen.org/wiki/Applications ● Community repo : ● Binaries : for native packages and/or applications etc ● Sources : shared project for pre-integration, maintenance facilities : http://gitorious.org/tizen
  • 24. 24 Brotherhood ● Don't reinvent the wheel : Give and Take ● RPM distro / spec files ● Meego : the root of Tizen ● Mer : used as upstream for Qt5 ● OpenSuse / Fedora etc ● Compare to other systems : ● Connectivity : connman. Bluez : Mer ● Systemd : ArchLinux, Debian? ● Xwalk, webkit / blink : android ? ● Efl, Wayland :?
  • 26. 26 Ask me for tips ● Packaging ● Intial packaging ● git modules ● gbs : upstream git or tarball ● gbs : use upstream tags ● rpm : macros ● rpm : multi configuration ● Publishing ● Git Sandboxes ● Commit changes ● Split packaging / downstream ● Bump version
  • 27. 27 Initial Packaging : Create upstream branch ● Git vs tarballs git (gbs import) ● Git : Upstream will feel home and can cherry pick patches ● Git : easier rebase on version bump ● Tar : bring generated files ● Other SCM : git-svn . Git-hg ● Share the source ● Request creation of git repo on tizen.org ● or share your own/community
  • 28. 28 Gbs : git modules ● Git in git (~ svn externals) ● used for common code among projects ● Example ● Source: platform/upstream/gstreamer-vaapi.git ● Usage : git rebase upstream sh packaging/gitmodules.sh git commit -sam 'packaging: gitmodules refresh' packaging/*.tar.bz2
  • 29. 29 Packaging : RPM : Use macros ● Use macros : ● Ie: not arch dependents path : /usr/lib != /usr/lib64 != %{_libdir} ● Ie: systemd : - /usr/lib/systemd/user/*.service + %{_userunitdir}/*.service ● Tips : rpm --eval %_sysconfdir : /etc rpm -ql rpm| grep macros : /usr/lib/rpm/tizen/macros … ● packaging/*.changes files vs git log ?
  • 30. 30 Packaging : RPM : Improve spec files ● Multiconfiguration packaging ● Test features not profiles or versions ● Ie: Graphics stack : (wayland vs X11 support) ● Don't hardcode path uses variables (tz-platform-config) ● Release: Field in packaging/*.spec ● Depends on versionned subpackages Requires: %{name} = %{version}-%{release} ● 0 for gbs ● Tip: increment on local build for repo: release?=$(shell date +%Y%m%d.%s) zypper update -r $USER
  • 31. 31 How developer can ease maintainers job ● Avoid to mix packaging changes and sources patches ● benefits : upstream can pick your patch, and will skipped on rebase ● Identify packaging changes using prefix ● Ie: git commit -sam 'packaging: Intial packaging on x.y.z for Tizen' ● Easier maintenance (think git rebase -i) ● Keep source changes simplest ● Ie: git commit -sam 'Install to $DESTDIR' Makefile ● Forward upstream and track it
  • 32. 32 Maintainer updates to new version ● No need for upstream/x.y.z edit “.gbs.conf [general] upstream_branch = upstream upstream_tag = libevdev-${upstreamversion} ● Need for snapshot versions ? $ git describe : upstream/0.15.2+9+g40c3756 ● Track dropped / changes $ git commit -sam 'packaging: Bump to x.y.z skip c7f2a1e... API: add support for buffer exports' ● Reset head after checks ● gbs export : patch serie vs binary patch archive ● git push –force
  • 33. 33 Developer need to share work in progress ? ● sandbox/$USER/tizen ● Based on /tizen branch (and then /upstream) ● Purpose: push for review first and then share changes before merged ● sandbox/$USER/upstream ● Upstream's master branch if needed to rebase (ahead upstream branch) ● sandbox/$USER/devel ● Based on previous branch ● workaround for missing tags : $ cat $package/packaging/../.gbs.conf +upstream_branch = sandbox/$USER/upstream +upstream_tag = sandbox/$USER/upstream
  • 34. 34 Helper scripts and recipes ● tizen-helper ● https://gitorious.org/tizen ● Scripts and recipes to share ● Local Git cache ● Locally : tizen-helper/bin/git.sh clone https://gitorious.org/tizen/tizen-helper.git alias git=git.sh ● On a lan : git cclone https://github.com/kooltux/git-cache
  • 35. 35 References ● Packaging / Workflow ● https://wiki.tizen.org/wiki/Packaging/Guidelines ● https://wiki.tizen.org/wiki/Talk:Packaging/Guidelines ● http://dep.debian.net/deps/dep3/ ● Community ● https://gitorious.org/tizen ● https://wiki.tizen.org/wiki/Applications ● http://www.tizenexperts.com/ ● Me or Related WIP: ● https://wiki.tizen.org/wiki/User:Pcoval ● https://dockr.eurogiciel.fr/blogs/embedded/author/pcl/
  • 36. 36 Thanks ● Tizen community : for the spirit ● Developers ● Reviewers / Maintainers ● Hackers ● Sponsorship : for helping to be there ● Linux Foundation ● Eurogiciel ● Tizen Association : for the project and TdcSf14 gifts ● Intel ● Samsung ● You : for caring of coop
  • 37. Q & A Ask me online <https://wiki.tizen.org/wiki/User:Pcoval>
  • 38. Open source development and integration : Several Maintainers for tizen.org Embedded systems for real-time multimedia: - Widi/Miracast stack, - Wayland/Weston, - Webkit2 browser with HW acceleration, Application: HTML5/CSS3, jquery, jqmobi, Cordova Location : Brittany - France