Pathway to Open Source

Let's Contribute

About Me

Mohammad Shahbaz Alam

Director, Alfaaz Lingua

Full Stack Developer

Auth0 Ambassador

Mozilla Representative

GDG Ranchi Organizer

 

@mdsbzalam

 

Agenda

1. VCS and Git

2. Open Source Projects

3. Outreachy and Hacktoberfest

4. Roles in an Open Source Projects

 

VCS & Git

What is “version control system”, and why should you care?

Version control is a system that records changes to a file or set of files over time so that you can recall specific versions later.

Local Version Control

Centralized Version Control

Distributed Version Control System

History of Git

  • The Linux kernel is an open source software project of fairly large scope.        
  • For most of the lifetime of the Linux kernel maintenance (1991–2002), changes to the software were passed around as patches and archived files.
  • In 2002, the Linux kernel project began using a proprietary DVCS called BitKeeper.
  • In 2005, the relationship between the community that developed the Linux kernel and the commercial company that developed BitKeeper broke down, and the tool’s free-of-charge status was revoked.
  • This prompted the Linux development community (and in particular Linus Torvalds, the creator of Linux) to develop their own tool based on some of the lessons they learned while using BitKeeper.

History of Git

Some of the goals of the new system were:

Since its birth in 2005, Git has evolved and matured to be easy to use and yet retain these initial qualities.

It’s amazingly fast, it’s very efficient with large projects, and it has an incredible branching system for non-linear development

  • Speed

  • Simple design

  • Strong support for non-linear development (thousands of parallel branches)  

  • Fully distributed

  • Able to handle large projects like the Linux kernel efficiently (speed and data size)

Open Source Projects

Open Source Projects

Open Source Projects

  • The best open source projects to contribute to is by using the product built by an Open Source Community
  • It could be reporting of a bug, testing certain feature, creating a Pull Request, designing, evangelising and lot more.
  • Look for "good-first-bug" "beginners" "easy" "contributors" tag in the issue raised by the community.

Open Source Projects

Open Source Projects

Open Source Projects

Open Source Projects

Open Source Projects

Open Source Projects

Open Source Projects

Open Source Projects

Outreachy

  • Outreachy is a paid, remote internship program.
  • Outreachy's goal is to support people from groups underrepresented in tech.
  • They help newcomers to Free and Open Source Software make their first contributions.

Why Apply to Outreachy?

Why Apply to Outreachy?

Outreachy provides an opportunity for an online collaborative environment for learning, and remote mentoring with experienced FOSS contributors, many of whom are employed to work with free and open source software.

The Outreachy travel stipend gives interns a chance to network with their community, give their first public tech talk, look for a job, or learn new skills.

How to Apply?

The application process for Outreachy is longer than most internship applications, so it's highly encouraged to start the application at least 2-3 weeks before the Outreachy application deadline.

Eligibility

Roles in OSP

1. Maintainer

2. Contributor

3. Committer

Maintainer

  • For some projects, “maintainers” are the only people in a project with commit access.
  • In other projects, they’re simply the people who are listed in the README as maintainers.
  • A maintainer doesn’t necessarily have to be someone who writes code for your project.
  • It could be someone who’s done a lot of work evangelizing your project, or written documentation that made the project more accessible to others.
  • A maintainer is probably someone who feels responsibility over the direction of the project and is committed to improving it.

Cotributor

  • A “contributor” could be anyone who comments on an issue or pull request
  • people who add value to the project (whether it’s triaging issues, writing code, or organizing events)
  • or anybody with a merged pull request                                                                    

Cotributor

Committer

  • The term “committer” might be used to distinguish commit access, which is a specific type of responsibility, from other forms of contribution.
  • Some people think you should give commit access to everybody who makes a contribution.
  • Doing so could encourage more people to feel ownership of your project.      
  • On the other hand, especially for bigger, more complex projects, you may want to only give commit access to people who have demonstrated their commitment.
  • There’s no one right way of doing it - do what makes you most comfortable!  

Resources

Connect with me

Twitter

@mdsbzalam

Slide

Thank you

@mdsbzalam

Pathways to Open Source

By Mohammad Shahbaz Alam