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

Content added Content deleted
imported>Shauna
No edit summary
imported>Shauna
No edit summary
Line 43: Line 43:
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.
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 ==
== Step 3: 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!
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!
Line 59: Line 59:
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.
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 ==
== Step 4: Contacting Projects ==


From the above steps, you should hopefully have found at least one project you think you'd like to contribute to. That's great. For at least one project, take at least one of the following steps. We highly recommend at least saying hello in IRC.

=== Say hello on the IRC channel ===

If the project has an IRC channel, join it and say hello to the community members. If there's anyone around, you can tell them you're new to the community and interested in contributing.

Here are some questions you can ask the people in the channel:

* What do they like about the project? How long have they been involved with it?
* If you have an issue you'd like to work on (see X): is anyone familiar with the issue? Otherwise: Are there any issues that people are especially keen to see being worked on?
* Is there anything particularly complicated or difficult that might be an obstacle to contributing? How would they suggest dealing with that?
* What do people like to do when they're not contributing to the channel's project?

=== Say hello on the mailing list ===

Before saying hello on the mailing list, take a look through the archives and see if "introductory emails" are a thing. If they are: great! Say hello. If not, see if there's a contact person (or list of people) for the project (for instance, OpenHatch has hello@openhatch.org). You can send them an introdutory email instead.

=== Find an issue you might want to tackle ===

Read through the project's issue tracker and try to find an issue that seems interesting to you. Many issue trackers will have tags, categories, or text searches that can help you filter issues, or you can just browse. Some projects will tag issues as "beginner", "small", "easy" or "bitesize" -- those are great issues to begin with! If you find an issue you'd like to work on, leave a comment on the thread saying you'd like to do so.

Remember, when looking at issues, make sure they haven't already been solved/closed. Also, check and see if it's assigned to somebody else. If it is, but that person hasn't done anything with it, you can comment asking if they would mind if you tried to address the issue.

You can also leave a comment reproducing a bug. If you do that, make sure to include relevant information about the version of the project you're using, the system you're on, and other potential factors.


== Going Forward ==
== Going Forward ==


That's it! You're done with the activity.
* Why at least 3 projects? (Projects are like dating.)

A quick note: you might wonder why we asked you to find at least three projects. The truth is that finding a good open source project is a lot like dating or finding a job. It often doesn't work out on the first try. That doesn't mean you're a bad contributor or that the project is a bad project - it may just be a bad fit, or bad timing. So keep an open mind, and keep trying projects until you find one that you really enjoy contributing to.


One more thing: we'd love to see your worksheet for this activity! We want to see how people are using it so we can improve it. You can send it to us (anonymously or not) at hello@openhatch.org.
* Send us your worksheets! Feedback is great.