Open Source Comes to Campus/Curriculum/Finding a Project: Difference between revisions

From OpenHatch wiki
Content added Content deleted
imported>Shauna
imported>Shauna
No edit summary
Line 44: Line 44:


== Evaluating Projects ==
== Evaluating Projects ==

For each of your potential projects, you'll use the information you gathered in the last step to help you evaluate the project. You can evaluate the project by asking yourself the following questions. Write down your answers!
=== Is this project active? ===

Take a look at the issue tracker. When was the last issue reported? Or take a look in the source repository and see - when was the last commit? If the answer is "today" or even "this week", that's great! Your project is definitely active. If it's been a few months, that may mean that the project is abandoned, or it may mean that it's been quiet for a while. Even if the project is still going, the maintainers may want to focus on other things for a while. If the answer is "years", the project is probably abandoned. If the project has had commits made or issues reported within the last few months, take a look at the rate: how often do issues get reported or commits get made? Once a day? Twice a week? Once a month?

=== How responsive are the maintainers? ===

Take a look at individual issues. How long does it take a maintainer to respond - if ever? Or look at pull requests, for instance on Github. Are there dozens of pull requests languishing for weeks or months? That may mean that the project's maintainer is overwhelmed or busy or just not very responsive. Look for pull requests that have a back and forth between the maintainer and the requester. Is the maintainer giving feedback and helping people submit appropriate requests? If so, that's a very good sign!

=== Is the community welcoming? ===

Every project is made up of individuals, and this means that each project has a different atmosphere or culture. You can read through their mailing list archives, or lurk on their IRC channel (or read their channel logs, if available) to see how newcomers are treated. When people have questions, are they answered patiently or ignored? Are the community members friendly with each other, and talk about things other than the project? If that's a dynamic you like, you can search for it. One thing to look for are codes of conduct. A lot of smaller projects don't think to have them, but many larger projects do, and you can get a sense of the kind of community a project has by seeing what kind of behavior they tolerate and what they discourage.


== Contacting Projects ==
== Contacting Projects ==

Revision as of 16:19, 21 April 2014

So you want to contribute to an open source project. With tens of thousands of options to choose from, how do you find one that's right for you? This activity is meant to help you narrow down your options to a few different projects you can pursue.

To get ready, all you need to do is take out a piece of paper, open up a text editor, or start an etherpad. You can use the template we've made in this etherpad.

Optional: find a friend or groups of friend to go through the activity with. They can help with each step. Maybe you'll even pick a project to contribute to together!

Step 1: Brainstorming Projects

Read through the following questions and think about what projects your answers suggest. Write those projects down on the etherpad:

What open source software do you use? For instance, if you use Firefox, are you interested in helping improve it? You can also consider related projects, in this case Firefox add-ons, or programs/libraries that Firefox uses to function. If you're not sure which of the software you use is open source, make a list of what you use and do a search to find out if they're open source.

Is there a project whose goals you find compelling? For instance, you might want to look at humanitarian projects like Sahana, or projects relating to a hobby of yours like music, videogames, or reading. If you're studying science or engineering, you might look for projects that are used by people in your field.

Are there any people you know who work on open source projects? Professors, classmates, friends? Getting to work with someone you like is a great reason to join a project!

You can also search through lists of projects and write down any projects that catch your eye. Here are some resources that list open source projects:

Step 2: Researching Projects

Once you've got at least 3 projects on your list, it's time to start researching them. For each of them, you need key information, including:

  • website url
  • source repository url
  • mailing list
  • IRC channel
  • contributor guide
  • installation guide

Write this information down as well. There's a section for this in the template etherpad. Every project will not have every item, but you should look for all of them. Sometimes the url will be the same for multiple items - for instance, the contributor guide and installation guide may be part of the same document. You can write down any other relevant information or links you find as well.

Some advice: The simplest way to find the project's main website is to google it. A well maintained project will have links from the website to their source code repository, issue tracker, mailing lists and IRC channel. Sometimes this information will all be bundled together in a “developer guide”. Larger projects may have multiple mailing lists for different people (developers, users, translators, etc) and for different parts of the project. Some code hosting services, such as Github, provide issue trackers as well. You can usually find a link to the issue tracker in the code repository and vice versa. Popular services include Github, Google Code, Bitbucket, SourceForge and Gitorious. Popular issue tracker services include Bugzilla, Github, and Google Code.

Evaluating Projects

For each of your potential projects, you'll use the information you gathered in the last step to help you evaluate the project. You can evaluate the project by asking yourself the following questions. Write down your answers!

Is this project active?

Take a look at the issue tracker. When was the last issue reported? Or take a look in the source repository and see - when was the last commit? If the answer is "today" or even "this week", that's great! Your project is definitely active. If it's been a few months, that may mean that the project is abandoned, or it may mean that it's been quiet for a while. Even if the project is still going, the maintainers may want to focus on other things for a while. If the answer is "years", the project is probably abandoned. If the project has had commits made or issues reported within the last few months, take a look at the rate: how often do issues get reported or commits get made? Once a day? Twice a week? Once a month?

How responsive are the maintainers?

Take a look at individual issues. How long does it take a maintainer to respond - if ever? Or look at pull requests, for instance on Github. Are there dozens of pull requests languishing for weeks or months? That may mean that the project's maintainer is overwhelmed or busy or just not very responsive. Look for pull requests that have a back and forth between the maintainer and the requester. Is the maintainer giving feedback and helping people submit appropriate requests? If so, that's a very good sign!

Is the community welcoming?

Every project is made up of individuals, and this means that each project has a different atmosphere or culture. You can read through their mailing list archives, or lurk on their IRC channel (or read their channel logs, if available) to see how newcomers are treated. When people have questions, are they answered patiently or ignored? Are the community members friendly with each other, and talk about things other than the project? If that's a dynamic you like, you can search for it. One thing to look for are codes of conduct. A lot of smaller projects don't think to have them, but many larger projects do, and you can get a sense of the kind of community a project has by seeing what kind of behavior they tolerate and what they discourage.

Contacting Projects

Going Forward

  • Why at least 3 projects? (Projects are like dating.)
  • Send us your worksheets! Feedback is great.