How to make your first steps in Open Source contributing

Katerina Sand
CheckiO Blog
Published in
7 min readAug 24, 2017

--

Contributing to open source is a common practice these days. It can be very interesting and rewarding experience that will result in learning, teaching and gaining many different skills. Open source contribution can resemble a coding game. Closing an issue in open source project can be the same as solving missions on CheckiO. Code review for open source project is similar to checking solutions of other users. But as any other game it has its own rules. And in this article I would like to talk about those rules which might help you enjoy playing in open source game.

What is open source?

Open source is a method of software development in which the source code is available for viewing with a license where the owner permits to study, change and distribute the software to the next man for any reason.

So, the open-source software can be developed in a transparent and collaborative public manner, and it’s completely okay to download and use it. Saying it even simpler, you’re able to add new features, fix bugs and make any other changes to a specific project.

Not a single company can develop and sustain long term the amount of design perspectives that this kind of collaborative development involving multiple independent sources results in.

There are many differences in each open source community. They might show in communication styles, vocabulary, norms etc., although, the organizational structure can be similar.

Typically, open source has:

an owner — a person (or people) possessing administrative ownership over the organization or repository,

an author — a person (or people) or organisation who have created the project,

the maintainers — contributors that manages the project, its vision and organizational aspects (authors/owners with them might be one and the same),

contributors — every person who have contributed to the project,

community members — everyone who uses the project.

You should pay attention to a project’s documentation. Deciding whether to contribute to a project look through these files that usually are listed in the top level of a repository:

LICENSE — every open source project must have an open source license and you should get familiar with it very carefully before making any contributions. If there is no license, it is not open source.

README — is the file with instructions and other essential information, along with the owner’s contacts.

CONTRIBUTING — is the file with the information on how to make contributions to the project and what kinds of contributions are needed.

While the files above are necessary, there also might be: CODE_OF_CONDUCT, Other documentation, Issue tracker, Pull requests, Discussion forums or mailing lists, Synchronous chat channel.

Why contribute?

There are a lot of reasons why people contribute to an open source. You can improve your existing skills through the practice working on a project, meet likeminded people, be a teacher for others or find a mentor for yourself, build public artefacts which might draw attention to you and your work helping grow a reputation or even make a career, learn people skills whether it’s leadership or managing conflicts, organizing others, and after all it’s empowering to make changes no matter how big or small.

Finding a project

Of course, to make some kind of a contribution, you have to find a project you’d like to contribute to first.

But don’t just jump into it forcing your ideas. Try walking the room, reading people, see what they up do, what they are talking about, what issues are being raised.

For example, when you’re looking for a project you can go to a website called GitHub. It’s very popular and provides repositories where developers can store and share their open source projects. After registering there you can start collaborating with people from all over the world.

Trying to narrow down from the huge amount of different projects stick to what you know. Maybe look through the project you’re already familiar with or heard of. You can also check out what is currently trending or search by the programming language who’d want to work with.

And when you’ll finally find a project, make sure that it’s accepting contributions, so that your hard work didn’t go unnoticed.

Making a contribution

Before any further action, always check whether the idea you want to submit hasn’t been raised and discussed already. After doing that you may start to communicate. On GitHub it’s possible by opening an issue or pull request.

When you’re opening an issue it’s the same as starting a conversation or a discussion. Pull request is for starting to work on a solution.

To raise an issue you might want to brows the issues that other people have already raised. This can give you the understanding of how things done. After that, click the ‘New Issue’ button. Make sure you include as much information as possible. You can mention your hardware and software setup and provide screenshots or recordings that illustrate the issue or an error. Also you can propose a new feature or other project idea. Include as much detail as possible.

To make a pull request you don’t necessary have to submit a finished work. Opening it early on others can watch or give feedback on your progress. It’s completely okay to mark it as a Work in Progress (WIP) in the subject line. There’s always the opportunity to add more commits later.

If you’d like to contribute code, you should clone the original project, make changes to your copy, and then ask the project’s owner if they want to pull your changes into their original repository.

In GitHub there’s a process for opening a pull request. First of all, you need to fork the repository. By running the git clone command from your terminal create a local clone of your fork. Then connect to the original repository. Using the git “Remote Add Upstream” command you need to tell your local copy where it can find the original. Make your changes to the local version. By running “Git Add” command followed by the updated file tell Git which files you’ve changed. After that, commit your changes to the project’s history. Also provide a log message explaining the changes you’ve included in this commit and push the “Commit” from your local repository to GitHub. There navigate to your copy of the repository and click the “Pull Request” button. The “Send pull request” button click after you’ve entered a description of the changes that have been made by you. this process ends when the project’s owner check your changes, and decide whether they want to include them in their repository.

As an addition you can also create a branch for your edits, reference any relevant issues or supporting documentation in your PR, include screenshots of the before and after, and run your changes against any existing tests or create new ones when needed. Whether tests exist or not, make sure your changes don’t break the existing project.

Contribute without writing a code

Open source projects don’t only need contributions that involve programming. You can make your input without even knowing how to write a simple code. Here are some ways that might give you an idea. You can:

- be a tester — testing a project means using it and reporting any problems you run into,

- translate — you can offer your services as a translator if you speak different languages,

- help with design — you can help designing website or a logo, because sometimes open source projects’ don’t involve a lot of people and they don’t have time to manage all of it,

- plan events — if you’re good in organizing these kind of things you can plan a meetup or a conference for a project,

- write a documentation — you can write the instructions or add to those that already exist, because sometimes they might be not so clear for new users and you can relate,

- help people — answer questions about the project, get involved in or create a discussions on matters concerning the project,

- build a community — every open source project require a community, so you can assist by involving more people through different approaches,

- donate — this gets you involved by helping the owners to cover the cost of hardware, software and other such things,

- suggest a feature — you can pitch an idea of how to improve a project to its owner, etc.

Of course, there’re a lot of other things you can do and you can totally figure them out for yourself based on knowing your own set of skills and spheres of interest.

Wrapping up

So, in this article we’ve become more familiar with open source and reviewed some of the ways you can start contribution to projects you like. Of course, there’re much more things you can do. There’re countless ways to get involved and be a part of great communities with fellow-thinkers and amazing possibilities. You can do important work (there’s no such thing as small contribution, every contribution is appreciated) and getting to know amazing people in the process. Now the hardest thing to do is those first steps, but don’t sweat it, they are totally worth taking.

Appendix: open source projects actively searching for contributors

Python projects

- Django — is a community that lives on its volunteers. It keeps growing and needs more people to help others.

Contributing page

- BeeWare is a collection of projects that can be used to help develop, debug and launch Python software.

Take a look at the BeeWare projects.

Contributing page

JavaScript projects

- Webpack is insanely feature rich. Any time spent fixing typos or clarifying sections in the documentation is highly appreciated.

Contributing page

- Angular 2 — One framework. Mobile and desktop. You’re welcome to contribute and help make it even better than it is today!

Contributing page

--

--