On 2012-10-10, karan garg <[email protected]> wrote:

> I have been an open-source enthusiast since 2010 and using Linux as my
> operating system for last 2 years. However, now I want to take an active
> part in open-source development and contribute to the society under an
> expert guidance. I am an RHCE and have a basic understanding of a fair few
> things like database, c, c++, ruby, shell scripting, etc. I would really
> consider it an honor if you would guide me.

I always recommend that first you need to find something you _want_ to
do.  Is there a program you use regularly that doesn't quite do what
you want it to?

In my opinion, it's easiest to start with adding a small feature or
improvement.

Once you've decided what you want to do, file an enhancement "bug"
with the project's bug tracker describing in detail what it is you
want to do.  It's always nice to explain why they new feature is
useful and how you anticpate it will be used.

There will probably be some discussion in the bug-tracker or project
mailing list about whether the feature/improvement is a good idea and
how it might be done.  Once there's some agreement, then add the
feature and submit the patch.  There will probably be comments on the
patch, so try not to get defensive.  After a few iterations getting 
new feature tweaked and the coding style fixed, then somebody will
apply the patch and your name shows up in the ChangeLog file. :)

Alternatively you could try to fix an existing bug that's already been
reported, but that's usually more difficult:

 * It will often take quite a bit of effort and knowlege to set up a
   test that can duplicate the bug.

 * Fixing a bug will often require a lot more knowlege of the
   program's internals that will adding a new feature.
   
If you _can_ duplicate an existing bug that somebody else is working
on, simply offering to help test proposed fixes will usually be very
much appreciated and is a good way to learn more about the program and
its internals.

Working on documentation is also always very welcome:

 * Expanding manual sections that are incomplete (adding simple,
   useful examples is almost always welcome).

 * Writing a tutorial showing how to use a program to accomplish a
   complex task.

 * Updating tutorials/examples that are out of date and show obsolete 
   usages.
   
 * Translating documentation into a new language.

 * Fixing formatting, grammar, and spelling errors.

-- 
Grant Edwards               grant.b.edwards        Yow! If our behavior is
                                  at               strict, we do not need fun!
                              gmail.com            


Reply via email to