Contributing To Existing Projects
Here are some ideas for things you can do to help a project.
Provide Resources
Most free software projects are not funded at all. They are
particularly in need of machine resources and network resources.
If you use a free software package, you can give back by providing
resources that might be needed.
Machine Resources
If you have access to a different machine architecture or operating
system for testing (even a different distribution), or can provide
accounts, it is worth letting your favorite project know. Try porting
the software and report your results to the developers.
Network Resources
Mailing lists, ftp space, web space and email accounts are often need
by developers, particularly when a project is beginning to add
contributors from around the world. When a project grows to a
sufficient size, a domain name may be needed. Mirrors, and mailing
list archives are also sometimes needed.
Other Resources
For larger projects, there may be a need for legal represenation,
financial advice, marketing, etc. If you can do these things, or
know someone who can do them cheaply, and the project needs the
services, let them know.
Report Bugs
If you find a bug, report it. Even if you fix the bug, you should
provide a full bug report as well as your solution (as a patch),
so the developers know exactly what the problem was. They might
find a more general fix, or a better design to avoid the problem
entirely, so a full bug report can be very helpful. See the section
on bug reporting for more information.
Send Patches
If you fix a problem or add a feature, or even just ease the
installation to your particular platform, send a patch to the
developers.
Develop Features
Developers just love having other people add cool features to their
projects. If you're going to add a major feature, try to contact
the developers first, and tell them about your proposal, how you
will do it (the design) and what effects it will have on the rest
of the software. This can help them plan for it, avoid duplicate work,
and perhaps even help you with suggestions.
Write Addons
An addon is a way of adding a feature that doesn't really impact
on the way the rest of the software works. Developers are more likely
to accept and incorporate addons to their software, because it doesn't
impact very heavily on the overall design.
Advertise
Let others know about the package. Install it in prominent places.
Write about it. Compare it with existing packages.
Artwork
If you have the skills, create graphics to use with the software.
Splash screens, webpage graphics, icons, themes, logos, etc can all
be useful. Be aware of issues involved in creating such graphics - if
possible, ask the developers what kind of graphics they need or could
use. Remember that you need to give them something they can use, not
just something that looks great.
Information
Many developers don't have time to write and update documentation.
Tutorials, howtos, manuals, references, even README files are a
good thing to update. If you have a good grasp of language, you
can correct and improve the documentation that already exists. You
should do this by providing a patch, rather than just pointing
at words and phrases you think should be changed.
Don't Get Underfoot
It's sometimes easy to cause harm to a project, while intending to
help. This can be caused by cultural differences, lack of sleep or
just plain personality differences. Probably the most common cause of
problems is misunderstanding how busy the developers are. As long as
you keep this in mind, you should be fine, but here's a few tips.
(Remember, developers are people too, they'll have grumpy days too).
Don't pester developers for features. Ask politely is fine. If they say
no, then you're quite free to modify the software if you really want the
features.
Don't complain. Suggesting improvements, fixing problems, and
reporting bugs is fine, but calling names, demanding fixes or being
rude is only going to discourage the developer. If you need things
fixed on demand, you should try a support contract or hiring a
consultant.
Partners Free software:
Games|
Home & Desktop|
Internet|
MP3 & Audio|
Multimedia & Design|
Software Developer|
Utilities|
Web Developer
