SlideShare uma empresa Scribd logo
1 de 20
Becoming an awesome Open
Source Contributor
#fullStack2015
My First Pull Request
Hello
I’m Christos
christosmatskas
cmatskas
https://cmatskas.com
Enterprise Projects
Mobile applications
Side Projects
My contributions
What is Open Source
Open source software is software whose
source code is available for modification or
enhancement by anyone.
- OpenSource.com
Open-source software (OSS) is computer
software with its source code made available
with a license in which the copyright holder
provides the rights to study, change, and
distribute the software to anyone and for any
purpose.
- Wikipedia
Why Should You Care?
•US Department of Defence
•The City Of Munich, Germany
•Spain
•Federal Aviation Administration (FAA)
•The Stock Market
•French Parliament
•Cuba
Examples of OSS
Big Companies are joining in
• Microsoft - The .NET Foundation
(.NET, ASP.NET, Roslyn etc) - over 40
projects
• Apple - Swift 2015
• Linux
• Node.js Foundation, Angular.js,
Bootstrap
Why does it matter to me?
Making better software by
standing on the shoulders of
giants
Recipe to a successful OSS
1. Find a project to contribute
2. Write Code
3. Submit a PR
4. ?????
5. $$$$$$$$$$
Starting your journey
• Useful project sources
• Up-for-grabs.net
• https://github.com
Conclusion
Learn how to Git – vital
Read the contribution
instructions
Contact the owner
Don’t change coding standards
Attach related unit tests
Be patient
Maintainer checklist
Don’t create software for the
sake of it
It’s a big commitment
Create contribution instructions
Add how-to instructions
Be open to criticism
Be supportive to new members
You Rock!
The community would like to
say THANKS.
Useful links
• https://up-for-grab.net
• https://github.com
• First time with open source
• Becoming an awesome OSS
contributor
• @yourfirstpr
• Book – The Cathedral & the Bazaar

Mais conteúdo relacionado

Semelhante a How to become an awesome Open Source contributor

What Open Compute Project has in store for us all in 2020! webinar
What Open Compute Project has in store for us all in 2020! webinarWhat Open Compute Project has in store for us all in 2020! webinar
What Open Compute Project has in store for us all in 2020! webinar
Submer Immersion Cooling
 

Semelhante a How to become an awesome Open Source contributor (20)

The Rise of Open Source
The Rise of Open SourceThe Rise of Open Source
The Rise of Open Source
 
Kariera IT - Open Source - the best way to develop your product and yourself ...
Kariera IT - Open Source - the best way to develop your product and yourself ...Kariera IT - Open Source - the best way to develop your product and yourself ...
Kariera IT - Open Source - the best way to develop your product and yourself ...
 
OASIS: open source and open standards: internet of things
OASIS: open source and open standards: internet of thingsOASIS: open source and open standards: internet of things
OASIS: open source and open standards: internet of things
 
OASIS: How open source and open standards work together: the Internet of Things
OASIS: How open source and open standards work together: the Internet of ThingsOASIS: How open source and open standards work together: the Internet of Things
OASIS: How open source and open standards work together: the Internet of Things
 
Open Source Movement
Open Source MovementOpen Source Movement
Open Source Movement
 
Open Source Software Development by TLV Partners
Open Source Software Development by TLV PartnersOpen Source Software Development by TLV Partners
Open Source Software Development by TLV Partners
 
Open source presentation
Open source presentationOpen source presentation
Open source presentation
 
Microsoft ve Açık Kaynak
Microsoft ve Açık KaynakMicrosoft ve Açık Kaynak
Microsoft ve Açık Kaynak
 
Lfai governance board 20191031 v3
Lfai governance board 20191031 v3Lfai governance board 20191031 v3
Lfai governance board 20191031 v3
 
20080602 Microsoft and Open Source
20080602 Microsoft and Open Source20080602 Microsoft and Open Source
20080602 Microsoft and Open Source
 
Gup2011| open source
Gup2011| open sourceGup2011| open source
Gup2011| open source
 
What Open Compute Project has in store for us all in 2020! webinar
What Open Compute Project has in store for us all in 2020! webinarWhat Open Compute Project has in store for us all in 2020! webinar
What Open Compute Project has in store for us all in 2020! webinar
 
A machine learning approach to building domain specific search
A machine learning approach to building domain specific searchA machine learning approach to building domain specific search
A machine learning approach to building domain specific search
 
Why Open Always Trumps Closed (Eventually) - Drupalcamp Finland Keynote
Why Open Always Trumps Closed (Eventually) - Drupalcamp Finland KeynoteWhy Open Always Trumps Closed (Eventually) - Drupalcamp Finland Keynote
Why Open Always Trumps Closed (Eventually) - Drupalcamp Finland Keynote
 
Business Models and Open Source Licenses in 2019: Can we all get along?
Business Models and Open Source Licenses in 2019: Can we all get along?Business Models and Open Source Licenses in 2019: Can we all get along?
Business Models and Open Source Licenses in 2019: Can we all get along?
 
Smau Milano 2016 - Fabio Alessandro Locati
Smau Milano 2016 - Fabio Alessandro LocatiSmau Milano 2016 - Fabio Alessandro Locati
Smau Milano 2016 - Fabio Alessandro Locati
 
Open Source Software R
Open Source Software ROpen Source Software R
Open Source Software R
 
Open source ecosystem evolution open stack and kubernetes models
Open source ecosystem evolution open stack and kubernetes modelsOpen source ecosystem evolution open stack and kubernetes models
Open source ecosystem evolution open stack and kubernetes models
 
San Diego Start Up Month: Rockstar Open Source
San Diego Start Up Month: Rockstar Open SourceSan Diego Start Up Month: Rockstar Open Source
San Diego Start Up Month: Rockstar Open Source
 
Building your Open Source Security stack
Building your Open Source Security stackBuilding your Open Source Security stack
Building your Open Source Security stack
 

Mais de Christos Matskas

Mais de Christos Matskas (20)

Introduction to the Microsoft identity platform for developers
Introduction to the Microsoft identity platform for developersIntroduction to the Microsoft identity platform for developers
Introduction to the Microsoft identity platform for developers
 
Secure and scalable apps with .net and azure
Secure and scalable apps with .net and azureSecure and scalable apps with .net and azure
Secure and scalable apps with .net and azure
 
Azure Managed Identities and service principals
Azure Managed Identities and service principalsAzure Managed Identities and service principals
Azure Managed Identities and service principals
 
Scalable APIs with Azure Functions
Scalable APIs with Azure FunctionsScalable APIs with Azure Functions
Scalable APIs with Azure Functions
 
0 to hero with Azure DevOps
0 to hero with Azure DevOps0 to hero with Azure DevOps
0 to hero with Azure DevOps
 
Serverless architecture with Azure
Serverless architecture with AzureServerless architecture with Azure
Serverless architecture with Azure
 
Extreme microservices with Azure Functions
Extreme microservices with Azure FunctionsExtreme microservices with Azure Functions
Extreme microservices with Azure Functions
 
Serverless on Azure with Functions
Serverless on Azure with FunctionsServerless on Azure with Functions
Serverless on Azure with Functions
 
Serverless with azure functions the rebel service
Serverless with azure functions   the rebel serviceServerless with azure functions   the rebel service
Serverless with azure functions the rebel service
 
Becoming an awesome Open Source contributor and maintainer
Becoming an awesome Open Source contributor and maintainerBecoming an awesome Open Source contributor and maintainer
Becoming an awesome Open Source contributor and maintainer
 
Visual Studio Code and JavaScript - a pair made in heaven
Visual Studio Code and JavaScript - a pair made in heavenVisual Studio Code and JavaScript - a pair made in heaven
Visual Studio Code and JavaScript - a pair made in heaven
 
Serverless in Azure with Functions
Serverless in Azure with FunctionsServerless in Azure with Functions
Serverless in Azure with Functions
 
Going Serverless with Azure Functions
Going Serverless with Azure FunctionsGoing Serverless with Azure Functions
Going Serverless with Azure Functions
 
TypeScript - Your regular JavaScript on steroids
TypeScript - Your regular JavaScript on steroidsTypeScript - Your regular JavaScript on steroids
TypeScript - Your regular JavaScript on steroids
 
IoT fun with Raspberry Pi and .NET
IoT fun with Raspberry Pi and .NETIoT fun with Raspberry Pi and .NET
IoT fun with Raspberry Pi and .NET
 
Mobile application architecture
Mobile application architectureMobile application architecture
Mobile application architecture
 
Visual Studio 2015 - Productivity tips & tricks
Visual Studio 2015 -  Productivity tips & tricksVisual Studio 2015 -  Productivity tips & tricks
Visual Studio 2015 - Productivity tips & tricks
 
Common mistakes in tdd can you guess
Common mistakes in tdd   can you guessCommon mistakes in tdd   can you guess
Common mistakes in tdd can you guess
 
Getting Started With Microsoft Azure
Getting Started With Microsoft AzureGetting Started With Microsoft Azure
Getting Started With Microsoft Azure
 
Microsoft ASP.NET 5 - The new kid on the block
Microsoft ASP.NET 5 - The new kid on the block Microsoft ASP.NET 5 - The new kid on the block
Microsoft ASP.NET 5 - The new kid on the block
 

Último

%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
masabamasaba
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
VictoriaMetrics
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 

Último (20)

%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 

How to become an awesome Open Source contributor

Notas do Editor

  1. Becoming an awesome open source contributor. Wow, how does one really become one? I know I never imagined I would be one even as my career progressed. In fact, my first brush with Open Source was quite accidental. About a year ago I joined a large corporation to work on a big customer facing project. The code base was in dire state so one of my first tasks was to tidy things up. If you are a .NET developer, you will already know that all our external libraries come through NuGet. Most of them anyway. NuGet is Visual Studio's package manager. NuGet works in 2 modes. Download all the packages locally and store them as part of the solution, or use the package config file to instruct the solution to download the packages the first time a developer or the CI runs the build. Obviously, I decided to implement option 2 and break everything! So once I broke the build for everyone, I started working on reverting the changes. Unfortunately, once you "go NuGet you never go back", so the roll back was a painful process of reaping out xml from our project files. Since I knew that I'm not the only one that has done this tragic error, I blogged about it. Next time I have to roll back, I'll know exactly what to do. I blogged and tweeted about it, in hope that one of my 740 following bots would retweeted ( by now I'm convinced that I have no human followers). Lo and behold, within a couple of hours, the NuGet team contacts me saying that they loved my post and whether I could add it to the official NuGet documentation. That same documentation that millions of .NET developers use around the world. Me? The next few hours are a blur. I'm in a mess of documentation trying to understand forks and pull requests etc etc. I finally mange to send the PR in and have it merged. This is my PR:
  2. That first PR and Jeff’s encouragement were enough to create an extremely enthusiastic and passionate OSS developer. In the past year I've not only contributed to a large number of OSS projects but I've also managed to get my own projects published. And it all started off by chance.
  3. The gist of it is that OSS is free and available for modification and distribution. You can use, copy and change the code as you see fit. One important thing to note, however, is that there are different OSS licences so you need to make sure that the code you wish to alter has the right licence attached to it.
  4. Open Source is what makes the development world go round. At some point in your development career you've used, or you will use, Open Source in a project in order to implement a feature, solve a problem or enhance some existing functionality. Today, more than ever, we rely on Open Source when creating new applications, even if we don't realize it. There are thousands upon thousands of developers and millions of hours spent on developing and writing about Open Source. It's not just the code behind each project. It's the documentation, tests, reviews, roadmaps, planning, features, bugs and so on. And all these people do it because they love what they do and because they have a purpose. To help the community become bigger and better. Let’s look at some examples of interesting projects using open source:
  5. Even big software companies today actively support and contribute to OSS. Companies that in the past were so against Open Source!
  6. For me, one of the biggest benefits is the agility and ease of use that OSS provides. I can build better software by standing on the shoulders of giants! The first thing I do when I need to add new functionality is to look up for the library: What I can Do If I like a library or a project, I use it. If I find that it works but it's not exactly what I need, I fork the project and build something better. Then I have the option to contribute back to the original project through a Pull Request. If the owner likes it, then my changes can be incorporated into the project. If not we go our separate ways and continue to maintain our different versions of the software. What I don't have to do Wait for a patch release by the project owner Wait for the next major release in order to have my feature or bug resolved. Moan about the luck of features on the internet It doesn't get more agile than this!
  7. Unfortunately, unless you're extremely lucky, your OSS won't make you rich. It will, however, benefit you in many ways and allow you to grow as a developer. There are different ways to get started. My journey to Open Source begun totally off chance. A good friend of mine made an excellent contribution last year during Microsoft's //Build conference. Scott Hanselman was on stage pressing the publish button on the .NET CoreFX project - the cross platform .NET framework. As this was live and the code available, Adam decided to pull it and run it locally out of curiosity. The first thing any developer does when faced with a new library is to go into the tests and run them to see how the code works. Within a couple of minutes, the tests failed due to different language culture settings. So he fixed it and made a PR request to the project owners, which was, surprise surprise, accepted an merged. AT the same time, Scott is on stage with Miguel De Icaza, the guy behind Mono.NET and Xamarin thinking that they are raising the first Pull Request. The whole thing was ruined! But not in a bad way. In fact, Scott commented live about how engaged the community is.
  8. Your journey in OSS doesn't have to be the same. In fact, there are several ways one can get involved, contribute and add value. First, you need to find a language and project you're passionate about. The easiest way to find a project you can work on is through public repos, such as Github. Search for the language you like and find a project of interest. Another option is the Up-For-Grabs.net website that contains a list of projects that have issues that need attention and are open to the community.. If you're not comfortable with writing code, maybe you can contribute with documentation. There are thousands of projects that lack good documentation and some of them have none at all. Alternatively, you could contribute by writing unit tests. As with documentation, you'll find lots of projects that are in dire need of unit tests. Apparently there are still people that don't write tests? Shocked? Don't be! Once you overcome your initial "fear" and you feel brave enough, start forking and write some code. When you're done and you believe that your work is ready to be part of the original project you can send a Pull Request (PR), sit back and enjoy.
  9. I believe that Git is the biggest barrier in getting started with Open Source. The workflow is sometimes daunting to new users so you need to have a good grasp of terms like: Pull Request Merging Rebasing Cherry Picking etc Github provides a good, solid GUI but eventually you’ll have to drop down to the command line. There’s plenty of written material and tutorials out there that can help you become a Git ninja! There is an etiquette for contributing, so make sure you read each project's contribution requirements first. Before you go ahead and code your awesome bug fix or feature, ensure that there isn't an open issue already. Contact the project owner to let them know that you wish to help. Inform them of your intentions and this will give your PR better chances in being accepted right away. Also, try not to change coding standards or use automated tools to suppress errors, white space or remove/add comments. It's important you follow the coding standards of the project even if you don't agree with them. You can certainly discuss them with the project owners but I can guarantee you're going to fail if you go ahead and be brave. No matter what happens, don't be discouraged if your PR is not accepted. Find out why and work harder to fix it accordingly before re-submitting.
  10. To begin with, I would advise against you creating software for the sake of writing software. If you want your project to succeed, make it useful, make it meaningful and be passionate about it. Also, some of the most successful OSS projects started as someone's library (Automapper for example, has over 4M downloads and Underscore.js 8.3M downloads only last month!). Both these projects begun their lives as someone's utility and once the developers recognized the value, they shared their code.
  11. If you've decided to create your first OSS then we, the community, would like to thank you for your awesome, awesome, effort. You don't get paid, yet you choose to create something and share it with us. You rock! It is at this point that I would like to stress out that the OSS community owes you, not the other way around. If you feel that you’re getting abuse for no reason or things are not working out, then don’t worry about it. Do’t feel guilty. Eventually someone will come along and pick up the project. OSS is awesome and it's what makes to development world go round. OSS is consumed everywhere and even large corporations, who once stood against OSS, are starting to not only support but actively contribute. Because we all want to make better software for everyone. We live through some really exciting times and I, for one, am thrilled to be part of this community, at this time. Note that we always need more contributors to help out with the load, so I would urge you to go out there today and share your knowledge and passion with the rest of us. Find a project that you love, use or hate and make it better :)