up-down-stream-flows-20190411rzr

Phil www.rzr.online.fr
Phil www.rzr.online.frSr Software Enginner at Undisclosed
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
1 of 19

Recommended

tizen-upstream-coop-tdc2014-pcoval by
tizen-upstream-coop-tdc2014-pcovaltizen-upstream-coop-tdc2014-pcoval
tizen-upstream-coop-tdc2014-pcovalPhil www.rzr.online.fr
5.9K views39 slides
Tdc2014 tizen common_20140603 by
Tdc2014 tizen common_20140603Tdc2014 tizen common_20140603
Tdc2014 tizen common_20140603Phil www.rzr.online.fr
2.6K views28 slides
Tizen contrib-fosdem-20140201 by
Tizen contrib-fosdem-20140201Tizen contrib-fosdem-20140201
Tizen contrib-fosdem-20140201Phil www.rzr.online.fr
1.5K views25 slides
tizen-maintain-20150413rzr by
tizen-maintain-20150413rzrtizen-maintain-20150413rzr
tizen-maintain-20150413rzrPhil www.rzr.online.fr
621 views27 slides
Using OpenEmbedded by
Using OpenEmbeddedUsing OpenEmbedded
Using OpenEmbeddedTrevor Woerner
643 views81 slides
Tizen store-z1-20150228rzr by
Tizen store-z1-20150228rzrTizen store-z1-20150228rzr
Tizen store-z1-20150228rzrPhil www.rzr.online.fr
2.3K views21 slides

More Related Content

What's hot

Git Basics by
Git BasicsGit Basics
Git BasicsRyan Condron
104 views30 slides
BKK16-310 The HiKey AOSP collaborative experience by
BKK16-310 The HiKey AOSP collaborative experience BKK16-310 The HiKey AOSP collaborative experience
BKK16-310 The HiKey AOSP collaborative experience Linaro
926 views26 slides
FFmpeg: A Retrospective by
FFmpeg: A RetrospectiveFFmpeg: A Retrospective
FFmpeg: A RetrospectiveSamsung Open Source Group
1.8K views51 slides
Developing Android Platform Tools by
Developing Android Platform ToolsDeveloping Android Platform Tools
Developing Android Platform ToolsOpersys inc.
1.2K views37 slides
Introduction to Git and Github - Google Developer Student Clubs CET, Trivandrum by
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
217 views20 slides
Open Source, Sourceforge Projects, & Apache Foundation by
Open Source, Sourceforge Projects, & Apache FoundationOpen Source, Sourceforge Projects, & Apache Foundation
Open Source, Sourceforge Projects, & Apache FoundationMohammad Kotb
1.2K views68 slides

What's hot(20)

BKK16-310 The HiKey AOSP collaborative experience by Linaro
BKK16-310 The HiKey AOSP collaborative experience BKK16-310 The HiKey AOSP collaborative experience
BKK16-310 The HiKey AOSP collaborative experience
Linaro926 views
Developing Android Platform Tools by Opersys inc.
Developing Android Platform ToolsDeveloping Android Platform Tools
Developing Android Platform Tools
Opersys inc.1.2K views
Introduction to Git and Github - Google Developer Student Clubs CET, Trivandrum by AbhijitNarayan2
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
AbhijitNarayan2217 views
Open Source, Sourceforge Projects, & Apache Foundation by Mohammad Kotb
Open Source, Sourceforge Projects, & Apache FoundationOpen Source, Sourceforge Projects, & Apache Foundation
Open Source, Sourceforge Projects, & Apache Foundation
Mohammad Kotb1.2K views
Q4.11: Ubuntu Linaro Evaluation build by Linaro
Q4.11: Ubuntu Linaro Evaluation buildQ4.11: Ubuntu Linaro Evaluation build
Q4.11: Ubuntu Linaro Evaluation build
Linaro561 views
Embedded Android Workshop by Opersys inc.
Embedded Android WorkshopEmbedded Android Workshop
Embedded Android Workshop
Opersys inc.5.6K views
Volunteering at YouSee on Technology Support by YouSee
Volunteering at YouSee on Technology SupportVolunteering at YouSee on Technology Support
Volunteering at YouSee on Technology Support
YouSee1K views
Leveraging Android's Linux Heritage by Opersys inc.
Leveraging Android's Linux HeritageLeveraging Android's Linux Heritage
Leveraging Android's Linux Heritage
Opersys inc.1.2K views
Embedded Android Workshop with Lollipop by Opersys inc.
Embedded Android Workshop with LollipopEmbedded Android Workshop with Lollipop
Embedded Android Workshop with Lollipop
Opersys inc.1.5K views
BeagleBoard Workshop ESC Boston 2011 by Opersys inc.
BeagleBoard Workshop ESC Boston 2011BeagleBoard Workshop ESC Boston 2011
BeagleBoard Workshop ESC Boston 2011
Opersys inc.1.2K views
Cinder On-boarding Room - Berlin (11-13-2018) by Jay Bryant
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 Bryant121 views

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

web-of-twins-20190604rzr by
web-of-twins-20190604rzrweb-of-twins-20190604rzr
web-of-twins-20190604rzrPhil www.rzr.online.fr
1.8K views19 slides
webthing-iotjs-20181027rzr by
webthing-iotjs-20181027rzrwebthing-iotjs-20181027rzr
webthing-iotjs-20181027rzrPhil www.rzr.online.fr
5.9K views38 slides
Framework for IoT Interoperability by
Framework for IoT InteroperabilityFramework for IoT Interoperability
Framework for IoT InteroperabilitySamsung Open Source Group
8.7K views33 slides
IPMI is dead, Long live Redfish by
IPMI is dead, Long live RedfishIPMI is dead, Long live Redfish
IPMI is dead, Long live RedfishBruno Cornec
7.7K views29 slides
IoTivity: From Devices to the Cloud by
IoTivity: From Devices to the CloudIoTivity: From Devices to the Cloud
IoTivity: From Devices to the CloudSamsung Open Source Group
18.3K views28 slides
webthing-iotjs-tizenrt-cdl2018-20181117rzr by
webthing-iotjs-tizenrt-cdl2018-20181117rzrwebthing-iotjs-tizenrt-cdl2018-20181117rzr
webthing-iotjs-tizenrt-cdl2018-20181117rzrPhil www.rzr.online.fr
8.7K views37 slides

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

IPMI is dead, Long live Redfish by Bruno Cornec
IPMI is dead, Long live RedfishIPMI is dead, Long live Redfish
IPMI is dead, Long live Redfish
Bruno Cornec7.7K views
Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red... by OpenShift Origin
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 Origin5K views
Open source projects with python by roskakori
Open source projects with pythonOpen source projects with python
Open source projects with python
roskakori1.6K views
Maintaining and Releasing Open Source Software by Joel Nothman
Maintaining and Releasing Open Source SoftwareMaintaining and Releasing Open Source Software
Maintaining and Releasing Open Source Software
Joel Nothman18 views
Running A SIG in CentOS @Devconf Brno 2014 by Lalatendu Mohanty
Running A SIG in CentOS @Devconf Brno 2014Running A SIG in CentOS @Devconf Brno 2014
Running A SIG in CentOS @Devconf Brno 2014
Lalatendu Mohanty637 views
Extending Android's Platform Toolsuite by Opersys inc.
Extending Android's Platform ToolsuiteExtending Android's Platform Toolsuite
Extending Android's Platform Toolsuite
Opersys inc.1.1K views
The complex IoT equation, and FLOSS solutions, OW2con'18, June 7-8, 2018, Paris by OW2
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
OW293 views
Embedded Android Workshop part I ESC SV 2012 by Opersys inc.
Embedded Android Workshop part I ESC SV 2012Embedded Android Workshop part I ESC SV 2012
Embedded Android Workshop part I ESC SV 2012
Opersys inc.865 views
PloneSocial Roadmap PLOG2013 by Guido Stevens
PloneSocial Roadmap PLOG2013PloneSocial Roadmap PLOG2013
PloneSocial Roadmap PLOG2013
Guido Stevens2.2K views

More from Phil www.rzr.online.fr

Iot privacy-soscon-2019 by
Iot privacy-soscon-2019Iot privacy-soscon-2019
Iot privacy-soscon-2019Phil www.rzr.online.fr
540 views25 slides
aframe-webthing-20190710 by
aframe-webthing-20190710aframe-webthing-20190710
aframe-webthing-20190710Phil www.rzr.online.fr
475 views40 slides
digital-twins-webthings-iotjs-20190512rzr by
digital-twins-webthings-iotjs-20190512rzrdigital-twins-webthings-iotjs-20190512rzr
digital-twins-webthings-iotjs-20190512rzrPhil www.rzr.online.fr
1.6K views25 slides
wotxr-20190320rzr by
wotxr-20190320rzrwotxr-20190320rzr
wotxr-20190320rzrPhil www.rzr.online.fr
2K views20 slides
mozilla-things-fosdem-2019 by
mozilla-things-fosdem-2019mozilla-things-fosdem-2019
mozilla-things-fosdem-2019Phil www.rzr.online.fr
2.3K views28 slides
IoT-javascript-2019-fosdem by
IoT-javascript-2019-fosdemIoT-javascript-2019-fosdem
IoT-javascript-2019-fosdemPhil www.rzr.online.fr
959 views35 slides

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

FOSDEM2015: Porting Tizen:Common to open source hardware devices by Phil www.rzr.online.fr
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

Recently uploaded

20231123_Camunda Meetup Vienna.pdf by
20231123_Camunda Meetup Vienna.pdf20231123_Camunda Meetup Vienna.pdf
20231123_Camunda Meetup Vienna.pdfPhactum Softwareentwicklung GmbH
49 views73 slides
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R... by
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...ShapeBlue
105 views15 slides
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue by
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlueCloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlueShapeBlue
68 views13 slides
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P... by
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...ShapeBlue
120 views62 slides
Why and How CloudStack at weSystems - Stephan Bienek - weSystems by
Why and How CloudStack at weSystems - Stephan Bienek - weSystemsWhy and How CloudStack at weSystems - Stephan Bienek - weSystems
Why and How CloudStack at weSystems - Stephan Bienek - weSystemsShapeBlue
172 views13 slides
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or... by
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...ShapeBlue
128 views20 slides

Recently uploaded(20)

Setting Up Your First CloudStack Environment with Beginners Challenges - MD R... by ShapeBlue
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...
ShapeBlue105 views
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue by ShapeBlue
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlueCloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue
ShapeBlue68 views
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P... by ShapeBlue
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...
ShapeBlue120 views
Why and How CloudStack at weSystems - Stephan Bienek - weSystems by ShapeBlue
Why and How CloudStack at weSystems - Stephan Bienek - weSystemsWhy and How CloudStack at weSystems - Stephan Bienek - weSystems
Why and How CloudStack at weSystems - Stephan Bienek - weSystems
ShapeBlue172 views
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or... by ShapeBlue
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...
Zero to Cloud Hero: Crafting a Private Cloud from Scratch with XCP-ng, Xen Or...
ShapeBlue128 views
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti... by ShapeBlue
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...
DRaaS using Snapshot copy and destination selection (DRaaS) - Alexandre Matti...
ShapeBlue69 views
Digital Personal Data Protection (DPDP) Practical Approach For CISOs by Priyanka Aash
Digital Personal Data Protection (DPDP) Practical Approach For CISOsDigital Personal Data Protection (DPDP) Practical Approach For CISOs
Digital Personal Data Protection (DPDP) Practical Approach For CISOs
Priyanka Aash103 views
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue by ShapeBlue
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlueCloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue
ShapeBlue63 views
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue by ShapeBlue
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlueWhat’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
ShapeBlue191 views
Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ... by ShapeBlue
Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ...Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ...
Backroll, News and Demo - Pierre Charton, Matthias Dhellin, Ousmane Diarra - ...
ShapeBlue121 views
The Power of Heat Decarbonisation Plans in the Built Environment by IES VE
The Power of Heat Decarbonisation Plans in the Built EnvironmentThe Power of Heat Decarbonisation Plans in the Built Environment
The Power of Heat Decarbonisation Plans in the Built Environment
IES VE67 views
Keynote Talk: Open Source is Not Dead - Charles Schulz - Vates by ShapeBlue
Keynote Talk: Open Source is Not Dead - Charles Schulz - VatesKeynote Talk: Open Source is Not Dead - Charles Schulz - Vates
Keynote Talk: Open Source is Not Dead - Charles Schulz - Vates
ShapeBlue178 views
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue by ShapeBlue
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue
ShapeBlue75 views
State of the Union - Rohit Yadav - Apache CloudStack by ShapeBlue
State of the Union - Rohit Yadav - Apache CloudStackState of the Union - Rohit Yadav - Apache CloudStack
State of the Union - Rohit Yadav - Apache CloudStack
ShapeBlue218 views
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f... by TrustArc
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc130 views
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue by ShapeBlue
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlueElevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue
ShapeBlue149 views
Future of AR - Facebook Presentation by Rob McCarty
Future of AR - Facebook PresentationFuture of AR - Facebook Presentation
Future of AR - Facebook Presentation
Rob McCarty54 views
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue by ShapeBlue
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlueMigrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue
ShapeBlue147 views

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