SlideShare a Scribd company logo
1 of 47
Download to read offline
1Samsung Open Source Group
Chromium Contribution Process
Explained
a.k.a. Writing good patches
Adenilson Cavalcanti
MSc. BSc.
Samsung Open Source Group
a.cavalcanti@samsung.com (or
cavalcantii@chromium.org)
2Samsung Open Source Group
About the instructor
Adenilson Cavalcanti (a.k.a. Savago)

WebKit & Blink committer.

W3C CSS WG member.

Servo contributor.

15 years of C++.

13 years of Linux/OSS experience.

8 years of mobile.

4 years of WebKit.

2 years of Blink.
3Samsung Open Source Group
Why Are We Here?

Share some lessons learned while contributing
to Blink (and other open source projects).

Start the discussion about good practices.

Explain some cultural aspects of the Chromium
community.

Present tips and tricks of the trade.
4Samsung Open Source Group
Presentation Structure

Chromium contribution workflow explained.

5 Principles to make good contributions.

Tips.

Best practices working with Chromium team.
5
Blink Contribution Workflow
Explained
6Samsung Open Source Group
The Workflow in a Nutshell

Associate your @company email to a Google
account.

Checkout and build.

Implement a change.

Create a branch.

Run the tests.

Push to remote.

Kick the bots (or ask someone to do it).

Ask for review.
7
Create a Google Account
• Visit: https://accounts.google.com/SignUp
• Use your @company.com account.
• You will receive the validation link through your
email.
• The password can (and should) be different.
Samsung Open Source Group
8Samsung Open Source Group
Create a Google Account
9Samsung Open Source Group *if a colleague has a checkout, use a pendrive to copy.
Checkout

Install depot tools:

git clone
https://chromium.googlecode.com/chromium/tools/depot_tools.
git

Export PATH=$DEPOT_FOLDER

Checkout the code* (21GB)

mkdir chromium; cd chromium; fetch –nohooks chromium;
gclient runhooks

Update: git checkout master; git rebase-update; gclient sync
--jobs=16

Further info: http://dev.chromium.org/developers/how-tos/get-
the-code
10Samsung Open Source Group
Build

Beefy hardware: 64 bits + 16GB ram.

Intel i7@2.5Ghz takes 45 minutes.

Uses +30GB of disk space.

Building*:

./build/gyp_chromium –Dwerror= #configure

ninja -C out/Debug/ blink_tests -j10 #layout tests

ninja -C out/Debug/ content_unittests -j10 #content

Targets: unit_tests | browser_tests | net_unittests |
gpu_unittests

ninja -C out/Debug chrome -j10 #chromium browser
11Samsung Open Source Group
Patching

Make a change, create a branch and commit:

git checkout –b myFeature

git commit -a -m “It does something.”
12Samsung Open Source Group
Running Tests + Upload

Layout tests:

./Tools/Scripts/run-webkit-tests --debug css3/filters

Content tests:

./out/Debug/content_unittests | unit_tests

If everything is ok (i.e. no regressions), upload
the patch:

git cl upload

Kick the bots:

git cl try
13
N
otify
chrom
ium
issues
2. Develop patch
7. Land patch
Retry 3x
Manual commit
Submitting Patches: Blink
14Samsung Open Source Group
Watching the Bots

You should receive emails about bot status.

Investigate if a bot is red.
15Samsung Open Source Group
Blink/Chromium: Gaining Status
Committer:
• Same as WebKit (30~40 non-trivial patches).
• Bonus if already a WebKit committer.
Owner:
• Have provided high quality reviews / design feedback.
• Be a Chromium project member for at least 6 months.
• Have submitted a substantial number of non-trivial changes.
• Had made changes to the affected directory within 90 days.
• Bandwidth to contribute with other owners.
16
5 Principles To Make Good
Contributions
17Samsung Open Source Group
The Magic Secret to a Good Patch

Answer these 5 questions.
18Samsung Open Source Group
The 5 Magical Questions

Does it improve performance?

Is it an enabler for others?

Is it spec compliant?

Is it innovative?

Does it fit the project architecture?
19Samsung Open Source Group
If Everything Fails…

Does it improve the performance?

Is it an enabler for others?

Is it spec compliant?

Is it innovative?

Does it fit the project architecture?
DOES IT AT LEAST CLEAN UP THE CODE
REMARKABLY?
20
If the Answer is No…
Give up and try something different.
Samsung Open Source Group
21Samsung Open Source Group
Final Consideration

Submit something you are proud of.

Put yourself in the reviewer’s shoes.
22Samsung Open Source Group
Final Consideration

Submit something you are proud of.

Put yourself in the reviewer’s shoes.
Remember: you are putting your name on
the line in addition to our company image.
23
Extra Tips
24Samsung Open Source Group
Writing Good Commit Logs

To be useful, a log must foremost describe why
a change was made (the what is obvious by
reading the code).

Programmer types:

poor programmers don’t write logs;

good programmers write logs that need the code to be
understood;

great programmers write logs that are self explanatory
and may include references to external
documentation.
25Samsung Open Source Group
Writing Good Commit Logs

Bad log: “fix bug and refactor.”

Good log example:
26Samsung Open Source Group
Commits Must Be Atomic

Do one change (e.g. implementing one feature)
and resist the urge to add non-related things
(e.g. aesthetics, typos, etc).

If you identified something else, open a new bug
to track the issue and submit another patch later.
27Samsung Open Source Group
Quality X Quantity

3 good patches are much better than 15 obvious
ones.
28Samsung Open Source Group
1 Ferrari F12 == 16 Fiat 500.
Quality X Quantity
29Samsung Open Source Group
Self-Review Your Code

When you are done, look for possible areas for
improvement.

Try to find cases where it would fail.

Does it scale up? Does it scale down?
30Samsung Open Source Group
Know Thy Browser

Have all browsers handy and know their
behavior for what you working on.
31Samsung Open Source Group
Know the Code Style

Before starting anything, read:

https://www.chromium.org/developers/coding-style

https://www.chromium.org/blink/coding-style

Fix the mistakes pointed by ‘git cl upload’.
32
Best Practices Working with
Chromium Team
33Samsung Open Source Group
Communication is King

Think twice and formulate your thoughts in an
articulated way.

If you have difficulties with English, prefer async
comm (e.g. mailing list).

Go straight to the point, time is valuable.

The way you speak may affect how reviewers
may perceive your ideas.
When using IRC:
34Samsung Open Source Group
How to Ask Smart Questions*

Do your homework:

research;

read available documentation;

ask your team members;

Write the question with a clear title.

Proof read before posting.

Add links to each relevant info you found (to
prove that at least you tried to find answers).
*Reference: http://catb.org/~esr/faqs/smart-questions.html
35Samsung Open Source Group
Know the Time Zones

The team is distributed (from Korea):

California is 16 hours behind.

Europe (UK) is 8 hours behind.

Sometimes you will have to wake up earlier (or
wait for late night) to reach the right person.
36Samsung Open Source Group
Observe Cultural Differences

Code review is straight and to the point.

The criticism is directed at the code, not at you
as a person.

Any accepted contribution brings a cost for
maintenance and has to be within the high
standards of the project.
37Samsung Open Source Group
Observe Cultural Differences

USA: it is alright, OK.

Russia: zero.

Brazil: insult!
38Samsung Open Source Group
Choose an Area and a Reviewer

Select an area/subsystem to work on.

Develop a relationship with one or two
reviewers.

Avoid jumping from one area to another as it will
impact your productivity and your potential
nomination to become a committer in the future.
39Samsung Open Source Group
Use Bots Sparingly

Bots consume resources and many queued jobs
slows down every single contributor.

Only select 3 or 4 bots (e.g. mac, windows,
android, linux-debug) and submit the job if you
have tested it locally.

Recently a developer was almost had bot
permissions blocked because he was ‘trigger
happy’.
40Samsung Open Source Group
When to Duck

Generally, the reviewers are right when they ask
for changes.

Be grateful for the feedback and implement all
changes.

Don’t push back or stall (especially if you are not
used to the subsystem you are working).

Again: the reviewers are doing you a favor by
reviewing your patch.
41Samsung Open Source Group
When to Hold Your Ground

If you truly believe your idea makes sense and
have done great research.

If you have data (e.g. benchmarks).

When you can point to specs (W3C, WHATWG).

When other browsers implement the same
behavior.
42Samsung Open Source Group
The Job is Never Completed

After a patch has landed, keep watching the bots
for any regressions:

http://build.chromium.org/p/chromium/waterfall

If you noticed that your patch is responsible for a
regression, ping the reviewer in IRC and discuss
what to do next.
43Samsung Open Source Group
Check Your Email on the Weekends*

It may happen that your contribution triggered a
regression and in such case you will be notified
by email.

Promptly answer the email and start
investigating.

If not possible, suggest to rollback the patch and
explain when you can start looking into the
subject.
*if you can’t, time your patches with
weekdays (e.g. Tuesday/Wednesday).
44Samsung Open Source Group
Check Your Email on the
Weekends
This happened
in a Friday at 23hs!
45Samsung Open Source Group
Follow the Mailing List

Be aware of what is happening in the project as
a whole.

Sign in to blink-dev and chromium-dev.

Before starting something bigger, ask reviewers
what they think about it.
46Samsung Open Source Group
Questions and Answers
47Samsung Open Source Group
Thank You!

More Related Content

Viewers also liked

Leyes de Gravitación Universal - Ejercicios (2)
Leyes de Gravitación Universal - Ejercicios (2)Leyes de Gravitación Universal - Ejercicios (2)
Leyes de Gravitación Universal - Ejercicios (2)Samantha Arce
 
Los movimientos oceanicos
Los movimientos oceanicosLos movimientos oceanicos
Los movimientos oceanicosSamantha Arce
 
Serveur http embarqué dans une application Android. Usages et implémentations
Serveur http embarqué dans une application Android.  Usages et implémentationsServeur http embarqué dans une application Android.  Usages et implémentations
Serveur http embarqué dans une application Android. Usages et implémentationsGuilhem Duché
 
Building Chromium on an Embedded Platform using Ozone-Wayland Layer (GENIVI 1...
Building Chromium on an Embedded Platform using Ozone-Wayland Layer (GENIVI 1...Building Chromium on an Embedded Platform using Ozone-Wayland Layer (GENIVI 1...
Building Chromium on an Embedded Platform using Ozone-Wayland Layer (GENIVI 1...Igalia
 
Chromium ui framework(shared)
Chromium ui framework(shared)Chromium ui framework(shared)
Chromium ui framework(shared)gnomekr
 
Clean Sky Projects on the More Electric Aircraft
Clean Sky Projects on the More Electric AircraftClean Sky Projects on the More Electric Aircraft
Clean Sky Projects on the More Electric AircraftTorben Haagh
 
Hitea Press Article April 2014
Hitea Press Article April 2014Hitea Press Article April 2014
Hitea Press Article April 2014Jim Rowbotham
 
How is glass made (2)
How is glass made (2)How is glass made (2)
How is glass made (2)Aj Saliha
 

Viewers also liked (18)

Oswaldo pastos
Oswaldo pastosOswaldo pastos
Oswaldo pastos
 
Leyes de Gravitación Universal - Ejercicios (2)
Leyes de Gravitación Universal - Ejercicios (2)Leyes de Gravitación Universal - Ejercicios (2)
Leyes de Gravitación Universal - Ejercicios (2)
 
La Espermatogenesis
La EspermatogenesisLa Espermatogenesis
La Espermatogenesis
 
Los movimientos oceanicos
Los movimientos oceanicosLos movimientos oceanicos
Los movimientos oceanicos
 
урок 5
урок 5урок 5
урок 5
 
Eventsv2
Eventsv2Eventsv2
Eventsv2
 
Correções livro _ 9º ano
Correções livro _ 9º anoCorreções livro _ 9º ano
Correções livro _ 9º ano
 
Software
SoftwareSoftware
Software
 
Borel azote
Borel azoteBorel azote
Borel azote
 
10.3.1 Mez Plast
10.3.1 Mez Plast10.3.1 Mez Plast
10.3.1 Mez Plast
 
Projecto Clean Sky
Projecto Clean SkyProjecto Clean Sky
Projecto Clean Sky
 
Serveur http embarqué dans une application Android. Usages et implémentations
Serveur http embarqué dans une application Android.  Usages et implémentationsServeur http embarqué dans une application Android.  Usages et implémentations
Serveur http embarqué dans une application Android. Usages et implémentations
 
Building Chromium on an Embedded Platform using Ozone-Wayland Layer (GENIVI 1...
Building Chromium on an Embedded Platform using Ozone-Wayland Layer (GENIVI 1...Building Chromium on an Embedded Platform using Ozone-Wayland Layer (GENIVI 1...
Building Chromium on an Embedded Platform using Ozone-Wayland Layer (GENIVI 1...
 
TURBINE FUNDAMENTAL
TURBINE FUNDAMENTALTURBINE FUNDAMENTAL
TURBINE FUNDAMENTAL
 
Chromium ui framework(shared)
Chromium ui framework(shared)Chromium ui framework(shared)
Chromium ui framework(shared)
 
Clean Sky Projects on the More Electric Aircraft
Clean Sky Projects on the More Electric AircraftClean Sky Projects on the More Electric Aircraft
Clean Sky Projects on the More Electric Aircraft
 
Hitea Press Article April 2014
Hitea Press Article April 2014Hitea Press Article April 2014
Hitea Press Article April 2014
 
How is glass made (2)
How is glass made (2)How is glass made (2)
How is glass made (2)
 

Similar to Chromium Contributing Explained: Writing Good Patches

Static Analysis of Your OSS Project with Coverity
Static Analysis of Your OSS Project with CoverityStatic Analysis of Your OSS Project with Coverity
Static Analysis of Your OSS Project with CoveritySamsung Open Source Group
 
Three Interviews About Static Code Analyzers
Three Interviews About Static Code AnalyzersThree Interviews About Static Code Analyzers
Three Interviews About Static Code AnalyzersAndrey Karpov
 
Agile_SDLC_Node.js@Paypal_ppt
Agile_SDLC_Node.js@Paypal_pptAgile_SDLC_Node.js@Paypal_ppt
Agile_SDLC_Node.js@Paypal_pptHitesh Kumar
 
System design for Web Application
System design for Web ApplicationSystem design for Web Application
System design for Web ApplicationMichael Choi
 
Lunch and learn as3_frameworks
Lunch and learn as3_frameworksLunch and learn as3_frameworks
Lunch and learn as3_frameworksYuri Visser
 
Contributing to Upstream Open Source Projects
Contributing to Upstream Open Source ProjectsContributing to Upstream Open Source Projects
Contributing to Upstream Open Source ProjectsScott Garman
 
The 6k startup - How to Launch a Startup on a Budget
The 6k startup - How to Launch a Startup on a BudgetThe 6k startup - How to Launch a Startup on a Budget
The 6k startup - How to Launch a Startup on a BudgetCrystal Taggart
 
A Survivor's Guide to Contributing to the Linux Kernel
A Survivor's Guide to Contributing to the Linux KernelA Survivor's Guide to Contributing to the Linux Kernel
A Survivor's Guide to Contributing to the Linux KernelSamsung Open Source Group
 
Open Source Project Management
Open Source Project ManagementOpen Source Project Management
Open Source Project ManagementSemen Arslan
 
3stages Wdn08 V3
3stages Wdn08 V33stages Wdn08 V3
3stages Wdn08 V3Boris Mann
 
Conteneo Weave Overview
Conteneo Weave OverviewConteneo Weave Overview
Conteneo Weave OverviewLuke Hohmann
 
Front-End Modernization for Mortals
Front-End Modernization for MortalsFront-End Modernization for Mortals
Front-End Modernization for Mortalscgack
 
Front end-modernization
Front end-modernizationFront end-modernization
Front end-modernizationdevObjective
 
QA Challenges in an Agile World
QA Challenges in an Agile WorldQA Challenges in an Agile World
QA Challenges in an Agile WorldYousef Abazari
 
You learned JavaScript - now what?
You learned JavaScript - now what?You learned JavaScript - now what?
You learned JavaScript - now what?Christian Heilmann
 
Git Makes Me Angry Inside - DrupalCon Prague
Git Makes Me Angry Inside - DrupalCon PragueGit Makes Me Angry Inside - DrupalCon Prague
Git Makes Me Angry Inside - DrupalCon PragueEmma Jane Hogbin Westby
 
Learning Web Development with Ruby on Rails Launch
Learning Web Development with Ruby on Rails LaunchLearning Web Development with Ruby on Rails Launch
Learning Web Development with Ruby on Rails LaunchThiam Hock Ng
 
Lessons Learned in a Continuously Developing Service-Oriented Architecture
Lessons Learned in a Continuously Developing Service-Oriented ArchitectureLessons Learned in a Continuously Developing Service-Oriented Architecture
Lessons Learned in a Continuously Developing Service-Oriented Architecturemdwheele
 

Similar to Chromium Contributing Explained: Writing Good Patches (20)

Static Analysis of Your OSS Project with Coverity
Static Analysis of Your OSS Project with CoverityStatic Analysis of Your OSS Project with Coverity
Static Analysis of Your OSS Project with Coverity
 
Three Interviews About Static Code Analyzers
Three Interviews About Static Code AnalyzersThree Interviews About Static Code Analyzers
Three Interviews About Static Code Analyzers
 
Agile_SDLC_Node.js@Paypal_ppt
Agile_SDLC_Node.js@Paypal_pptAgile_SDLC_Node.js@Paypal_ppt
Agile_SDLC_Node.js@Paypal_ppt
 
System design for Web Application
System design for Web ApplicationSystem design for Web Application
System design for Web Application
 
Lunch and learn as3_frameworks
Lunch and learn as3_frameworksLunch and learn as3_frameworks
Lunch and learn as3_frameworks
 
Contributing to Upstream Open Source Projects
Contributing to Upstream Open Source ProjectsContributing to Upstream Open Source Projects
Contributing to Upstream Open Source Projects
 
The 6k startup - How to Launch a Startup on a Budget
The 6k startup - How to Launch a Startup on a BudgetThe 6k startup - How to Launch a Startup on a Budget
The 6k startup - How to Launch a Startup on a Budget
 
A Survivor's Guide to Contributing to the Linux Kernel
A Survivor's Guide to Contributing to the Linux KernelA Survivor's Guide to Contributing to the Linux Kernel
A Survivor's Guide to Contributing to the Linux Kernel
 
Open Source Project Management
Open Source Project ManagementOpen Source Project Management
Open Source Project Management
 
3stages Wdn08 V3
3stages Wdn08 V33stages Wdn08 V3
3stages Wdn08 V3
 
Conteneo Weave Overview
Conteneo Weave OverviewConteneo Weave Overview
Conteneo Weave Overview
 
Front-End Modernization for Mortals
Front-End Modernization for MortalsFront-End Modernization for Mortals
Front-End Modernization for Mortals
 
Front end-modernization
Front end-modernizationFront end-modernization
Front end-modernization
 
Front end-modernization
Front end-modernizationFront end-modernization
Front end-modernization
 
QA Challenges in an Agile World
QA Challenges in an Agile WorldQA Challenges in an Agile World
QA Challenges in an Agile World
 
You learned JavaScript - now what?
You learned JavaScript - now what?You learned JavaScript - now what?
You learned JavaScript - now what?
 
Git Makes Me Angry Inside - DrupalCon Prague
Git Makes Me Angry Inside - DrupalCon PragueGit Makes Me Angry Inside - DrupalCon Prague
Git Makes Me Angry Inside - DrupalCon Prague
 
Learning Web Development with Ruby on Rails Launch
Learning Web Development with Ruby on Rails LaunchLearning Web Development with Ruby on Rails Launch
Learning Web Development with Ruby on Rails Launch
 
Case study
Case studyCase study
Case study
 
Lessons Learned in a Continuously Developing Service-Oriented Architecture
Lessons Learned in a Continuously Developing Service-Oriented ArchitectureLessons Learned in a Continuously Developing Service-Oriented Architecture
Lessons Learned in a Continuously Developing Service-Oriented Architecture
 

More from Samsung Open Source Group

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
 
Rapid SPi Device Driver Development over USB
Rapid SPi Device Driver Development over USBRapid SPi Device Driver Development over USB
Rapid SPi Device Driver Development over USBSamsung Open Source Group
 
Tizen RT: A Lightweight RTOS Platform for Low-End IoT Devices
Tizen RT: A Lightweight RTOS Platform for Low-End IoT DevicesTizen RT: A Lightweight RTOS Platform for Low-End IoT Devices
Tizen RT: A Lightweight RTOS Platform for Low-End IoT DevicesSamsung Open Source Group
 
IoTivity: Smart Home to Automotive and Beyond
IoTivity: Smart Home to Automotive and BeyondIoTivity: Smart Home to Automotive and Beyond
IoTivity: Smart Home to Automotive and BeyondSamsung 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
 
Open Source Metrics to Inform Corporate Strategy
Open Source Metrics to Inform Corporate StrategyOpen Source Metrics to Inform Corporate Strategy
Open Source Metrics to Inform Corporate StrategySamsung Open Source Group
 
IoTivity for Automotive IoT Interoperability
IoTivity for Automotive IoT InteroperabilityIoTivity for Automotive IoT Interoperability
IoTivity for Automotive IoT InteroperabilitySamsung Open Source Group
 
JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of Thin...
JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of Thin...JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of Thin...
JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of Thin...Samsung Open Source Group
 
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux Device
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux DeviceAdding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux Device
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux DeviceSamsung Open Source Group
 
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
 
Practical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under Linux
Practical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under LinuxPractical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under Linux
Practical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under LinuxSamsung Open Source Group
 
IoTivity Tutorial: Prototyping IoT Devices on GNU/Linux
IoTivity Tutorial: Prototyping IoT Devices on GNU/LinuxIoTivity Tutorial: Prototyping IoT Devices on GNU/Linux
IoTivity Tutorial: Prototyping IoT Devices on GNU/LinuxSamsung Open Source Group
 
JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of Things
JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of ThingsJerryScript: An ultra-lighteweight JavaScript Engine for the Internet of Things
JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of ThingsSamsung Open Source Group
 

More from Samsung Open Source Group (20)

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
 
Spawny: A New Approach to Logins
Spawny: A New Approach to LoginsSpawny: A New Approach to Logins
Spawny: A New Approach to Logins
 
Rapid SPi Device Driver Development over USB
Rapid SPi Device Driver Development over USBRapid SPi Device Driver Development over USB
Rapid SPi Device Driver Development over USB
 
Tizen RT: A Lightweight RTOS Platform for Low-End IoT Devices
Tizen RT: A Lightweight RTOS Platform for Low-End IoT DevicesTizen RT: A Lightweight RTOS Platform for Low-End IoT Devices
Tizen RT: A Lightweight RTOS Platform for Low-End IoT Devices
 
IoTivity: Smart Home to Automotive and Beyond
IoTivity: Smart Home to Automotive and BeyondIoTivity: Smart Home to Automotive and Beyond
IoTivity: Smart Home to Automotive and Beyond
 
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
 
GENIVI + OCF Cooperation
GENIVI + OCF CooperationGENIVI + OCF Cooperation
GENIVI + OCF Cooperation
 
Framework for IoT Interoperability
Framework for IoT InteroperabilityFramework for IoT Interoperability
Framework for IoT Interoperability
 
Open Source Metrics to Inform Corporate Strategy
Open Source Metrics to Inform Corporate StrategyOpen Source Metrics to Inform Corporate Strategy
Open Source Metrics to Inform Corporate Strategy
 
IoTivity for Automotive IoT Interoperability
IoTivity for Automotive IoT InteroperabilityIoTivity for Automotive IoT Interoperability
IoTivity for Automotive IoT Interoperability
 
JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of Thin...
JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of Thin...JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of Thin...
JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of Thin...
 
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux Device
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux DeviceAdding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux Device
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux Device
 
IoTivity: From Devices to the Cloud
IoTivity: From Devices to the CloudIoTivity: From Devices to the Cloud
IoTivity: From Devices to the Cloud
 
SOSCON 2016 JerryScript
SOSCON 2016 JerryScriptSOSCON 2016 JerryScript
SOSCON 2016 JerryScript
 
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
 
Run Your Own 6LoWPAN Based IoT Network
Run Your Own 6LoWPAN Based IoT NetworkRun Your Own 6LoWPAN Based IoT Network
Run Your Own 6LoWPAN Based IoT Network
 
Practical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under Linux
Practical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under LinuxPractical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under Linux
Practical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under Linux
 
IoTivity Tutorial: Prototyping IoT Devices on GNU/Linux
IoTivity Tutorial: Prototyping IoT Devices on GNU/LinuxIoTivity Tutorial: Prototyping IoT Devices on GNU/Linux
IoTivity Tutorial: Prototyping IoT Devices on GNU/Linux
 
JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of Things
JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of ThingsJerryScript: An ultra-lighteweight JavaScript Engine for the Internet of Things
JerryScript: An ultra-lighteweight JavaScript Engine for the Internet of Things
 

Recently uploaded

The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 

Recently uploaded (20)

The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 

Chromium Contributing Explained: Writing Good Patches

  • 1. 1Samsung Open Source Group Chromium Contribution Process Explained a.k.a. Writing good patches Adenilson Cavalcanti MSc. BSc. Samsung Open Source Group a.cavalcanti@samsung.com (or cavalcantii@chromium.org)
  • 2. 2Samsung Open Source Group About the instructor Adenilson Cavalcanti (a.k.a. Savago)  WebKit & Blink committer.  W3C CSS WG member.  Servo contributor.  15 years of C++.  13 years of Linux/OSS experience.  8 years of mobile.  4 years of WebKit.  2 years of Blink.
  • 3. 3Samsung Open Source Group Why Are We Here?  Share some lessons learned while contributing to Blink (and other open source projects).  Start the discussion about good practices.  Explain some cultural aspects of the Chromium community.  Present tips and tricks of the trade.
  • 4. 4Samsung Open Source Group Presentation Structure  Chromium contribution workflow explained.  5 Principles to make good contributions.  Tips.  Best practices working with Chromium team.
  • 6. 6Samsung Open Source Group The Workflow in a Nutshell  Associate your @company email to a Google account.  Checkout and build.  Implement a change.  Create a branch.  Run the tests.  Push to remote.  Kick the bots (or ask someone to do it).  Ask for review.
  • 7. 7 Create a Google Account • Visit: https://accounts.google.com/SignUp • Use your @company.com account. • You will receive the validation link through your email. • The password can (and should) be different. Samsung Open Source Group
  • 8. 8Samsung Open Source Group Create a Google Account
  • 9. 9Samsung Open Source Group *if a colleague has a checkout, use a pendrive to copy. Checkout  Install depot tools:  git clone https://chromium.googlecode.com/chromium/tools/depot_tools. git  Export PATH=$DEPOT_FOLDER  Checkout the code* (21GB)  mkdir chromium; cd chromium; fetch –nohooks chromium; gclient runhooks  Update: git checkout master; git rebase-update; gclient sync --jobs=16  Further info: http://dev.chromium.org/developers/how-tos/get- the-code
  • 10. 10Samsung Open Source Group Build  Beefy hardware: 64 bits + 16GB ram.  Intel i7@2.5Ghz takes 45 minutes.  Uses +30GB of disk space.  Building*:  ./build/gyp_chromium –Dwerror= #configure  ninja -C out/Debug/ blink_tests -j10 #layout tests  ninja -C out/Debug/ content_unittests -j10 #content  Targets: unit_tests | browser_tests | net_unittests | gpu_unittests  ninja -C out/Debug chrome -j10 #chromium browser
  • 11. 11Samsung Open Source Group Patching  Make a change, create a branch and commit:  git checkout –b myFeature  git commit -a -m “It does something.”
  • 12. 12Samsung Open Source Group Running Tests + Upload  Layout tests:  ./Tools/Scripts/run-webkit-tests --debug css3/filters  Content tests:  ./out/Debug/content_unittests | unit_tests  If everything is ok (i.e. no regressions), upload the patch:  git cl upload  Kick the bots:  git cl try
  • 13. 13 N otify chrom ium issues 2. Develop patch 7. Land patch Retry 3x Manual commit Submitting Patches: Blink
  • 14. 14Samsung Open Source Group Watching the Bots  You should receive emails about bot status.  Investigate if a bot is red.
  • 15. 15Samsung Open Source Group Blink/Chromium: Gaining Status Committer: • Same as WebKit (30~40 non-trivial patches). • Bonus if already a WebKit committer. Owner: • Have provided high quality reviews / design feedback. • Be a Chromium project member for at least 6 months. • Have submitted a substantial number of non-trivial changes. • Had made changes to the affected directory within 90 days. • Bandwidth to contribute with other owners.
  • 16. 16 5 Principles To Make Good Contributions
  • 17. 17Samsung Open Source Group The Magic Secret to a Good Patch  Answer these 5 questions.
  • 18. 18Samsung Open Source Group The 5 Magical Questions  Does it improve performance?  Is it an enabler for others?  Is it spec compliant?  Is it innovative?  Does it fit the project architecture?
  • 19. 19Samsung Open Source Group If Everything Fails…  Does it improve the performance?  Is it an enabler for others?  Is it spec compliant?  Is it innovative?  Does it fit the project architecture? DOES IT AT LEAST CLEAN UP THE CODE REMARKABLY?
  • 20. 20 If the Answer is No… Give up and try something different. Samsung Open Source Group
  • 21. 21Samsung Open Source Group Final Consideration  Submit something you are proud of.  Put yourself in the reviewer’s shoes.
  • 22. 22Samsung Open Source Group Final Consideration  Submit something you are proud of.  Put yourself in the reviewer’s shoes. Remember: you are putting your name on the line in addition to our company image.
  • 24. 24Samsung Open Source Group Writing Good Commit Logs  To be useful, a log must foremost describe why a change was made (the what is obvious by reading the code).  Programmer types:  poor programmers don’t write logs;  good programmers write logs that need the code to be understood;  great programmers write logs that are self explanatory and may include references to external documentation.
  • 25. 25Samsung Open Source Group Writing Good Commit Logs  Bad log: “fix bug and refactor.”  Good log example:
  • 26. 26Samsung Open Source Group Commits Must Be Atomic  Do one change (e.g. implementing one feature) and resist the urge to add non-related things (e.g. aesthetics, typos, etc).  If you identified something else, open a new bug to track the issue and submit another patch later.
  • 27. 27Samsung Open Source Group Quality X Quantity  3 good patches are much better than 15 obvious ones.
  • 28. 28Samsung Open Source Group 1 Ferrari F12 == 16 Fiat 500. Quality X Quantity
  • 29. 29Samsung Open Source Group Self-Review Your Code  When you are done, look for possible areas for improvement.  Try to find cases where it would fail.  Does it scale up? Does it scale down?
  • 30. 30Samsung Open Source Group Know Thy Browser  Have all browsers handy and know their behavior for what you working on.
  • 31. 31Samsung Open Source Group Know the Code Style  Before starting anything, read:  https://www.chromium.org/developers/coding-style  https://www.chromium.org/blink/coding-style  Fix the mistakes pointed by ‘git cl upload’.
  • 32. 32 Best Practices Working with Chromium Team
  • 33. 33Samsung Open Source Group Communication is King  Think twice and formulate your thoughts in an articulated way.  If you have difficulties with English, prefer async comm (e.g. mailing list).  Go straight to the point, time is valuable.  The way you speak may affect how reviewers may perceive your ideas. When using IRC:
  • 34. 34Samsung Open Source Group How to Ask Smart Questions*  Do your homework:  research;  read available documentation;  ask your team members;  Write the question with a clear title.  Proof read before posting.  Add links to each relevant info you found (to prove that at least you tried to find answers). *Reference: http://catb.org/~esr/faqs/smart-questions.html
  • 35. 35Samsung Open Source Group Know the Time Zones  The team is distributed (from Korea):  California is 16 hours behind.  Europe (UK) is 8 hours behind.  Sometimes you will have to wake up earlier (or wait for late night) to reach the right person.
  • 36. 36Samsung Open Source Group Observe Cultural Differences  Code review is straight and to the point.  The criticism is directed at the code, not at you as a person.  Any accepted contribution brings a cost for maintenance and has to be within the high standards of the project.
  • 37. 37Samsung Open Source Group Observe Cultural Differences  USA: it is alright, OK.  Russia: zero.  Brazil: insult!
  • 38. 38Samsung Open Source Group Choose an Area and a Reviewer  Select an area/subsystem to work on.  Develop a relationship with one or two reviewers.  Avoid jumping from one area to another as it will impact your productivity and your potential nomination to become a committer in the future.
  • 39. 39Samsung Open Source Group Use Bots Sparingly  Bots consume resources and many queued jobs slows down every single contributor.  Only select 3 or 4 bots (e.g. mac, windows, android, linux-debug) and submit the job if you have tested it locally.  Recently a developer was almost had bot permissions blocked because he was ‘trigger happy’.
  • 40. 40Samsung Open Source Group When to Duck  Generally, the reviewers are right when they ask for changes.  Be grateful for the feedback and implement all changes.  Don’t push back or stall (especially if you are not used to the subsystem you are working).  Again: the reviewers are doing you a favor by reviewing your patch.
  • 41. 41Samsung Open Source Group When to Hold Your Ground  If you truly believe your idea makes sense and have done great research.  If you have data (e.g. benchmarks).  When you can point to specs (W3C, WHATWG).  When other browsers implement the same behavior.
  • 42. 42Samsung Open Source Group The Job is Never Completed  After a patch has landed, keep watching the bots for any regressions:  http://build.chromium.org/p/chromium/waterfall  If you noticed that your patch is responsible for a regression, ping the reviewer in IRC and discuss what to do next.
  • 43. 43Samsung Open Source Group Check Your Email on the Weekends*  It may happen that your contribution triggered a regression and in such case you will be notified by email.  Promptly answer the email and start investigating.  If not possible, suggest to rollback the patch and explain when you can start looking into the subject. *if you can’t, time your patches with weekdays (e.g. Tuesday/Wednesday).
  • 44. 44Samsung Open Source Group Check Your Email on the Weekends This happened in a Friday at 23hs!
  • 45. 45Samsung Open Source Group Follow the Mailing List  Be aware of what is happening in the project as a whole.  Sign in to blink-dev and chromium-dev.  Before starting something bigger, ask reviewers what they think about it.
  • 46. 46Samsung Open Source Group Questions and Answers
  • 47. 47Samsung Open Source Group Thank You!