- Contributing To The Linux And FOSS Community
This project was inspired in part by Ubuntu Budgie system administrator Dustin Krysak, and began as a Forbes article entitled "8 Ways To Contribute To The Desktop Linux Community, Without Knowing A Single Line Of Code."
The article was just the beginning, however. The end goal was to create a living Wiki page with detailed ideas on how to contribute to the Linux and open source software community, regardless of skillset or experience.
The Wiki will include exhaustive links to various "Get Involved" pages of all Linux distributions and open source software projects of all sizes.
This is my first Github project (it's our project now) and first time embarking on such an endeavor, so any and all suggestions and feedback are welcome.
Have you ever felt the urge to give back to the Linux community? To help out the developers who spend a significant amount of their free time creating the distro, software, or desktop environment that you enjoy on a daily basis? If you're anything like me, you may have reservations about this. Maybe you're not some technically savvy power user, maybe you have zero programming or coding skills. Maybe you just have no clue where to start. That's exactly the predicament I found myself in, so I started asking questions.
I spoke extensively with Dustin Krysak, a system administrator on the Ubuntu Budgie team, and tons of other people chimed in with helpful suggestions. Two dominant themes emerged from these conversations. First, there are numerous ways to make a tangible difference even if you can't write a single line of code. Second, they're starving for help.
"Programming is the carpenter, but you still need the architects, designers, project managers (quite literally), permit people - to make a construction job come together," Krysak says.
Below we've listed several ideas to spark your imaginations. To help make a difference. To bring more visibility to your favorite projects and improve them for everyone. Then in the Awesome Links: Get Involved section you'll find an ever-growing list of links leading you directly to the portal, web page, or contact info you'll need to get started.
Let's begin with some words of inspiration, especially for those of you with a knack for answering community questions. It's an awesome origin story from someone many of you are familiar with: Canonical's Alan Pope aka Popey.
"I got involved in #ubuntu in ~2006 by answering hundreds of support questions. Not a developer. It was a low-impact (to me) way to contribute. Got recognition and eventually a job." https://t.co/gHwLrtPyrH
---Alan Pope (@popey) May 9,2019
You never know who's watching. . .
[Consider Removing] Doing the research for the original article, I discovered that every distro does things a little differently. I can help you generate some ideas for how to contribute, but finding where to get started may require some independent sleuthing on your part. Each project has minor to major deviations in how they do things, whether that's documentation, bug reporting, submitting artwork or helping with translation.
My general advice: if something on this page sparks your imagination, visit your favorite project's website and look for "How To Contribute" or "Get Involved" links (I've included a few near the end of this article). Failing that, track down their contact information, jump into an IRC or Telegram chat and contact them directly.
My second piece of advice: I can guarantee that no matter your skillset, you can make a difference. If you have the time and the drive, do it!
Ubuntu Budgie's Krysak offers up some great advice for folks struggling to identify where or how they can help:
"I think people have a bad habit of looking at what they cannot do versus what they can do. Because everyone just assumes that programming is what you need to do to be a contributor. Is having more people writing code a good thing? Absolutely, but so many other things either bring value to the project or free up the programming people to do other things. A great first step is look at what your own skills are at your day job. Look for a commonality. What's a problem you solved in your day job? Any accomplishments that could be replicated elsewhere? Are there any skills that you are learning that you want to refine within the open source software world?"
There's ample room for improvement with regards to Desktop Linux marketing. And it's an interesting topic, because although most projects need marketing, my observation is they don't know exactly what they need. Some have little to no marketing to begin with.
Exposure is invaluable, and there are numerous ways to assist here. Maybe your favorite distro could benefit from an Instagram account that does nothing but show off eye candy a few times per week. Perhaps they could use additional team members on their Telegram, Facebook or Twitter accounts to engage consistently with the community.
More video content is never frowned upon; consider working with the distro teams to create official guides, walkthroughs and tips on YouTube (or maybe just a short, impactful video that shows off the highlights of that distro).
Some distributions need messaging help as well, and that includes everything from identifying and drilling home a distro's strengths to crafting that perfect website one-liner explaining what separates and distinguishes said distribution from the pack.
What about creating merch? Assisting with or creating a podcast? The possibilities are truly endless.
You don't need a degree to make a difference here. You just need a simple idea that hasn't been executed yet. So get in touch with them and suggest (or ask about) ways you can contribute! And there's nothing at all wrong with simply advocating for Linux and open source software in general...
Do you have an obsession for collecting hardware? Building rigs? Got a 4K monitor lying around? Got a super old crusty laptop? That equipment may be more useful than you think in helping out your favorite distros.
Recently I did some power consumption testing with various Ubuntu 19.04 flavors and noticed some anomalies with Ubuntu Budgie. Because I have a pair of laptops that support the "sys.power" sensor (and the Ubuntu Budgie team does not), I'm in the process of helping them narrow down any quirks and identify where those deficiencies may lie.
"Welcome to the team," Krysak told me. "You're contributing!"
Huh, what do ya know? That experience is partially what inspired this Wiki.
Seriously, reach out to them because you never know. . .
"There are times we do not even know about a bug or annoyance simply because we never hit that scenario, or had a report filed," Krysak tells me.
I'll be the first to admit that I rarely file bug reports. Why? Because I think that surely someone else already stumbled across that same bug and reported it. Yet in speaking to many of the team members behind the distros I use and benchmark, I've unknowingly uncovered several that hadn't been seen before. That's especially true during beta-testing phases or when a new release launches. It becomes even more important with boutique distributions that don't have a large user base.
If you have an early adopter mentality or do a lot of distro hopping, you're a prime candidate for bug reporting!
Unfortunately it's rarely a user-friendly experience. They all have different procedures, different criteria. Ubuntu has a built-in bug reporting tool, and Canonical has excellent documentation on how to proceed. That documentation is lengthy though. Fedora uses Bugzilla. Other distros such as elementary OS use GitHub. They also have clear documentation explaining how and when to file a bug report.
By now you're probably realizing they all operate differently with regards to bug reporting. If you're sure you've spotted a nasty bug and want to report it but have no clue what to do or where to go, you can always reach out to the teams directly via their contact pages, social media or IRC channels.
Believe me, they'll appreciate the effort.
When bugs are reported, someone needs to evaluate whether the bug is reproducible or has already been fixed, or whether its a bug in the software or a bug in another software or the user's system, or whether its a bug or an intended behaviour, or many other things. This is called bug triage and it involves being in the middle between users and developers and gathering as much useful information from the bug reporter as possible in order to make it easier for developers to fix the problem. This may also involve categorizing bugs, running backtraces, running bibisects to track down which commit caused the bug, etc.
An useful template is to ask these three questions:
- „What did you do?” (also known as steps to reproduce / Minimal Working Example),
- „What did you expect to happen?” (to clarify expectations, so the UX might benefit) and finally
- „What happened instead?” (observed behaviour).
"Documentation always has a gap when written from a single persons point of view," says Ubuntu Budgie's Krysak. "So having a second, or even third person review and add additional detail to documentation is invaluable."
Many projects like Manjaro have existing Wiki pages with tons of topics. Adding to the pool of knowledge there is as simple as requesting an account from the Manjaro support team (support@Manjaro.org) and following their submission guidelines. Ubuntu has several documentation teams that cover both Server and Desktop products.
In general, taking a complex topic and approaching it in a conversational manner, making it understandable to the masses is an invaluable skill. I bet you'll find no shortage of existing documentation that can be improved in such a way.
If in doubt, you can always see if your favorite project has a Wiki. Or search for their Telegram group, Twitter or IRC channels. And there's always the contact page!
Since we just covered bug reporting, Krysak tells me there's a real need for documentation on filing a bug report -- but written so that a 9-year-old can understand it. Who's up to the task?
Here's another important consideration:
Accessibility! We need things translated, we need instructions on how to enable accessibility options in different distros. I'm working on a project to document this, but every distro needs a page dedicated to this subject and most do not have it.
--- jdf the tech (@jdfthetech) May 10, 2019
If you're a veteran user of certain open source software, a command line guru, or just have a ton of experience using a particular distro, there are everyday users who can benefit from your knowledge.
This intersects with bug reporting in the sense that we often assume things are being acted on. But maybe they aren't. Maybe there are users who simply can't find an answer to their question and end up moving on to a more active or well-documented distro / software community.
"We always need more translators in Ubuntu," Canonical's Alan Pope says. "Much of it happens in the upstream projects, but there's also a load of projects in launchpad which can do with help. Focus is Eoan (19.10), and some languages have few (or no) contributors. http://bit.ly/2HdUkPW."
If you speak two or more languages fluently, you're in a great position to help here. This is an under-served area but one that's crucial for millions of people to enjoy their preferred distros or software in their native language. And machine translations don't count here! The Deepin team, for example, has a Telegram group devoted to improving their Chinese-to-English translations all across Deepin desktop. They ask important questions there, and they don't just seek what's grammatically correct. They want it to sound as natural as possible.
OpenSUSE also needs help with finalizing -- and in some cases even starting -- the translation process for various software projects. Several of them have a listed status of 0%. Daniel Fore of elementary OS tells me they always need assistance with translations too, and I'd imagine this applies to almost any distro out there.
There's no shortage of ways to contribute in this department.
I'm a keen photographer and have submitted photos to @fedora wallpaper. Managed to get on accepted into F26. Huge satisfaction!
--- Nick Harvey (@unholyeyebrows) May 9, 2019
Someone, somewhere contributed to that awesome collection of desktop background wallpapers you enjoy. Someone created a cool community logo, improved an icon set, designed a cool T-shirt design for a merch store. The list goes on and on.
If you're a creative type -- whether that's music, art, photography, video production, 3D graphics, programming, or even if you have a cool idea in your head but lack the technical chops to execute it -- don't hesitate to mingle with the community and work on something together.
Perhaps the most obvious -- and for some the easiest -- way to contribute is with your cash. Does your favorite distro have a Patreon? Do they have a donation page? Do they have an independent App Center (ala elementary OS) where developers are selling their software? These all make a substantial difference in the livelihood of those developers, the sustainability of the distro and the rate at which improvements and features are added.
You may think a few bucks doesn't make a difference. It does when that's multiplied by hundreds or thousands of people giving a small one-time donation.
If you're not sure where to donate or if it's a hassle to donate to different projects every month, consider becoming a supporter of the Software Freedom Conservancy. They provide infrastructure and support to a ton of important FLOSS projects.
We're collecting all the "Get Involved" links we can find for desktop Linux distros, desktop environments, and FOSS software projects. This is obviously not comprehensive, but hopefully can be your gateway to making a difference. And hey, many of these pages probably need updates, too. You can even help with that!
Before you start, please read our contributor guidelines!
(Distro and FOSS software teams: if you don't have one of these pages, you need one.)
- Alpine Linux
- Arch
- ArchLabs
- ArcoLinux
- AsteroidOS
- CentOS
- Debian
- Drauger OS
- elementary OS
- Fedora Project
- Funtoo
- Gentoo
- Kali
- Linux Mint
- Lubuntu
- Mageia
- Manjaro
- Moccacino OS (fomerly known as Sabayon Linux)
- MX Linux
- NixOS
- OpenMediaVault
- openSUSE
- Parrot OS
- PCLinuxOS
- Pop!_OS
- Proxmox Virtualization
- Slackware
- Solus
- Tails
- Ubuntu
- Ubuntu Budgie
- Ubuntu Mate
- Void Linux
- Xubuntu
- Compatibility Layer
- Design Software
- Development
- Disk Cleaner
- Game Development
- Gaming
- GPU Drivers
- GPU Utilities
- Instant Messaging
- Media Player
- Medical Imaging
- Office Suite
- Science and Mathematics
- Trading Card Game Collection Manager
- Video Editing Software
- Web Browser
- Window Managers
- Ad-blocking
- Backup
- Business Suite
- Calendar
- Internet Traffic Cache
- Password Manger
- Productivity Suite
- Software Development Suite
- VPN
Common Voice is a Mozilla initiative to build a free and open dataset that anyone can use to build speech and speaker recognition applications, such as a voice assistant. These types of applications rely on large datasets, so if you don't contribute to Common Voice, you're unlikely to see good free and open alternatives to Siri and Alexa anytime soon.
Contributing to Common Voice is really easy. Just visit the project's website and then either speak and donate your voice or listen and validate others' voices. Consider spending an evening with your friends or organizing an event where everybody contributes to the project.
The website Open Source Guides is a collection of resources curated by GitHub about running and contributing to FLOSS projects. The website includes a page about "How to Contribute to Open Source," which is another good reference in addition to this project.