SlideShare a Scribd company logo
1 of 18
Tips and tricks for
contributing to an Open
Source project
Victor Morales
• +18 yrs as a Software Engineer
• .NET, Java, python, Go programmer
• OpenStack, OPNFV, ONAP and CNCF
contributor.
https://about.me/electrocucaracha
One of the key elements in the Andean worldview, which is for
this purpose extremely relevant, is the principle of
reciprocity. It defines all types of social relations and is
based on a principle of interrelation and interdependency,
which thus suggests a form of mutual support and
consideration of all parts of society. Social norms, cultural
tradition and religious, mythic beliefs form one entity in Andean
cosmology. The underlying view is an holistic one, which sees
the human beings as parts of space (nature), time (history and
tradition) and of their current society (present social setting). In
this context, coca has a binding function as it
represents a mean of communication, among
the respective elements as well as between them.
Reciprocity
http://revelaaustria.com/el-significado-de-la-hoja-de-coca-para-el-indigena-de-los-andes/
https://core.ac.uk/reader/11592764
http://dev2ops.org/2010/02/what-is-devops/
Contributor Reviewer
DevOps ConRev
• Pull Requests
• Read CONTRIBUTING.md
• Prior submission
• Git Commit messages
• Post submission
• Code reviews
• Definition
• Choosing Reviewer
• Reviewer’s considerations
Open Source – Collaboration
Pull requests
A short guide to facilitate the onboarding
process of potential project contributors.
It’s helpful for:
• Contributors who want to know items
they’re welcome to tackle
• Consumers who want to build off the
project
https://www.mysafetysign.com/read-user-manual-before-operating-notice-sign/sku-s-9120
Read
CONTRIBUTING.md
1. Review your own code first
• Run Tests locally
• Ensure there is no typos
2. Narrowly scope changes
• No more than 300–400 lines of code
• Provide a good commit message
• Fill the PR information template
https://www.flickr.com/photos/18378305@N00/12623408743
Prior submission
• First line – Short summary (<50 chars)
• Informative body
• Brief description of the problem.
• Describe the functional change being made and
the result of it.
• Lines should be wrapped at 72 chars
• Issue/Bug reference
https://www.conventionalcommits.org/en/v1.0.0/#summary
https://google.github.io/eng-practices/review/developer/cl-descriptions.html
https://wiki.openstack.org/wiki/GitCommitMessages
https://docs.releng.linuxfoundation.org/en/latest/best-practices.html
Git Commit messages
3. Respond graciously to critiques
• Don’t take it personally
• Be patient when your reviewer is
wrong
• Communicate your responses explicitly
4. Answer questions with the code
itself
5. Minimize lag between rounds of
review
• The code review has a higher priority
than the development task to avoid
long-lived pull requests.
• Avoid to leave unclear comments.
https://www.flickr.com/photos/7321654@N03/3456375365
Post-submission
Code Reviews
“A software quality assurance activity
in which one or several people check
a program mainly by viewing and
reading parts of its source code, and
they do so after implementation or as
an interruption of implementation.” -
Wikipedia
https://www.flickr.com/photos/30478819@N08/45977680015
Definition
1. Clearly understands the
acceptance criteria of the code.
• Reviews the code against the
code review checklist
(CONTRIBUTING.md)
2. Each commit should be
reviewed by at least one or two
team members before pushing
the code to the main branch.
https://www.flickr.com/photos/49968232@N00/13421955434
Who is a reviewer?
The best reviewer is the person who will be able to
give you the most thorough and correct review for
the piece of code you are writing. This usually means
the owner(s) of the code, who may or may not be
the people in the OWNERS file. Sometimes this
means asking different people to review different
parts of the CL.
Automation scripts need to run
successfully in order to pass review
https://www.flickr.com/photos/49503047029@N01/246595786
Choosing Reviewer
• Is the code well-designed and appropriate for your
system?
• Does the code behave as the author likely intended?
• Is the way the code behaves good for its users?
• Could the code be made simpler?
• Would another developer be able to easily understand
and use this code when they come across it in the
future?
• Does the code have correct and well-designed
automated tests?
• Did the developer choose clear names for variables,
classes, methods, etc.?
• Are the comments clear and useful?
• Does the code follow our style guides?
• Did the developer also update relevant documentation?
https://www.flickr.com/photos/66757486@N00/2380987996
Reviewer’s considerations
Reviewer (cont.)
4. Automate the easy stuff (linting, spelling, labeling, etc.)
• Linting (Hard-Coded Values. Often indicate hasty
development) - https://github.com/github/super-linter
• Spelling (Typos and Bad Formatting. Reflect carelessness,
cause frustration, and damage reputation) -
https://github.com/reviewdog/action-misspell
https://pypi.org/project/pyspelling/
• Triage - https://github.com/actions/labeler
https://docs.pullapprove.com/
• Test Coverage threshold.
https://coverage.readthedocs.io/en/coverage-
5.5/cmd.html?highlight=--fail-under#reporting
https://www.flickr.com/photos/78205255@N00/96887547
The golden rule: Time is money
• Reviewer’s time
• Contributor’s time
• CI’s time
https://www.flickr.com/photos/38451115@N04/3992935923
Q&A

More Related Content

Similar to Tips for contributing to Open Source projects

Immersive Recommendation
Immersive RecommendationImmersive Recommendation
Immersive Recommendation承剛 謝
 
Online Library Management
Online Library ManagementOnline Library Management
Online Library ManagementVarsha Sarkar
 
Open Source Design Pattern Library, Spreading Communities Thick: Open Source ...
Open Source Design Pattern Library, Spreading Communities Thick: Open Source ...Open Source Design Pattern Library, Spreading Communities Thick: Open Source ...
Open Source Design Pattern Library, Spreading Communities Thick: Open Source ...Allison Bloodworth
 
UKSG webinar - TERMS revisited: developing the combination of electronic reso...
UKSG webinar - TERMS revisited: developing the combination of electronic reso...UKSG webinar - TERMS revisited: developing the combination of electronic reso...
UKSG webinar - TERMS revisited: developing the combination of electronic reso...UKSG: connecting the knowledge community
 
Next generation repositories
Next generation repositoriesNext generation repositories
Next generation repositoriesPaul Walk
 
Capability Building for Cyber Defense: Software Walk through and Screening
Capability Building for Cyber Defense: Software Walk through and Screening Capability Building for Cyber Defense: Software Walk through and Screening
Capability Building for Cyber Defense: Software Walk through and Screening Maven Logix
 
ISWC2023-McGuinnessTWC16x9FinalShort.pdf
ISWC2023-McGuinnessTWC16x9FinalShort.pdfISWC2023-McGuinnessTWC16x9FinalShort.pdf
ISWC2023-McGuinnessTWC16x9FinalShort.pdfDeborah McGuinness
 
UKSG 2018 Breakout - TERMS redefined: developing the combination of electroni...
UKSG 2018 Breakout - TERMS redefined: developing the combination of electroni...UKSG 2018 Breakout - TERMS redefined: developing the combination of electroni...
UKSG 2018 Breakout - TERMS redefined: developing the combination of electroni...UKSG: connecting the knowledge community
 
Chapter 4_Introduction to Patterns.ppt
Chapter 4_Introduction to Patterns.pptChapter 4_Introduction to Patterns.ppt
Chapter 4_Introduction to Patterns.pptRushikeshChikane1
 
Chapter 4_Introduction to Patterns.ppt
Chapter 4_Introduction to Patterns.pptChapter 4_Introduction to Patterns.ppt
Chapter 4_Introduction to Patterns.pptRushikeshChikane2
 
Алексей Веркеенко "Symfony2 & REST API"
Алексей Веркеенко "Symfony2 & REST API" Алексей Веркеенко "Symfony2 & REST API"
Алексей Веркеенко "Symfony2 & REST API" Fwdays
 
Communication in Open Source
Communication in Open SourceCommunication in Open Source
Communication in Open Sourceosswatch
 
Cleaning Code - Tools and Techniques for Large Legacy Projects
Cleaning Code - Tools and Techniques for Large Legacy ProjectsCleaning Code - Tools and Techniques for Large Legacy Projects
Cleaning Code - Tools and Techniques for Large Legacy ProjectsMike Long
 
Dice.com Bay Area Search - Beyond Learning to Rank Talk
Dice.com Bay Area Search - Beyond Learning to Rank TalkDice.com Bay Area Search - Beyond Learning to Rank Talk
Dice.com Bay Area Search - Beyond Learning to Rank TalkSimon Hughes
 
11.project online library management system
11.project online library management system11.project online library management system
11.project online library management systemmonika ahalawat
 

Similar to Tips for contributing to Open Source projects (20)

Immersive Recommendation
Immersive RecommendationImmersive Recommendation
Immersive Recommendation
 
Online Library Management
Online Library ManagementOnline Library Management
Online Library Management
 
2019 TURIN scholarly publishing
2019 TURIN scholarly publishing2019 TURIN scholarly publishing
2019 TURIN scholarly publishing
 
Open Source Design Pattern Library, Spreading Communities Thick: Open Source ...
Open Source Design Pattern Library, Spreading Communities Thick: Open Source ...Open Source Design Pattern Library, Spreading Communities Thick: Open Source ...
Open Source Design Pattern Library, Spreading Communities Thick: Open Source ...
 
UKSG webinar - TERMS revisited: developing the combination of electronic reso...
UKSG webinar - TERMS revisited: developing the combination of electronic reso...UKSG webinar - TERMS revisited: developing the combination of electronic reso...
UKSG webinar - TERMS revisited: developing the combination of electronic reso...
 
Next generation repositories
Next generation repositoriesNext generation repositories
Next generation repositories
 
Capability Building for Cyber Defense: Software Walk through and Screening
Capability Building for Cyber Defense: Software Walk through and Screening Capability Building for Cyber Defense: Software Walk through and Screening
Capability Building for Cyber Defense: Software Walk through and Screening
 
ISWC2023-McGuinnessTWC16x9FinalShort.pdf
ISWC2023-McGuinnessTWC16x9FinalShort.pdfISWC2023-McGuinnessTWC16x9FinalShort.pdf
ISWC2023-McGuinnessTWC16x9FinalShort.pdf
 
Pawan111
Pawan111Pawan111
Pawan111
 
UKSG 2018 Breakout - TERMS redefined: developing the combination of electroni...
UKSG 2018 Breakout - TERMS redefined: developing the combination of electroni...UKSG 2018 Breakout - TERMS redefined: developing the combination of electroni...
UKSG 2018 Breakout - TERMS redefined: developing the combination of electroni...
 
Chapter 4_Introduction to Patterns.ppt
Chapter 4_Introduction to Patterns.pptChapter 4_Introduction to Patterns.ppt
Chapter 4_Introduction to Patterns.ppt
 
Chapter 4_Introduction to Patterns.ppt
Chapter 4_Introduction to Patterns.pptChapter 4_Introduction to Patterns.ppt
Chapter 4_Introduction to Patterns.ppt
 
Алексей Веркеенко "Symfony2 & REST API"
Алексей Веркеенко "Symfony2 & REST API" Алексей Веркеенко "Symfony2 & REST API"
Алексей Веркеенко "Symfony2 & REST API"
 
Communication in Open Source
Communication in Open SourceCommunication in Open Source
Communication in Open Source
 
Software Design
Software DesignSoftware Design
Software Design
 
Cleaning Code - Tools and Techniques for Large Legacy Projects
Cleaning Code - Tools and Techniques for Large Legacy ProjectsCleaning Code - Tools and Techniques for Large Legacy Projects
Cleaning Code - Tools and Techniques for Large Legacy Projects
 
Dice.com Bay Area Search - Beyond Learning to Rank Talk
Dice.com Bay Area Search - Beyond Learning to Rank TalkDice.com Bay Area Search - Beyond Learning to Rank Talk
Dice.com Bay Area Search - Beyond Learning to Rank Talk
 
11.project online library management system
11.project online library management system11.project online library management system
11.project online library management system
 
Software citation
Software citationSoftware citation
Software citation
 
ER&L SUSHI ALI Feb 2015
ER&L SUSHI ALI Feb 2015ER&L SUSHI ALI Feb 2015
ER&L SUSHI ALI Feb 2015
 

More from Victor Morales

KCD Costa Rica 2024 - Nephio para parvulitos
KCD Costa Rica 2024 - Nephio para parvulitosKCD Costa Rica 2024 - Nephio para parvulitos
KCD Costa Rica 2024 - Nephio para parvulitosVictor Morales
 
CCOSS + KCD Mexico 2024 - Embracing GitOps in Telecom with Nephio
CCOSS + KCD Mexico 2024 - Embracing GitOps in Telecom with NephioCCOSS + KCD Mexico 2024 - Embracing GitOps in Telecom with Nephio
CCOSS + KCD Mexico 2024 - Embracing GitOps in Telecom with NephioVictor Morales
 
Understanding the Cloud-Native origins.pptx
Understanding the Cloud-Native origins.pptxUnderstanding the Cloud-Native origins.pptx
Understanding the Cloud-Native origins.pptxVictor Morales
 
Deciphering Kubernetes Networking
Deciphering Kubernetes NetworkingDeciphering Kubernetes Networking
Deciphering Kubernetes NetworkingVictor Morales
 
Removing Language Barriers for Spanish-speaking Professionals
Removing Language Barriers for Spanish-speaking ProfessionalsRemoving Language Barriers for Spanish-speaking Professionals
Removing Language Barriers for Spanish-speaking ProfessionalsVictor Morales
 
Understanding kube proxy in ipvs mode
Understanding kube proxy in ipvs modeUnderstanding kube proxy in ipvs mode
Understanding kube proxy in ipvs modeVictor Morales
 
Mutating Admission Webhook creation
Mutating Admission Webhook creationMutating Admission Webhook creation
Mutating Admission Webhook creationVictor Morales
 
Pod Sandbox workflow creation from Dockershim
Pod Sandbox workflow creation from DockershimPod Sandbox workflow creation from Dockershim
Pod Sandbox workflow creation from DockershimVictor Morales
 
Kubernetes fundamentals
Kubernetes fundamentalsKubernetes fundamentals
Kubernetes fundamentalsVictor Morales
 
Cloud native fundamentals
Cloud native fundamentalsCloud native fundamentals
Cloud native fundamentalsVictor Morales
 
Building cloud native network functions - outcomes from the gw-tester nsm imp...
Building cloud native network functions - outcomes from the gw-tester nsm imp...Building cloud native network functions - outcomes from the gw-tester nsm imp...
Building cloud native network functions - outcomes from the gw-tester nsm imp...Victor Morales
 
Reference CNF development journey and outcomes
Reference CNF development journey and outcomesReference CNF development journey and outcomes
Reference CNF development journey and outcomesVictor Morales
 
Kubernetes Resources Allocation
Kubernetes Resources AllocationKubernetes Resources Allocation
Kubernetes Resources AllocationVictor Morales
 
ONAP MultiCloud/K8s Casablanca
ONAP MultiCloud/K8s CasablancaONAP MultiCloud/K8s Casablanca
ONAP MultiCloud/K8s CasablancaVictor Morales
 
Kubernetes based Cloud-region support in ONAP to bring up VM and container ba...
Kubernetes based Cloud-region support in ONAP to bring up VM and container ba...Kubernetes based Cloud-region support in ONAP to bring up VM and container ba...
Kubernetes based Cloud-region support in ONAP to bring up VM and container ba...Victor Morales
 
Hybrid vFirewall ONAP use case
Hybrid vFirewall ONAP use caseHybrid vFirewall ONAP use case
Hybrid vFirewall ONAP use caseVictor Morales
 

More from Victor Morales (20)

KCD Costa Rica 2024 - Nephio para parvulitos
KCD Costa Rica 2024 - Nephio para parvulitosKCD Costa Rica 2024 - Nephio para parvulitos
KCD Costa Rica 2024 - Nephio para parvulitos
 
CCOSS + KCD Mexico 2024 - Embracing GitOps in Telecom with Nephio
CCOSS + KCD Mexico 2024 - Embracing GitOps in Telecom with NephioCCOSS + KCD Mexico 2024 - Embracing GitOps in Telecom with Nephio
CCOSS + KCD Mexico 2024 - Embracing GitOps in Telecom with Nephio
 
Nephio 101
Nephio 101Nephio 101
Nephio 101
 
Understanding the Cloud-Native origins.pptx
Understanding the Cloud-Native origins.pptxUnderstanding the Cloud-Native origins.pptx
Understanding the Cloud-Native origins.pptx
 
My OPNFV journey
My OPNFV journeyMy OPNFV journey
My OPNFV journey
 
Deciphering Kubernetes Networking
Deciphering Kubernetes NetworkingDeciphering Kubernetes Networking
Deciphering Kubernetes Networking
 
Removing Language Barriers for Spanish-speaking Professionals
Removing Language Barriers for Spanish-speaking ProfessionalsRemoving Language Barriers for Spanish-speaking Professionals
Removing Language Barriers for Spanish-speaking Professionals
 
Understanding kube proxy in ipvs mode
Understanding kube proxy in ipvs modeUnderstanding kube proxy in ipvs mode
Understanding kube proxy in ipvs mode
 
Mutating Admission Webhook creation
Mutating Admission Webhook creationMutating Admission Webhook creation
Mutating Admission Webhook creation
 
Deep dive networking
Deep dive networkingDeep dive networking
Deep dive networking
 
GW Tester
GW TesterGW Tester
GW Tester
 
Pod Sandbox workflow creation from Dockershim
Pod Sandbox workflow creation from DockershimPod Sandbox workflow creation from Dockershim
Pod Sandbox workflow creation from Dockershim
 
Kubernetes fundamentals
Kubernetes fundamentalsKubernetes fundamentals
Kubernetes fundamentals
 
Cloud native fundamentals
Cloud native fundamentalsCloud native fundamentals
Cloud native fundamentals
 
Building cloud native network functions - outcomes from the gw-tester nsm imp...
Building cloud native network functions - outcomes from the gw-tester nsm imp...Building cloud native network functions - outcomes from the gw-tester nsm imp...
Building cloud native network functions - outcomes from the gw-tester nsm imp...
 
Reference CNF development journey and outcomes
Reference CNF development journey and outcomesReference CNF development journey and outcomes
Reference CNF development journey and outcomes
 
Kubernetes Resources Allocation
Kubernetes Resources AllocationKubernetes Resources Allocation
Kubernetes Resources Allocation
 
ONAP MultiCloud/K8s Casablanca
ONAP MultiCloud/K8s CasablancaONAP MultiCloud/K8s Casablanca
ONAP MultiCloud/K8s Casablanca
 
Kubernetes based Cloud-region support in ONAP to bring up VM and container ba...
Kubernetes based Cloud-region support in ONAP to bring up VM and container ba...Kubernetes based Cloud-region support in ONAP to bring up VM and container ba...
Kubernetes based Cloud-region support in ONAP to bring up VM and container ba...
 
Hybrid vFirewall ONAP use case
Hybrid vFirewall ONAP use caseHybrid vFirewall ONAP use case
Hybrid vFirewall ONAP use case
 

Recently uploaded

Analog to Digital and Digital to Analog Converter
Analog to Digital and Digital to Analog ConverterAnalog to Digital and Digital to Analog Converter
Analog to Digital and Digital to Analog ConverterAbhinavSharma374939
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escortsranjana rawat
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSKurinjimalarL3
 
Introduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxIntroduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxupamatechverse
 
High Profile Call Girls Nashik Megha 7001305949 Independent Escort Service Na...
High Profile Call Girls Nashik Megha 7001305949 Independent Escort Service Na...High Profile Call Girls Nashik Megha 7001305949 Independent Escort Service Na...
High Profile Call Girls Nashik Megha 7001305949 Independent Escort Service Na...Call Girls in Nagpur High Profile
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsCall Girls in Nagpur High Profile
 
Porous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingPorous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingrakeshbaidya232001
 
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINEMANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINESIVASHANKAR N
 
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130Suhani Kapoor
 
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).pptssuser5c9d4b1
 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxwendy cai
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024hassan khalil
 
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVHARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVRajaP95
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxJoão Esperancinha
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...Soham Mondal
 
Current Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCLCurrent Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCLDeelipZope
 
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...ranjana rawat
 

Recently uploaded (20)

Analog to Digital and Digital to Analog Converter
Analog to Digital and Digital to Analog ConverterAnalog to Digital and Digital to Analog Converter
Analog to Digital and Digital to Analog Converter
 
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINEDJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
DJARUM4D - SLOT GACOR ONLINE | SLOT DEMO ONLINE
 
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
(MEERA) Dapodi Call Girls Just Call 7001035870 [ Cash on Delivery ] Pune Escorts
 
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICSAPPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
APPLICATIONS-AC/DC DRIVES-OPERATING CHARACTERISTICS
 
Introduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptxIntroduction to Multiple Access Protocol.pptx
Introduction to Multiple Access Protocol.pptx
 
High Profile Call Girls Nashik Megha 7001305949 Independent Escort Service Na...
High Profile Call Girls Nashik Megha 7001305949 Independent Escort Service Na...High Profile Call Girls Nashik Megha 7001305949 Independent Escort Service Na...
High Profile Call Girls Nashik Megha 7001305949 Independent Escort Service Na...
 
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptxExploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
Exploring_Network_Security_with_JA3_by_Rakesh Seal.pptx
 
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur EscortsHigh Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
High Profile Call Girls Nagpur Meera Call 7001035870 Meet With Nagpur Escorts
 
Porous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writingPorous Ceramics seminar and technical writing
Porous Ceramics seminar and technical writing
 
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINEMANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
MANUFACTURING PROCESS-II UNIT-2 LATHE MACHINE
 
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
VIP Call Girls Service Hitech City Hyderabad Call +91-8250192130
 
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
247267395-1-Symmetric-and-distributed-shared-memory-architectures-ppt (1).ppt
 
What are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptxWhat are the advantages and disadvantages of membrane structures.pptx
What are the advantages and disadvantages of membrane structures.pptx
 
Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024Architect Hassan Khalil Portfolio for 2024
Architect Hassan Khalil Portfolio for 2024
 
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IVHARMONY IN THE NATURE AND EXISTENCE - Unit-IV
HARMONY IN THE NATURE AND EXISTENCE - Unit-IV
 
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptxDecoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
Decoding Kotlin - Your guide to solving the mysterious in Kotlin.pptx
 
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
OSVC_Meta-Data based Simulation Automation to overcome Verification Challenge...
 
Current Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCLCurrent Transformer Drawing and GTP for MSETCL
Current Transformer Drawing and GTP for MSETCL
 
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
(ANVI) Koregaon Park Call Girls Just Call 7001035870 [ Cash on Delivery ] Pun...
 
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
★ CALL US 9953330565 ( HOT Young Call Girls In Badarpur delhi NCR
 

Tips for contributing to Open Source projects

  • 1. Tips and tricks for contributing to an Open Source project
  • 2. Victor Morales • +18 yrs as a Software Engineer • .NET, Java, python, Go programmer • OpenStack, OPNFV, ONAP and CNCF contributor. https://about.me/electrocucaracha
  • 3. One of the key elements in the Andean worldview, which is for this purpose extremely relevant, is the principle of reciprocity. It defines all types of social relations and is based on a principle of interrelation and interdependency, which thus suggests a form of mutual support and consideration of all parts of society. Social norms, cultural tradition and religious, mythic beliefs form one entity in Andean cosmology. The underlying view is an holistic one, which sees the human beings as parts of space (nature), time (history and tradition) and of their current society (present social setting). In this context, coca has a binding function as it represents a mean of communication, among the respective elements as well as between them. Reciprocity http://revelaaustria.com/el-significado-de-la-hoja-de-coca-para-el-indigena-de-los-andes/ https://core.ac.uk/reader/11592764
  • 5. • Pull Requests • Read CONTRIBUTING.md • Prior submission • Git Commit messages • Post submission • Code reviews • Definition • Choosing Reviewer • Reviewer’s considerations Open Source – Collaboration
  • 7. A short guide to facilitate the onboarding process of potential project contributors. It’s helpful for: • Contributors who want to know items they’re welcome to tackle • Consumers who want to build off the project https://www.mysafetysign.com/read-user-manual-before-operating-notice-sign/sku-s-9120 Read CONTRIBUTING.md
  • 8. 1. Review your own code first • Run Tests locally • Ensure there is no typos 2. Narrowly scope changes • No more than 300–400 lines of code • Provide a good commit message • Fill the PR information template https://www.flickr.com/photos/18378305@N00/12623408743 Prior submission
  • 9. • First line – Short summary (<50 chars) • Informative body • Brief description of the problem. • Describe the functional change being made and the result of it. • Lines should be wrapped at 72 chars • Issue/Bug reference https://www.conventionalcommits.org/en/v1.0.0/#summary https://google.github.io/eng-practices/review/developer/cl-descriptions.html https://wiki.openstack.org/wiki/GitCommitMessages https://docs.releng.linuxfoundation.org/en/latest/best-practices.html Git Commit messages
  • 10. 3. Respond graciously to critiques • Don’t take it personally • Be patient when your reviewer is wrong • Communicate your responses explicitly 4. Answer questions with the code itself 5. Minimize lag between rounds of review • The code review has a higher priority than the development task to avoid long-lived pull requests. • Avoid to leave unclear comments. https://www.flickr.com/photos/7321654@N03/3456375365 Post-submission
  • 12. “A software quality assurance activity in which one or several people check a program mainly by viewing and reading parts of its source code, and they do so after implementation or as an interruption of implementation.” - Wikipedia https://www.flickr.com/photos/30478819@N08/45977680015 Definition
  • 13. 1. Clearly understands the acceptance criteria of the code. • Reviews the code against the code review checklist (CONTRIBUTING.md) 2. Each commit should be reviewed by at least one or two team members before pushing the code to the main branch. https://www.flickr.com/photos/49968232@N00/13421955434 Who is a reviewer?
  • 14. The best reviewer is the person who will be able to give you the most thorough and correct review for the piece of code you are writing. This usually means the owner(s) of the code, who may or may not be the people in the OWNERS file. Sometimes this means asking different people to review different parts of the CL. Automation scripts need to run successfully in order to pass review https://www.flickr.com/photos/49503047029@N01/246595786 Choosing Reviewer
  • 15. • Is the code well-designed and appropriate for your system? • Does the code behave as the author likely intended? • Is the way the code behaves good for its users? • Could the code be made simpler? • Would another developer be able to easily understand and use this code when they come across it in the future? • Does the code have correct and well-designed automated tests? • Did the developer choose clear names for variables, classes, methods, etc.? • Are the comments clear and useful? • Does the code follow our style guides? • Did the developer also update relevant documentation? https://www.flickr.com/photos/66757486@N00/2380987996 Reviewer’s considerations
  • 16. Reviewer (cont.) 4. Automate the easy stuff (linting, spelling, labeling, etc.) • Linting (Hard-Coded Values. Often indicate hasty development) - https://github.com/github/super-linter • Spelling (Typos and Bad Formatting. Reflect carelessness, cause frustration, and damage reputation) - https://github.com/reviewdog/action-misspell https://pypi.org/project/pyspelling/ • Triage - https://github.com/actions/labeler https://docs.pullapprove.com/ • Test Coverage threshold. https://coverage.readthedocs.io/en/coverage- 5.5/cmd.html?highlight=--fail-under#reporting https://www.flickr.com/photos/78205255@N00/96887547
  • 17. The golden rule: Time is money • Reviewer’s time • Contributor’s time • CI’s time https://www.flickr.com/photos/38451115@N04/3992935923
  • 18. Q&A

Editor's Notes

  1. Contributing to any open source project could be overwhelming at the beginning, given there are some no-writing rules on them. But there are some tricks which can facilitate you during the process. This session provides some etiquette rules that I've learned on my Open Source journey as contributor and reviewer from several projects. The main takeaway of this will give the participant a set of best practices during the on-boarding process in any open source project.
  2. https://mtlynch.io/code-review-love/
  3. https://mtlynch.io/code-review-love/
  4. https://google.github.io/eng-practices/review/ We found no evidence for the delayed issue effect; i.e. the effort to resolve issues in a later phase was not consistently or substantially greater than when issues were resolved soon after their introduction. https://arxiv.org/pdf/1609.04886.pdf
  5. The best reviewer is the person who will be able to give you the most thorough and correct review for the piece of code you are writing. This usually means the owner(s) of the code, who may or may not be the people in the OWNERS file. Sometimes this means asking different people to review different parts of the CL.