SlideShare una empresa de Scribd logo
1 de 19
Descargar para leer sin conexión
Samsung Open Source Group 1 https://social.samsunginter.net/@rzr
Up/Down Stream Flows
Harmony in community not “Far West” !
<https://www.meetup.com/fr-FR/Rennes-Embedded/>
#RennesEmbedded, Rennes France <2019-04-11>
Philippe Coval
Samsung Open Source Group / SRUK
p.coval@samsung.com
Samsung Open Source Group 2 https://social.samsunginter.net/@rzr
$ who am i
●
Software engineer at Samsung OSG
– Belong to SRUK team based in Rennes, France
– Currently working on “Privacy by Design” Web of Things,
– Interest: Free Libre Open Source, OpenData, OpenDesign...
●
Ping me on the fediverse:
– https://social.samsunginter.net/@rzr
Samsung Open Source Group 3
“Without trust there's no cooperation.
And without cooperation there's no progress.
History stops.”
~ Rick Yancey, The Last Star
Samsung Open Source Group 4 https://social.samsunginter.net/@rzr
Types of FLOSS models
●
Built with OSS:
– Some libs are used in products
●
+ patches (shared or not)
●
Built on OSS: Custom code on top
– Free OSS base and un-free extensions
– The base is shared to/with community
●
Behind doors / Inner source
– Public on releases (Code drop)
●
not development branches or metadata
●
May not review community contribs
●
To open development:
– Governance models
●
Community is involved
●
Meritocracy
●
decision making, roadmaps
●
Constitution, CoC
– may help in case of conflicts
●
To OpenSource foundations
– Copyright holders
– Neutral entity founded by members
Samsung Open Source Group 5 https://social.samsunginter.net/@rzr
Avoid Pitfalls
●
FLOSS is gratis (if your time has no value)
– Freeriders (taking without giving)’s back draft: Reputation, Community Support…
●
FLOSS Code will evolve with or without you!
– Your base is already open, and will improve if used (by others)
– You will never catch up, it will affect your quality (and users’ security)
●
Better focus on your value and build a better common base:
– Design smart, isolate elements:
●
UNIX philosophy & KISS principle not “Not Invented here”
●
Be a good and smarter citizen since day one
– Comply licenses, Separate upstream and downstream works
Samsung Open Source Group 6 https://social.samsunginter.net/@rzr
How to maximize efficiency of FLOSS use
●
Improve culture & skills:
– Dedicate experts with FLOSS Culture: Tech & Legal background
– Part of company and involved in communities
– Scale: Learn and Teach
●
Setup infrastructure: Listen to developers requirements
– To use their most productive environments:
●
GNU/Linux desktop, any flavours, root
– To reach communities
●
IRC, mailing lists etc
– Transparent proxies/firewall, Flexible Email (IMAP/SMTP), bandwidth (setup cache)
Samsung Open Source Group 7 https://social.samsunginter.net/@rzr
Tooling
●
Adopt upstream tools: SCM (git), build system
– Switch to git: The sooner, the better
– Eventually use bridge like git-svn (but it will create more confusion)
– git is flexible, not github (how will you export reviews and PR?)
●
CI may help too (if not required)
– Can be self hosted on site or outsourced
Samsung Open Source Group 8 https://social.samsunginter.net/@rzr
Cooperation
●
Forward patches to upstream first
– Maybe you are doing it wrong? Or upstream may suggest better way.
– Could be merged in stable version (safer)
– Small changes are faster to review
– Easier to apply to several branches (less conflicts) and revert
●
Then merge downstream:
– Adjust delay according to your policies (eg: 48h to 7days)
●
Keep an eye on it, try to reduce gap
– Technical debt is growing (until it’s upstreamed)
Samsung Open Source Group 9 https://social.samsunginter.net/@rzr
History >>> Code
●
Mixing code randomly is a risky behavior and not future proof
●
Don’t break “evolution chain”
– use external dependencies:
– fork project in last resort but keep history
●
Preserve history/authorship:
– Avoid to import/copy code for other tree (public or private)
●
Helpful commit messages:
git commit -sam ‘context: Add X for feature Y...
Because of Z reason...
Bug: url://upstream/project/bug/42
’
Samsung Open Source Group 10 https://social.samsunginter.net/@rzr
Linking to contexts
●
Trackers might be updated after commits (xlinks, regressions etc)
– Origin: $url (Where patch was published first)
– Forwarded: $url (Where upstream will review it)
– Bug: $url (Upstream context)
– Bug-$downstream: $url or $id (downstream context)
●
Bug-Debian: #42 (DEP3)
– Relate-to: $url
– Change-id: I1dbadc0de… (unique id to track or search)
Samsung Open Source Group 11 https://social.samsunginter.net/@rzr
Attribution
●
Respect authors (and their works or time), in commit messages:
– Author: ...
– Thanks-to:, Credit-to:, Reported-by:, Suggested-by: ...
●
Author is the most knowledgeable why or how the change was made:
– (Current or Future) License may require attributions (ex: BSD-3-Clause-Attribution)
– May be contacted afterwards for project interest (regressions etc)
●
Commits may be signed
– Per project policy: to ensure integrity or authorship
– Comply with project’s license
– Ensure code is not “borrowed” from random source
Samsung Open Source Group 12 https://social.samsunginter.net/@rzr
Legal & Security
●
FLOSS is not public domain: Rights and duties
– Different philosophies:
●
Author/User, Business/Community, OSI/FSF, Permissive/Copyleft…
●
SPDX: Software Package Data Exchange
– Standard (namespace) for licensing
– SPDX Header in source:
●
SPDX-License-Identifier: GPL-2.0
●
Never assume that random public code is safe
– Minimal chain of trust to author should be established
Samsung Open Source Group 13 https://social.samsunginter.net/@rzr
Security matters
●
Scan for vulnerability and legal compliance
●
Upstream code is exposed
– it can be scanned by bots:
●
Fossa, FOSSology, OpenHub/Black duck, github alerts...
– And vulnerabilities reported (1st private, then public)
●
Downstream code maybe not
– Patches may fix ? or add more vulnerabilities
– Scanning code, verifying code is long and costly
●
Usually: gratis for FLOSS / pay for private code
Samsung Open Source Group 14 https://social.samsunginter.net/@rzr
Git chain is robust if well linked
●
git cherry-pick upstream’s changes
– Eg: Apply fixes from release branches
●
Or rebase your tree on upstream:
– CONTINUOUSLY on post release branches
– Follow versions: git rebase -i $tag
– Adapt your changes on conflict:
●
Hint: may split changes and upstream progressively
●
Other useful commands: git blame, git bissect
– Prefer git rebase over git merge
Samsung Open Source Group 15 https://social.samsunginter.net/@rzr
Moving forward & Sustainability
●
OSS Foundations
– Neutral and Legal entity
– Funded by companies and
individuals
– Provides infrastructure
– Training and certifications
●
Originally seeded by 1 project:
– Linux Foundation:
●
From kernel to many projects:
– OS: Tizen, Yocto, AGL
– Middlewares:
●
IoTivity, LFEdge. Onap,
OpenJS
– Similar to:
●
Apache, Eclipse, Document,
OpenStack, FSF, Mozilla, Debian/
SPI, ROS, Python, Pi, OW2 ...
Samsung Open Source Group 16 https://social.samsunginter.net/@rzr
Prefer Co-maintenance
●
Inactive upstream
– Upstream is not your contractor
– Shift to co-maintenance ?
●
Abandonware Organization:
– https://abandonware.github.io/
– Community maintained packages
– Maximize benefit, minimize effort
– No trade off on security
Samsung Open Source Group 17 https://social.samsunginter.net/@rzr
Summary
●
Avoid “Not invented here”
– It’s easy to start a new project. It’s harder to maintain it
– Join an existing project / Reduce duplication
– Review changes, minimize downstream changes
●
Be part of chain of trust
– Bigger Adoption => More checks and test => care about interoperability
●
Establish Long term strategy with opensource foundations:
– Scale, Comply license, involve community...
Samsung Open Source Group 18 https://social.samsunginter.net/@rzr
References:
●
https://www.SoftwareHeritage.org/
– 88M projects 2019-04-08
●
https://wiki.iotivity.org/contribute
– Example: Contrubution tips for IoTivity project
●
https://social.samsunginter.net/@rzr/101640930444343920
– tizen-upstream-coop-tdc2014-pcoval
●
Samsung’s Open Source portal
– https://opensource.samsung.com/
●
https://youtu.be/2KDFRiSNSX8
– OSI’s Simon Phipps at OW2 2018
19
https://social.samsunginter.net/@rzrSamsung Open Source Group
Thanks !
https://Social.SamsungInter.net/@rzr

Más contenido relacionado

La actualidad más candente

BKK16-310 The HiKey AOSP collaborative experience
BKK16-310 The HiKey AOSP collaborative experience BKK16-310 The HiKey AOSP collaborative experience
BKK16-310 The HiKey AOSP collaborative experience Linaro
 
Developing Android Platform Tools
Developing Android Platform ToolsDeveloping Android Platform Tools
Developing Android Platform ToolsOpersys inc.
 
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
 
Open Source, Sourceforge Projects, & Apache Foundation
Open Source, Sourceforge Projects, & Apache FoundationOpen Source, Sourceforge Projects, & Apache Foundation
Open Source, Sourceforge Projects, & Apache FoundationMohammad Kotb
 
Q4.11: Ubuntu Linaro Evaluation build
Q4.11: Ubuntu Linaro Evaluation buildQ4.11: Ubuntu Linaro Evaluation build
Q4.11: Ubuntu Linaro Evaluation buildLinaro
 
Ada in Fedora linux
Ada in Fedora linuxAda in Fedora linux
Ada in Fedora linuxPavel Zhukov
 
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
 
Embedded Android Workshop
Embedded Android WorkshopEmbedded Android Workshop
Embedded Android WorkshopOpersys inc.
 
Volunteering at YouSee on Technology Support
Volunteering at YouSee on Technology SupportVolunteering at YouSee on Technology Support
Volunteering at YouSee on Technology SupportYouSee
 
Leveraging Android's Linux Heritage
Leveraging Android's Linux HeritageLeveraging Android's Linux Heritage
Leveraging Android's Linux HeritageOpersys inc.
 
Embedded Android Workshop with Lollipop
Embedded Android Workshop with LollipopEmbedded Android Workshop with Lollipop
Embedded Android Workshop with LollipopOpersys inc.
 
BeagleBoard Workshop ESC Boston 2011
BeagleBoard Workshop ESC Boston 2011BeagleBoard Workshop ESC Boston 2011
BeagleBoard Workshop ESC Boston 2011Opersys inc.
 
Git in the European Parliament
Git in the European ParliamentGit in the European Parliament
Git in the European ParliamentJean-Pol Landrain
 
Cinder On-boarding Room - Berlin (11-13-2018)
Cinder On-boarding Room - Berlin (11-13-2018)Cinder On-boarding Room - Berlin (11-13-2018)
Cinder On-boarding Room - Berlin (11-13-2018)Jay Bryant
 

La actualidad más candente (20)

Git Basics
Git BasicsGit Basics
Git Basics
 
BKK16-310 The HiKey AOSP collaborative experience
BKK16-310 The HiKey AOSP collaborative experience BKK16-310 The HiKey AOSP collaborative experience
BKK16-310 The HiKey AOSP collaborative experience
 
FFmpeg: A Retrospective
FFmpeg: A RetrospectiveFFmpeg: A Retrospective
FFmpeg: A Retrospective
 
Developing Android Platform Tools
Developing Android Platform ToolsDeveloping Android Platform Tools
Developing Android Platform Tools
 
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
 
Open Source, Sourceforge Projects, & Apache Foundation
Open Source, Sourceforge Projects, & Apache FoundationOpen Source, Sourceforge Projects, & Apache Foundation
Open Source, Sourceforge Projects, & Apache Foundation
 
Hg for bioinformatics, second part
Hg for bioinformatics, second partHg for bioinformatics, second part
Hg for bioinformatics, second part
 
Q4.11: Ubuntu Linaro Evaluation build
Q4.11: Ubuntu Linaro Evaluation buildQ4.11: Ubuntu Linaro Evaluation build
Q4.11: Ubuntu Linaro Evaluation build
 
Ada in Fedora linux
Ada in Fedora linuxAda in Fedora linux
Ada in Fedora linux
 
OpenStack: Community driven development, For Real!
OpenStack: Community driven development, For Real!OpenStack: Community driven development, For Real!
OpenStack: Community driven development, For Real!
 
Golang workshop
Golang workshopGolang workshop
Golang workshop
 
Hg version control bioinformaticians
Hg version control bioinformaticiansHg version control bioinformaticians
Hg version control bioinformaticians
 
Embedded Android Workshop
Embedded Android WorkshopEmbedded Android Workshop
Embedded Android Workshop
 
Version control
Version controlVersion control
Version control
 
Volunteering at YouSee on Technology Support
Volunteering at YouSee on Technology SupportVolunteering at YouSee on Technology Support
Volunteering at YouSee on Technology Support
 
Leveraging Android's Linux Heritage
Leveraging Android's Linux HeritageLeveraging Android's Linux Heritage
Leveraging Android's Linux Heritage
 
Embedded Android Workshop with Lollipop
Embedded Android Workshop with LollipopEmbedded Android Workshop with Lollipop
Embedded Android Workshop with Lollipop
 
BeagleBoard Workshop ESC Boston 2011
BeagleBoard Workshop ESC Boston 2011BeagleBoard Workshop ESC Boston 2011
BeagleBoard Workshop ESC Boston 2011
 
Git in the European Parliament
Git in the European ParliamentGit in the European Parliament
Git in the European Parliament
 
Cinder On-boarding Room - Berlin (11-13-2018)
Cinder On-boarding Room - Berlin (11-13-2018)Cinder On-boarding Room - Berlin (11-13-2018)
Cinder On-boarding Room - Berlin (11-13-2018)
 

Similar a up-down-stream-flows-20190411rzr

IPMI is dead, Long live Redfish
IPMI is dead, Long live RedfishIPMI is dead, Long live Redfish
IPMI is dead, Long live RedfishBruno Cornec
 
webthing-iotjs-tizenrt-cdl2018-20181117rzr
webthing-iotjs-tizenrt-cdl2018-20181117rzrwebthing-iotjs-tizenrt-cdl2018-20181117rzr
webthing-iotjs-tizenrt-cdl2018-20181117rzrPhil www.rzr.online.fr
 
Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...
Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...
Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...OpenShift Origin
 
Open source projects with python
Open source projects with pythonOpen source projects with python
Open source projects with pythonroskakori
 
Maintaining and Releasing Open Source Software
Maintaining and Releasing Open Source SoftwareMaintaining and Releasing Open Source Software
Maintaining and Releasing Open Source SoftwareJoel Nothman
 
Running A SIG in CentOS @Devconf Brno 2014
Running A SIG in CentOS @Devconf Brno 2014Running A SIG in CentOS @Devconf Brno 2014
Running A SIG in CentOS @Devconf Brno 2014Lalatendu Mohanty
 
Extending Android's Platform Toolsuite
Extending Android's Platform ToolsuiteExtending Android's Platform Toolsuite
Extending Android's Platform ToolsuiteOpersys inc.
 
The complex IoT equation, and FLOSS solutions, OW2con'18, June 7-8, 2018, Paris
The complex IoT equation, and FLOSS solutions, OW2con'18, June 7-8, 2018, ParisThe complex IoT equation, and FLOSS solutions, OW2con'18, June 7-8, 2018, Paris
The complex IoT equation, and FLOSS solutions, OW2con'18, June 7-8, 2018, ParisOW2
 
The Complex IoT Equation (and FLOSS solutions)
The Complex IoT Equation (and FLOSS solutions)The Complex IoT Equation (and FLOSS solutions)
The Complex IoT Equation (and FLOSS solutions)Samsung Open Source Group
 
IoTivity for Automotive: meta-ocf-automotive tutorial
IoTivity for Automotive: meta-ocf-automotive tutorialIoTivity for Automotive: meta-ocf-automotive tutorial
IoTivity for Automotive: meta-ocf-automotive tutorialSamsung Open Source Group
 
Embedded Android Workshop part I ESC SV 2012
Embedded Android Workshop part I ESC SV 2012Embedded Android Workshop part I ESC SV 2012
Embedded Android Workshop part I ESC SV 2012Opersys inc.
 
PloneSocial Roadmap PLOG2013
PloneSocial Roadmap PLOG2013PloneSocial Roadmap PLOG2013
PloneSocial Roadmap PLOG2013Guido Stevens
 

Similar a up-down-stream-flows-20190411rzr (20)

web-of-twins-20190604rzr
web-of-twins-20190604rzrweb-of-twins-20190604rzr
web-of-twins-20190604rzr
 
webthing-iotjs-20181027rzr
webthing-iotjs-20181027rzrwebthing-iotjs-20181027rzr
webthing-iotjs-20181027rzr
 
Framework for IoT Interoperability
Framework for IoT InteroperabilityFramework for IoT Interoperability
Framework for IoT Interoperability
 
IPMI is dead, Long live Redfish
IPMI is dead, Long live RedfishIPMI is dead, Long live Redfish
IPMI is dead, Long live Redfish
 
IoTivity: From Devices to the Cloud
IoTivity: From Devices to the CloudIoTivity: From Devices to the Cloud
IoTivity: From Devices to the Cloud
 
webthing-iotjs-tizenrt-cdl2018-20181117rzr
webthing-iotjs-tizenrt-cdl2018-20181117rzrwebthing-iotjs-tizenrt-cdl2018-20181117rzr
webthing-iotjs-tizenrt-cdl2018-20181117rzr
 
Contributing To CentOS SIGs
Contributing To CentOS SIGsContributing To CentOS SIGs
Contributing To CentOS SIGs
 
Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...
Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...
Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...
 
Open source projects with python
Open source projects with pythonOpen source projects with python
Open source projects with python
 
Maintaining and Releasing Open Source Software
Maintaining and Releasing Open Source SoftwareMaintaining and Releasing Open Source Software
Maintaining and Releasing Open Source Software
 
Running A SIG in CentOS @Devconf Brno 2014
Running A SIG in CentOS @Devconf Brno 2014Running A SIG in CentOS @Devconf Brno 2014
Running A SIG in CentOS @Devconf Brno 2014
 
Extending Android's Platform Toolsuite
Extending Android's Platform ToolsuiteExtending Android's Platform Toolsuite
Extending Android's Platform Toolsuite
 
The complex IoT equation, and FLOSS solutions, OW2con'18, June 7-8, 2018, Paris
The complex IoT equation, and FLOSS solutions, OW2con'18, June 7-8, 2018, ParisThe complex IoT equation, and FLOSS solutions, OW2con'18, June 7-8, 2018, Paris
The complex IoT equation, and FLOSS solutions, OW2con'18, June 7-8, 2018, Paris
 
webthing-floss-iot-20180607rzr
webthing-floss-iot-20180607rzrwebthing-floss-iot-20180607rzr
webthing-floss-iot-20180607rzr
 
The Complex IoT Equation (and FLOSS solutions)
The Complex IoT Equation (and FLOSS solutions)The Complex IoT Equation (and FLOSS solutions)
The Complex IoT Equation (and FLOSS solutions)
 
Easy IoT with JavaScript
Easy IoT with JavaScriptEasy IoT with JavaScript
Easy IoT with JavaScript
 
IoTivity for Automotive: meta-ocf-automotive tutorial
IoTivity for Automotive: meta-ocf-automotive tutorialIoTivity for Automotive: meta-ocf-automotive tutorial
IoTivity for Automotive: meta-ocf-automotive tutorial
 
Embedded Android Workshop part I ESC SV 2012
Embedded Android Workshop part I ESC SV 2012Embedded Android Workshop part I ESC SV 2012
Embedded Android Workshop part I ESC SV 2012
 
PloneSocial Roadmap PLOG2013
PloneSocial Roadmap PLOG2013PloneSocial Roadmap PLOG2013
PloneSocial Roadmap PLOG2013
 
Explore Android Internals
Explore Android InternalsExplore Android Internals
Explore Android Internals
 

Más de Phil www.rzr.online.fr (16)

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
 
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
 
tizen-rt-javascript-20181011
tizen-rt-javascript-20181011tizen-rt-javascript-20181011
tizen-rt-javascript-20181011
 
osvehicle-connected-20160429
osvehicle-connected-20160429osvehicle-connected-20160429
osvehicle-connected-20160429
 
tdc2015-strategy-devel-20150916
tdc2015-strategy-devel-20150916tdc2015-strategy-devel-20150916
tdc2015-strategy-devel-20150916
 
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 platform-dev-tds14sh
Tizen platform-dev-tds14shTizen platform-dev-tds14sh
Tizen platform-dev-tds14sh
 
Tizen sdk-solutionslinux-20130529
Tizen sdk-solutionslinux-20130529Tizen sdk-solutionslinux-20130529
Tizen sdk-solutionslinux-20130529
 
Tizen architecture-solutionslinux-20130529
Tizen architecture-solutionslinux-20130529Tizen architecture-solutionslinux-20130529
Tizen architecture-solutionslinux-20130529
 

Último

Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 

Último (20)

Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 

up-down-stream-flows-20190411rzr

  • 1. Samsung Open Source Group 1 https://social.samsunginter.net/@rzr Up/Down Stream Flows Harmony in community not “Far West” ! <https://www.meetup.com/fr-FR/Rennes-Embedded/> #RennesEmbedded, Rennes France <2019-04-11> Philippe Coval Samsung Open Source Group / SRUK p.coval@samsung.com
  • 2. Samsung Open Source Group 2 https://social.samsunginter.net/@rzr $ who am i ● Software engineer at Samsung OSG – Belong to SRUK team based in Rennes, France – Currently working on “Privacy by Design” Web of Things, – Interest: Free Libre Open Source, OpenData, OpenDesign... ● Ping me on the fediverse: – https://social.samsunginter.net/@rzr
  • 3. Samsung Open Source Group 3 “Without trust there's no cooperation. And without cooperation there's no progress. History stops.” ~ Rick Yancey, The Last Star
  • 4. Samsung Open Source Group 4 https://social.samsunginter.net/@rzr Types of FLOSS models ● Built with OSS: – Some libs are used in products ● + patches (shared or not) ● Built on OSS: Custom code on top – Free OSS base and un-free extensions – The base is shared to/with community ● Behind doors / Inner source – Public on releases (Code drop) ● not development branches or metadata ● May not review community contribs ● To open development: – Governance models ● Community is involved ● Meritocracy ● decision making, roadmaps ● Constitution, CoC – may help in case of conflicts ● To OpenSource foundations – Copyright holders – Neutral entity founded by members
  • 5. Samsung Open Source Group 5 https://social.samsunginter.net/@rzr Avoid Pitfalls ● FLOSS is gratis (if your time has no value) – Freeriders (taking without giving)’s back draft: Reputation, Community Support… ● FLOSS Code will evolve with or without you! – Your base is already open, and will improve if used (by others) – You will never catch up, it will affect your quality (and users’ security) ● Better focus on your value and build a better common base: – Design smart, isolate elements: ● UNIX philosophy & KISS principle not “Not Invented here” ● Be a good and smarter citizen since day one – Comply licenses, Separate upstream and downstream works
  • 6. Samsung Open Source Group 6 https://social.samsunginter.net/@rzr How to maximize efficiency of FLOSS use ● Improve culture & skills: – Dedicate experts with FLOSS Culture: Tech & Legal background – Part of company and involved in communities – Scale: Learn and Teach ● Setup infrastructure: Listen to developers requirements – To use their most productive environments: ● GNU/Linux desktop, any flavours, root – To reach communities ● IRC, mailing lists etc – Transparent proxies/firewall, Flexible Email (IMAP/SMTP), bandwidth (setup cache)
  • 7. Samsung Open Source Group 7 https://social.samsunginter.net/@rzr Tooling ● Adopt upstream tools: SCM (git), build system – Switch to git: The sooner, the better – Eventually use bridge like git-svn (but it will create more confusion) – git is flexible, not github (how will you export reviews and PR?) ● CI may help too (if not required) – Can be self hosted on site or outsourced
  • 8. Samsung Open Source Group 8 https://social.samsunginter.net/@rzr Cooperation ● Forward patches to upstream first – Maybe you are doing it wrong? Or upstream may suggest better way. – Could be merged in stable version (safer) – Small changes are faster to review – Easier to apply to several branches (less conflicts) and revert ● Then merge downstream: – Adjust delay according to your policies (eg: 48h to 7days) ● Keep an eye on it, try to reduce gap – Technical debt is growing (until it’s upstreamed)
  • 9. Samsung Open Source Group 9 https://social.samsunginter.net/@rzr History >>> Code ● Mixing code randomly is a risky behavior and not future proof ● Don’t break “evolution chain” – use external dependencies: – fork project in last resort but keep history ● Preserve history/authorship: – Avoid to import/copy code for other tree (public or private) ● Helpful commit messages: git commit -sam ‘context: Add X for feature Y... Because of Z reason... Bug: url://upstream/project/bug/42 ’
  • 10. Samsung Open Source Group 10 https://social.samsunginter.net/@rzr Linking to contexts ● Trackers might be updated after commits (xlinks, regressions etc) – Origin: $url (Where patch was published first) – Forwarded: $url (Where upstream will review it) – Bug: $url (Upstream context) – Bug-$downstream: $url or $id (downstream context) ● Bug-Debian: #42 (DEP3) – Relate-to: $url – Change-id: I1dbadc0de… (unique id to track or search)
  • 11. Samsung Open Source Group 11 https://social.samsunginter.net/@rzr Attribution ● Respect authors (and their works or time), in commit messages: – Author: ... – Thanks-to:, Credit-to:, Reported-by:, Suggested-by: ... ● Author is the most knowledgeable why or how the change was made: – (Current or Future) License may require attributions (ex: BSD-3-Clause-Attribution) – May be contacted afterwards for project interest (regressions etc) ● Commits may be signed – Per project policy: to ensure integrity or authorship – Comply with project’s license – Ensure code is not “borrowed” from random source
  • 12. Samsung Open Source Group 12 https://social.samsunginter.net/@rzr Legal & Security ● FLOSS is not public domain: Rights and duties – Different philosophies: ● Author/User, Business/Community, OSI/FSF, Permissive/Copyleft… ● SPDX: Software Package Data Exchange – Standard (namespace) for licensing – SPDX Header in source: ● SPDX-License-Identifier: GPL-2.0 ● Never assume that random public code is safe – Minimal chain of trust to author should be established
  • 13. Samsung Open Source Group 13 https://social.samsunginter.net/@rzr Security matters ● Scan for vulnerability and legal compliance ● Upstream code is exposed – it can be scanned by bots: ● Fossa, FOSSology, OpenHub/Black duck, github alerts... – And vulnerabilities reported (1st private, then public) ● Downstream code maybe not – Patches may fix ? or add more vulnerabilities – Scanning code, verifying code is long and costly ● Usually: gratis for FLOSS / pay for private code
  • 14. Samsung Open Source Group 14 https://social.samsunginter.net/@rzr Git chain is robust if well linked ● git cherry-pick upstream’s changes – Eg: Apply fixes from release branches ● Or rebase your tree on upstream: – CONTINUOUSLY on post release branches – Follow versions: git rebase -i $tag – Adapt your changes on conflict: ● Hint: may split changes and upstream progressively ● Other useful commands: git blame, git bissect – Prefer git rebase over git merge
  • 15. Samsung Open Source Group 15 https://social.samsunginter.net/@rzr Moving forward & Sustainability ● OSS Foundations – Neutral and Legal entity – Funded by companies and individuals – Provides infrastructure – Training and certifications ● Originally seeded by 1 project: – Linux Foundation: ● From kernel to many projects: – OS: Tizen, Yocto, AGL – Middlewares: ● IoTivity, LFEdge. Onap, OpenJS – Similar to: ● Apache, Eclipse, Document, OpenStack, FSF, Mozilla, Debian/ SPI, ROS, Python, Pi, OW2 ...
  • 16. Samsung Open Source Group 16 https://social.samsunginter.net/@rzr Prefer Co-maintenance ● Inactive upstream – Upstream is not your contractor – Shift to co-maintenance ? ● Abandonware Organization: – https://abandonware.github.io/ – Community maintained packages – Maximize benefit, minimize effort – No trade off on security
  • 17. Samsung Open Source Group 17 https://social.samsunginter.net/@rzr Summary ● Avoid “Not invented here” – It’s easy to start a new project. It’s harder to maintain it – Join an existing project / Reduce duplication – Review changes, minimize downstream changes ● Be part of chain of trust – Bigger Adoption => More checks and test => care about interoperability ● Establish Long term strategy with opensource foundations: – Scale, Comply license, involve community...
  • 18. Samsung Open Source Group 18 https://social.samsunginter.net/@rzr References: ● https://www.SoftwareHeritage.org/ – 88M projects 2019-04-08 ● https://wiki.iotivity.org/contribute – Example: Contrubution tips for IoTivity project ● https://social.samsunginter.net/@rzr/101640930444343920 – tizen-upstream-coop-tdc2014-pcoval ● Samsung’s Open Source portal – https://opensource.samsung.com/ ● https://youtu.be/2KDFRiSNSX8 – OSI’s Simon Phipps at OW2 2018
  • 19. 19 https://social.samsunginter.net/@rzrSamsung Open Source Group Thanks ! https://Social.SamsungInter.net/@rzr