Many individuals may want to contribute to Linux or some open-source software project. However, many people may not be sure where to start or how to help. Others may not know computer programming and feel that there is no way they can contribute. Well, guess what? There are many ways anyone can contribute to Linux directly or some open-source software (OSS).
Ways to Help:
Many computer users may not understand computer programming, have time to learn, or feel they do not know enough to perform adequately. Thankfully, these people still have many options that the open-source community will be grateful for. These people can perform beta-testing. Unofficial beta-testers are not part of the software's project team. Instead, they test the software and report bugs on the projects site (if the project allows non-members to do so). Official beta-testers are a part of the software's team and perform beta-testing according to the team's plans and policies. Many software teams are happy to have official beta-testers that they can depend on. Beta-testers (whether official or unofficial) find bugs that the developers remove. This makes the software more stable and safe for mainstream use. However, keep in mind that being a beta-tester for open-source software is voluntary work. That is, it is a hobby you perform free-of-charge.
Those of you who are video game lovers can greatly enhance Linux games by playing/testing the games and reporting bugs to the respective developers.
Over time, developers run out of good ideas, but still want to maintain having the best state-of-the-art software. They also want to create software that users enjoy using. Usually, these software developers love to get ideas from users of their software. The best people to provide ideas would be the users themselves. With many people contributing ideas, very powerful and helpful software can be created.
People that promote the software and thank the developers for their contribution to the world help the programmers and beta-testers by letting them know their work is appreciated. Why would someone make software that no one uses? As long as a software team has a large following, this helps the team continue to work and perform better.
Reviewer can help people see if a particular piece of software is worth using. Also, a review article on a blog or social network can help make the software known to more people. The developers can see what reviewers say about their software and make improvements accordingly. Many of you reading this probably have an account on at least one social networking website. There is where you can recommend and discuss your favorite open-source software. Alternately, you could make Youtube tutorials demonstrating how to use particular open-source software. How else can open-source software be advertised?
Writers and Proof Readers:
Do you love to write or read, maybe even both? Well, guess what? You can help a lot. Most software has a manual, help files, forums, or some online documentation like a wiki. Someone needs to write those, and then someone needs to proof-read (we hope someone proof-reads). Well, that could be you. The documentation/tutorials that you write, proof-read, and/or enhance will help hundreds, thousands, or maybe even millions of users.
Mailing-Lists and Forums:
Those that start forums or mailing-lists are providing a way for fellow users to exchange ideas and ask/answer questions. The owner of the site could make money allowing companies to post advertisements on the forum. (See, there is money to be made in open-source software.)
Some projects need money to pay for the website providers, server maintenance, or any other type of expense. Project that need money usually have a “Donate” button or link somewhere on the main page. Most projects accept Paypal. Usually, it is the more popular OSS applications that ask for donations like GIMP.
Some developers are unable to continue their project due to innumerable factors. These developers are usually willing to give the project to another programmer. Many open-source projects have been adopted by others to keep the project going. This adoption is usually good for the development of the software because new programmers mean a new set of ideas and skills.
Where to Help:
You may have an idea on how you want to contribute, but you may be wondering where to go. Thankfully, there are many options.
You may have an application in mind you want to help develop. Go to the software's home page or use a search engine to find the software's page. The official website may have a link to click for those who want to contribute. If there is no obvious link or page to use to become a contributor, try contacting a team member and let them know what you would like to contribute.
The wiki for most software and Linux distro can be found by typing “X wiki” in your favorite search engine where “X” is the software or distro of preference. For example, Ubuntu's wiki is wiki.ubuntu.com and Slackware is slackwiki.com/Main_Page.
If you are reporting a bug, figure out where the code is developed/hosted. Most open-source software is hosted on Launchpad.net, GitHub.com, or SourceForge.net. However, many other sites exist. Find the project's page and find a link/button that says something like “Report bug”, “Report bugs here”, “Bug submissions”, “Issues”, etc. A user account is required for reporting bugs on these types of sites. These site provide a self-explaining form used to report bugs. Always remember to include version numbers and error codes/messages. When reporting an error/crash, it is best to include what caused the error/crash if you know. On these reports, be as accurate and clear as possible to the best of your knowledge/abilities. Be sure to explain where or what the issue is. If it is a graphics issue, including a screenshot can be very helpful. Before reporting a bug, ensure the system is up-to-date because you and the bug manager will not want to waste time on an already fixed bug. In the report, include the version numbers of the associated software. For example, if the application is written in Java, it helps the developers to know which Java engine you are using. Often times, the bug may lie in the interpreter (Java engine in this case). It also helps to include the version and type of Linux distro and kernel in use. If you compiled the code from source, include your compiler version and the compilation parameters. Typically, the bug report will state what information to include or disregard. It is best to follow the instructions on the report itself than anything else.
To get the information about the distro, run this command in a terminal “lsb_release -rd”. The kernel's information can be retrieved by executing “uname -rv” in a terminal. If you are not sure which version of the software you own, check the Help/About tabs/windows. If you are using a Debian-based system, type “apt-cache policy X”. Where “X” is the command used to start to software.
To offer a suggestion, view the project's website and figure out how the developers prefer to receive ideas. Usually, idea suggestions are completed the same way as a bug report. The difference is you provide an idea and why the idea should be implemented. If you can and are willing, you could offer to write or add this feature yourself. On Launchpad.net, for instance, click “Report a bug” and give your idea there. Some users type “[IDEA]” in the beginning of the report's title to indicate this is an idea and not a bug. Some developers prefer to be emailed ideas. You can usually find out what they prefer on their project's page.
If you are a programmer and wish to host your own project, there are a number of sites to choose from.
Launchpad.net – Ubuntu is developed here
SourceForge.net – You can not only host Linux applications here but also Windows, Mac, Solaris, FreeBSD, . . . , etc.
GitHub.com – The Linux kernel is developed here. This is where you can help with Linux itself.
Anyone and everyone can help open-source software become the best it can be. If everyone reading this contributed one deed to open-source software, a lot can be changed. After you read this, report a bug, thank a developer, do what ever you want to do to make software better and help others. Everyone can be a catalyst for change if they want to be. If you do not contribute because you feel you gain nothing, then look at it this way – every project you help with can be mentioned in a resume. Most employers like to see volunteer work on resumes. Also, the gratification of helping many people may be rewarding.